Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CERTFR-2026-AVI-1372
Vulnerability from certfr_avis
De multiples vulnérabilités ont été découvertes dans les produits SUSE. Certaines d'entre elles permettent à un attaquant de provoquer une exécution de code arbitraire à distance, une élévation de privilèges et une atteinte à la confidentialité des données.
Solutions
Se référer au bulletin de sécurité de l'éditeur pour l'obtention des correctifs (cf. section Documentation).
Impacted products
| Vendor | Product | Description | ||
|---|---|---|---|---|
| SUSE | N/A | SUSE Linux Enterprise High Performance Computing 15 SP5 | ||
| SUSE | N/A | Public Cloud Module 15-SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Micro 5.3 | ||
| SUSE | N/A | SUSE Linux Enterprise Real Time 15 SP7 | ||
| SUSE | N/A | SUSE Linux Micro 6.1 | ||
| SUSE | N/A | SUSE Linux Enterprise Workstation Extension 15 SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise High Performance Computing 12 SP5 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 12 SP5 | ||
| SUSE | N/A | Legacy Module 15-SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise High Availability Extension 15 SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Live Patching 15-SP4 | ||
| SUSE | N/A | SUSE Linux Enterprise Desktop 15 SP7 | ||
| SUSE | N/A | openSUSE Leap 15.4 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP Applications 15 SP4 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP Applications 15 SP7 | ||
| SUSE | N/A | openSUSE Leap 15.5 | ||
| SUSE | N/A | SUSE Linux Enterprise High Performance Computing 15 SP4 | ||
| SUSE | N/A | SUSE Linux Enterprise Live Patching 15-SP6 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP applications 16.0 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 15 SP5 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP Applications 15 SP5 | ||
| SUSE | N/A | SUSE Linux Enterprise Real Time 15 SP5 | ||
| SUSE | N/A | SUSE Linux Enterprise Live Patching 12-SP5 | ||
| SUSE | N/A | SUSE Linux Micro 6.2 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 15 SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Live Patching 15-SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Live Patching 15-SP5 | ||
| SUSE | N/A | SUSE Linux Micro Extras 6.2 | ||
| SUSE | N/A | SUSE Linux Enterprise Real Time 15 SP6 | ||
| SUSE | N/A | openSUSE Leap 15.6 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 15 SP4 | ||
| SUSE | N/A | SUSE Linux Enterprise Real Time 15 SP4 | ||
| SUSE | N/A | Development Tools Module 15-SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 16.0 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP Applications 12 SP5 | ||
| SUSE | N/A | SUSE Linux Enterprise Micro 5.4 | ||
| SUSE | N/A | Basesystem Module 15-SP7 | ||
| SUSE | N/A | SUSE Linux Enterprise Server for SAP Applications 15 SP6 | ||
| SUSE | N/A | SUSE Linux Enterprise Server 15 SP6 | ||
| SUSE | N/A | SUSE Linux Enterprise Micro 5.5 |
References
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "SUSE Linux Enterprise High Performance Computing 15 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Public Cloud Module 15-SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.3",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro 6.1",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Workstation Extension 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing 12 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 12 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Legacy Module 15-SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Availability Extension 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Desktop 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing 15 SP4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP6",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP applications 16.0",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 12-SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro 6.2",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro Extras 6.2",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP6",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.6",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Development Tools Module 15-SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 16.0",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 12 SP5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.4",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Basesystem Module 15-SP7",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP6",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP6",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.5",
"product": {
"name": "N/A",
"vendor": {
"name": "SUSE",
"scada": false
}
}
}
],
"affected_systems_content": "",
"content": "## Solutions\n\nSe r\u00e9f\u00e9rer au bulletin de s\u00e9curit\u00e9 de l\u0027\u00e9diteur pour l\u0027obtention des correctifs (cf. section Documentation).",
"cves": [
{
"name": "CVE-2026-72436",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72436"
},
{
"name": "CVE-2026-74632",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74632"
},
{
"name": "CVE-2026-89702",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89702"
},
{
"name": "CVE-2026-89580",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89580"
},
{
"name": "CVE-2026-72157",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72157"
},
{
"name": "CVE-2026-72330",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72330"
},
{
"name": "CVE-2026-72392",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72392"
},
{
"name": "CVE-2026-64046",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64046"
},
{
"name": "CVE-2026-72325",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72325"
},
{
"name": "CVE-2026-74745",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74745"
},
{
"name": "CVE-2026-68343",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68343"
},
{
"name": "CVE-2026-74283",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74283"
},
{
"name": "CVE-2026-92509",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92509"
},
{
"name": "CVE-2026-89451",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89451"
},
{
"name": "CVE-2026-80716",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80716"
},
{
"name": "CVE-2026-72051",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72051"
},
{
"name": "CVE-2026-97413",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97413"
},
{
"name": "CVE-2026-80846",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80846"
},
{
"name": "CVE-2026-74450",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74450"
},
{
"name": "CVE-2026-98080",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98080"
},
{
"name": "CVE-2026-72107",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72107"
},
{
"name": "CVE-2026-74284",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74284"
},
{
"name": "CVE-2026-74597",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74597"
},
{
"name": "CVE-2026-89698",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89698"
},
{
"name": "CVE-2026-68141",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68141"
},
{
"name": "CVE-2026-53061",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53061"
},
{
"name": "CVE-2026-72128",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72128"
},
{
"name": "CVE-2026-43448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43448"
},
{
"name": "CVE-2026-74598",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74598"
},
{
"name": "CVE-2026-64542",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64542"
},
{
"name": "CVE-2026-74540",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74540"
},
{
"name": "CVE-2026-74737",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74737"
},
{
"name": "CVE-2026-80585",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80585"
},
{
"name": "CVE-2026-74440",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74440"
},
{
"name": "CVE-2026-93825",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93825"
},
{
"name": "CVE-2026-64388",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64388"
},
{
"name": "CVE-2026-89530",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89530"
},
{
"name": "CVE-2026-89691",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89691"
},
{
"name": "CVE-2026-63838",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63838"
},
{
"name": "CVE-2026-80715",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80715"
},
{
"name": "CVE-2026-72440",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72440"
},
{
"name": "CVE-2026-90309",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90309"
},
{
"name": "CVE-2026-93103",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93103"
},
{
"name": "CVE-2026-80793",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80793"
},
{
"name": "CVE-2026-93110",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93110"
},
{
"name": "CVE-2026-74378",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74378"
},
{
"name": "CVE-2026-89784",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89784"
},
{
"name": "CVE-2026-74349",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74349"
},
{
"name": "CVE-2026-93108",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93108"
},
{
"name": "CVE-2026-72488",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72488"
},
{
"name": "CVE-2026-74376",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74376"
},
{
"name": "CVE-2026-92500",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92500"
},
{
"name": "CVE-2026-80667",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80667"
},
{
"name": "CVE-2026-74696",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74696"
},
{
"name": "CVE-2026-74697",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74697"
},
{
"name": "CVE-2026-64405",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64405"
},
{
"name": "CVE-2026-72130",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72130"
},
{
"name": "CVE-2026-74317",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74317"
},
{
"name": "CVE-2026-74513",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74513"
},
{
"name": "CVE-2026-64414",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64414"
},
{
"name": "CVE-2026-43210",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43210"
},
{
"name": "CVE-2026-63993",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63993"
},
{
"name": "CVE-2026-89706",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89706"
},
{
"name": "CVE-2026-80848",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80848"
},
{
"name": "CVE-2026-64402",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64402"
},
{
"name": "CVE-2026-80895",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80895"
},
{
"name": "CVE-2026-72125",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72125"
},
{
"name": "CVE-2026-93212",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93212"
},
{
"name": "CVE-2026-74612",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74612"
},
{
"name": "CVE-2026-68338",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68338"
},
{
"name": "CVE-2026-89526",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89526"
},
{
"name": "CVE-2026-89535",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89535"
},
{
"name": "CVE-2026-53400",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53400"
},
{
"name": "CVE-2026-89789",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89789"
},
{
"name": "CVE-2026-81000",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-81000"
},
{
"name": "CVE-2026-90097",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90097"
},
{
"name": "CVE-2026-74523",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74523"
},
{
"name": "CVE-2026-46196",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46196"
},
{
"name": "CVE-2026-74453",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74453"
},
{
"name": "CVE-2026-72435",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72435"
},
{
"name": "CVE-2026-89697",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89697"
},
{
"name": "CVE-2026-89532",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89532"
},
{
"name": "CVE-2026-74288",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74288"
},
{
"name": "CVE-2026-89480",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89480"
},
{
"name": "CVE-2026-89638",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89638"
},
{
"name": "CVE-2026-74557",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74557"
},
{
"name": "CVE-2026-23199",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-23199"
},
{
"name": "CVE-2026-64132",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64132"
},
{
"name": "CVE-2026-68128",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68128"
},
{
"name": "CVE-2026-80721",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80721"
},
{
"name": "CVE-2026-64319",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64319"
},
{
"name": "CVE-2026-93207",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93207"
},
{
"name": "CVE-2026-80909",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80909"
},
{
"name": "CVE-2026-72256",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72256"
},
{
"name": "CVE-2026-90294",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90294"
},
{
"name": "CVE-2026-89705",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89705"
},
{
"name": "CVE-2026-89525",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89525"
},
{
"name": "CVE-2024-26730",
"url": "https://www.cve.org/CVERecord?id=CVE-2024-26730"
},
{
"name": "CVE-2026-89564",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89564"
},
{
"name": "CVE-2026-68294",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68294"
},
{
"name": "CVE-2026-74465",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74465"
},
{
"name": "CVE-2026-74630",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74630"
},
{
"name": "CVE-2026-100075",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-100075"
},
{
"name": "CVE-2026-68385",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68385"
},
{
"name": "CVE-2026-89713",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89713"
},
{
"name": "CVE-2026-72247",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72247"
},
{
"name": "CVE-2026-68454",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68454"
},
{
"name": "CVE-2026-93794",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93794"
},
{
"name": "CVE-2026-74605",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74605"
},
{
"name": "CVE-2026-89539",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89539"
},
{
"name": "CVE-2026-72066",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72066"
},
{
"name": "CVE-2026-72349",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72349"
},
{
"name": "CVE-2026-89644",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89644"
},
{
"name": "CVE-2026-72297",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72297"
},
{
"name": "CVE-2026-64279",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64279"
},
{
"name": "CVE-2026-90414",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90414"
},
{
"name": "CVE-2026-89569",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89569"
},
{
"name": "CVE-2026-89673",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89673"
},
{
"name": "CVE-2026-80852",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80852"
},
{
"name": "CVE-2026-89704",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89704"
},
{
"name": "CVE-2026-90308",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90308"
},
{
"name": "CVE-2026-74444",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74444"
},
{
"name": "CVE-2026-97605",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97605"
},
{
"name": "CVE-2026-74346",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74346"
},
{
"name": "CVE-2026-89527",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89527"
},
{
"name": "CVE-2026-63956",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63956"
},
{
"name": "CVE-2026-93154",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93154"
},
{
"name": "CVE-2026-72450",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72450"
},
{
"name": "CVE-2026-72339",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72339"
},
{
"name": "CVE-2026-74586",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74586"
},
{
"name": "CVE-2026-89931",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89931"
},
{
"name": "CVE-2026-72406",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72406"
},
{
"name": "CVE-2026-64598",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64598"
},
{
"name": "CVE-2026-89658",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89658"
},
{
"name": "CVE-2026-80932",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80932"
},
{
"name": "CVE-2026-68258",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68258"
},
{
"name": "CVE-2026-74267",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74267"
},
{
"name": "CVE-2026-89929",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89929"
},
{
"name": "CVE-2026-72413",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72413"
},
{
"name": "CVE-2026-93810",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93810"
},
{
"name": "CVE-2026-74313",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74313"
},
{
"name": "CVE-2026-74688",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74688"
},
{
"name": "CVE-2026-64475",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64475"
},
{
"name": "CVE-2026-74726",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74726"
},
{
"name": "CVE-2026-80731",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80731"
},
{
"name": "CVE-2026-89684",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89684"
},
{
"name": "CVE-2026-89510",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89510"
},
{
"name": "CVE-2026-68096",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68096"
},
{
"name": "CVE-2026-80864",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80864"
},
{
"name": "CVE-2026-63913",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63913"
},
{
"name": "CVE-2026-64038",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64038"
},
{
"name": "CVE-2026-89798",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89798"
},
{
"name": "CVE-2026-72135",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72135"
},
{
"name": "CVE-2026-80714",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80714"
},
{
"name": "CVE-2026-74385",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74385"
},
{
"name": "CVE-2026-97546",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97546"
},
{
"name": "CVE-2026-72054",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72054"
},
{
"name": "CVE-2026-72383",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72383"
},
{
"name": "CVE-2026-72459",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72459"
},
{
"name": "CVE-2026-72129",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72129"
},
{
"name": "CVE-2026-72299",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72299"
},
{
"name": "CVE-2026-74473",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74473"
},
{
"name": "CVE-2026-90074",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90074"
},
{
"name": "CVE-2026-74388",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74388"
},
{
"name": "CVE-2026-64003",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64003"
},
{
"name": "CVE-2026-80739",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80739"
},
{
"name": "CVE-2026-74363",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74363"
},
{
"name": "CVE-2026-64213",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64213"
},
{
"name": "CVE-2026-93107",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93107"
},
{
"name": "CVE-2026-74467",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74467"
},
{
"name": "CVE-2026-68477",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68477"
},
{
"name": "CVE-2026-90265",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90265"
},
{
"name": "CVE-2026-97573",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97573"
},
{
"name": "CVE-2026-72237",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72237"
},
{
"name": "CVE-2026-72448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72448"
},
{
"name": "CVE-2026-64580",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64580"
},
{
"name": "CVE-2026-74476",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74476"
},
{
"name": "CVE-2026-72351",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72351"
},
{
"name": "CVE-2026-97557",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97557"
},
{
"name": "CVE-2026-74386",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74386"
},
{
"name": "CVE-2026-74307",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74307"
},
{
"name": "CVE-2026-74490",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74490"
},
{
"name": "CVE-2026-74290",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74290"
},
{
"name": "CVE-2026-89696",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89696"
},
{
"name": "CVE-2026-80589",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80589"
},
{
"name": "CVE-2026-72337",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72337"
},
{
"name": "CVE-2026-89508",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89508"
},
{
"name": "CVE-2026-72164",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72164"
},
{
"name": "CVE-2026-72017",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72017"
},
{
"name": "CVE-2026-74390",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74390"
},
{
"name": "CVE-2026-74397",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74397"
},
{
"name": "CVE-2026-74580",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74580"
},
{
"name": "CVE-2026-53377",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53377"
},
{
"name": "CVE-2026-89984",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89984"
},
{
"name": "CVE-2026-74660",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74660"
},
{
"name": "CVE-2026-90415",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90415"
},
{
"name": "CVE-2026-72012",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72012"
},
{
"name": "CVE-2026-68382",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68382"
},
{
"name": "CVE-2026-74493",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74493"
},
{
"name": "CVE-2026-89694",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89694"
},
{
"name": "CVE-2026-89531",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89531"
},
{
"name": "CVE-2026-72086",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72086"
},
{
"name": "CVE-2026-72166",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72166"
},
{
"name": "CVE-2026-80580",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80580"
},
{
"name": "CVE-2026-90417",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90417"
},
{
"name": "CVE-2026-74359",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74359"
},
{
"name": "CVE-2026-63795",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63795"
},
{
"name": "CVE-2026-74449",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74449"
},
{
"name": "CVE-2026-64418",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64418"
},
{
"name": "CVE-2026-80663",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80663"
},
{
"name": "CVE-2026-64570",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64570"
},
{
"name": "CVE-2026-74638",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74638"
},
{
"name": "CVE-2026-74725",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74725"
},
{
"name": "CVE-2026-74665",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74665"
},
{
"name": "CVE-2026-90413",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90413"
},
{
"name": "CVE-2026-74464",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74464"
},
{
"name": "CVE-2026-74636",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74636"
},
{
"name": "CVE-2026-90434",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90434"
},
{
"name": "CVE-2026-90088",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90088"
},
{
"name": "CVE-2026-74365",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74365"
},
{
"name": "CVE-2026-74689",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74689"
},
{
"name": "CVE-2026-72421",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72421"
},
{
"name": "CVE-2026-74710",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74710"
},
{
"name": "CVE-2026-98030",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98030"
},
{
"name": "CVE-2026-74662",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74662"
},
{
"name": "CVE-2025-40136",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-40136"
},
{
"name": "CVE-2026-74622",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74622"
},
{
"name": "CVE-2026-89791",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89791"
},
{
"name": "CVE-2026-45836",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-45836"
},
{
"name": "CVE-2026-89536",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89536"
},
{
"name": "CVE-2026-74538",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74538"
},
{
"name": "CVE-2026-92510",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92510"
},
{
"name": "CVE-2026-31689",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-31689"
},
{
"name": "CVE-2026-80693",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80693"
},
{
"name": "CVE-2026-80976",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80976"
},
{
"name": "CVE-2026-90047",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90047"
},
{
"name": "CVE-2026-90263",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90263"
},
{
"name": "CVE-2026-93800",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93800"
},
{
"name": "CVE-2026-89545",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89545"
},
{
"name": "CVE-2026-98091",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98091"
},
{
"name": "CVE-2026-89542",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89542"
},
{
"name": "CVE-2026-72322",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72322"
},
{
"name": "CVE-2026-72055",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72055"
},
{
"name": "CVE-2026-89477",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89477"
},
{
"name": "CVE-2026-89680",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89680"
},
{
"name": "CVE-2026-53131",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53131"
},
{
"name": "CVE-2026-72218",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72218"
},
{
"name": "CVE-2026-72108",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72108"
},
{
"name": "CVE-2026-64210",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64210"
},
{
"name": "CVE-2026-64299",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64299"
},
{
"name": "CVE-2026-93814",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93814"
},
{
"name": "CVE-2026-89511",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89511"
},
{
"name": "CVE-2026-89710",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89710"
},
{
"name": "CVE-2026-89707",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89707"
},
{
"name": "CVE-2026-72439",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72439"
},
{
"name": "CVE-2026-98164",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98164"
},
{
"name": "CVE-2026-89503",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89503"
},
{
"name": "CVE-2026-89672",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89672"
},
{
"name": "CVE-2026-80722",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80722"
},
{
"name": "CVE-2026-74555",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74555"
},
{
"name": "CVE-2026-90177",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90177"
},
{
"name": "CVE-2026-74535",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74535"
},
{
"name": "CVE-2026-90142",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90142"
},
{
"name": "CVE-2026-72379",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72379"
},
{
"name": "CVE-2026-89636",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89636"
},
{
"name": "CVE-2026-89968",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89968"
},
{
"name": "CVE-2026-90101",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90101"
},
{
"name": "CVE-2026-74278",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74278"
},
{
"name": "CVE-2026-80613",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80613"
},
{
"name": "CVE-2026-93826",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93826"
},
{
"name": "CVE-2026-64320",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64320"
},
{
"name": "CVE-2026-92503",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92503"
},
{
"name": "CVE-2026-74739",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74739"
},
{
"name": "CVE-2026-64297",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64297"
},
{
"name": "CVE-2026-72425",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72425"
},
{
"name": "CVE-2026-90240",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90240"
},
{
"name": "CVE-2026-74701",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74701"
},
{
"name": "CVE-2026-64473",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64473"
},
{
"name": "CVE-2026-89970",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89970"
},
{
"name": "CVE-2026-80647",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80647"
},
{
"name": "CVE-2026-74637",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74637"
},
{
"name": "CVE-2026-89502",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89502"
},
{
"name": "CVE-2026-72352",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72352"
},
{
"name": "CVE-2026-68376",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68376"
},
{
"name": "CVE-2026-72487",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72487"
},
{
"name": "CVE-2026-72434",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72434"
},
{
"name": "CVE-2026-93109",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93109"
},
{
"name": "CVE-2026-90182",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90182"
},
{
"name": "CVE-2026-89548",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89548"
},
{
"name": "CVE-2026-68312",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68312"
},
{
"name": "CVE-2026-74536",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74536"
},
{
"name": "CVE-2026-80847",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80847"
},
{
"name": "CVE-2026-64528",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64528"
},
{
"name": "CVE-2026-89609",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89609"
},
{
"name": "CVE-2026-63987",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63987"
},
{
"name": "CVE-2026-72106",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72106"
},
{
"name": "CVE-2026-74589",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74589"
},
{
"name": "CVE-2026-72491",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72491"
},
{
"name": "CVE-2026-74479",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74479"
},
{
"name": "CVE-2026-97543",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97543"
},
{
"name": "CVE-2026-74492",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74492"
},
{
"name": "CVE-2026-92512",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92512"
},
{
"name": "CVE-2026-31523",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-31523"
},
{
"name": "CVE-2026-90183",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90183"
},
{
"name": "CVE-2026-74534",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74534"
},
{
"name": "CVE-2026-80789",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80789"
},
{
"name": "CVE-2026-74694",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74694"
},
{
"name": "CVE-2026-80984",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80984"
},
{
"name": "CVE-2026-68400",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68400"
},
{
"name": "CVE-2026-68367",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68367"
},
{
"name": "CVE-2026-74302",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74302"
},
{
"name": "CVE-2026-68146",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68146"
},
{
"name": "CVE-2026-80586",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80586"
},
{
"name": "CVE-2026-23352",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-23352"
},
{
"name": "CVE-2026-89550",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89550"
},
{
"name": "CVE-2026-72449",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72449"
},
{
"name": "CVE-2026-89544",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89544"
},
{
"name": "CVE-2026-80679",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80679"
},
{
"name": "CVE-2026-80779",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80779"
},
{
"name": "CVE-2026-72163",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72163"
},
{
"name": "CVE-2026-64476",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64476"
},
{
"name": "CVE-2026-74308",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74308"
},
{
"name": "CVE-2026-72323",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72323"
},
{
"name": "CVE-2026-72018",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72018"
},
{
"name": "CVE-2026-72398",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72398"
},
{
"name": "CVE-2026-63794",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63794"
},
{
"name": "CVE-2026-74398",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74398"
},
{
"name": "CVE-2026-68273",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68273"
},
{
"name": "CVE-2026-74257",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74257"
},
{
"name": "CVE-2026-74608",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74608"
},
{
"name": "CVE-2026-89538",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89538"
},
{
"name": "CVE-2026-74484",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74484"
},
{
"name": "CVE-2026-74471",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74471"
},
{
"name": "CVE-2026-74735",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74735"
},
{
"name": "CVE-2026-74553",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74553"
},
{
"name": "CVE-2026-89534",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89534"
},
{
"name": "CVE-2026-74671",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74671"
},
{
"name": "CVE-2026-97950",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97950"
},
{
"name": "CVE-2026-80980",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80980"
},
{
"name": "CVE-2026-81001",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-81001"
},
{
"name": "CVE-2026-72282",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72282"
},
{
"name": "CVE-2026-46044",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46044"
},
{
"name": "CVE-2026-74384",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74384"
},
{
"name": "CVE-2026-72070",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72070"
},
{
"name": "CVE-2026-90293",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90293"
},
{
"name": "CVE-2026-23128",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-23128"
},
{
"name": "CVE-2026-64173",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64173"
},
{
"name": "CVE-2026-74515",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74515"
},
{
"name": "CVE-2026-90430",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90430"
},
{
"name": "CVE-2026-64556",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64556"
},
{
"name": "CVE-2026-89631",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89631"
},
{
"name": "CVE-2026-90241",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90241"
},
{
"name": "CVE-2026-74592",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74592"
},
{
"name": "CVE-2026-89930",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89930"
},
{
"name": "CVE-2026-74256",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74256"
},
{
"name": "CVE-2026-74375",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74375"
},
{
"name": "CVE-2026-64474",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64474"
},
{
"name": "CVE-2026-80840",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80840"
},
{
"name": "CVE-2026-97545",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97545"
},
{
"name": "CVE-2026-64377",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64377"
},
{
"name": "CVE-2026-74609",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74609"
},
{
"name": "CVE-2026-74487",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74487"
},
{
"name": "CVE-2026-80646",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80646"
},
{
"name": "CVE-2026-74744",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74744"
},
{
"name": "CVE-2026-90259",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90259"
},
{
"name": "CVE-2026-80863",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80863"
},
{
"name": "CVE-2026-97957",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97957"
},
{
"name": "CVE-2026-97902",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97902"
},
{
"name": "CVE-2026-74310",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74310"
},
{
"name": "CVE-2026-89913",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89913"
},
{
"name": "CVE-2026-74615",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74615"
},
{
"name": "CVE-2026-80979",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80979"
},
{
"name": "CVE-2026-74625",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74625"
},
{
"name": "CVE-2026-68264",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68264"
},
{
"name": "CVE-2026-72061",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72061"
},
{
"name": "CVE-2026-90358",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90358"
},
{
"name": "CVE-2026-80603",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80603"
},
{
"name": "CVE-2026-90243",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90243"
},
{
"name": "CVE-2026-97940",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97940"
},
{
"name": "CVE-2026-89660",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89660"
},
{
"name": "CVE-2026-72102",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72102"
},
{
"name": "CVE-2026-74261",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74261"
},
{
"name": "CVE-2026-72219",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72219"
},
{
"name": "CVE-2026-72399",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72399"
},
{
"name": "CVE-2026-74590",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74590"
},
{
"name": "CVE-2026-74541",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74541"
},
{
"name": "CVE-2026-80694",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80694"
},
{
"name": "CVE-2026-92514",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92514"
},
{
"name": "CVE-2026-89500",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89500"
},
{
"name": "CVE-2026-92511",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92511"
},
{
"name": "CVE-2026-93827",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93827"
},
{
"name": "CVE-2026-89482",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89482"
},
{
"name": "CVE-2026-93102",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93102"
},
{
"name": "CVE-2026-72348",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72348"
},
{
"name": "CVE-2026-80747",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80747"
},
{
"name": "CVE-2026-97572",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97572"
},
{
"name": "CVE-2026-74718",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74718"
},
{
"name": "CVE-2026-46135",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46135"
},
{
"name": "CVE-2026-97505",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97505"
},
{
"name": "CVE-2026-43409",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43409"
},
{
"name": "CVE-2026-92495",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92495"
},
{
"name": "CVE-2026-68148",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68148"
},
{
"name": "CVE-2026-89671",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89671"
},
{
"name": "CVE-2026-72438",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72438"
},
{
"name": "CVE-2026-89674",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89674"
},
{
"name": "CVE-2026-72242",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72242"
},
{
"name": "CVE-2026-89533",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89533"
},
{
"name": "CVE-2026-74282",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74282"
},
{
"name": "CVE-2026-74752",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74752"
},
{
"name": "CVE-2026-74603",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74603"
},
{
"name": "CVE-2026-64597",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64597"
},
{
"name": "CVE-2026-74600",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74600"
},
{
"name": "CVE-2026-63887",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63887"
},
{
"name": "CVE-2026-80842",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80842"
},
{
"name": "CVE-2026-74663",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74663"
},
{
"name": "CVE-2026-68395",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68395"
},
{
"name": "CVE-2026-93782",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93782"
},
{
"name": "CVE-2026-92525",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92525"
},
{
"name": "CVE-2026-64103",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64103"
},
{
"name": "CVE-2026-43272",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43272"
},
{
"name": "CVE-2026-74469",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74469"
},
{
"name": "CVE-2026-74602",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74602"
},
{
"name": "CVE-2026-80841",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80841"
},
{
"name": "CVE-2026-74483",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74483"
},
{
"name": "CVE-2026-92507",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92507"
},
{
"name": "CVE-2026-72063",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72063"
},
{
"name": "CVE-2026-68451",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68451"
},
{
"name": "CVE-2026-90203",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90203"
},
{
"name": "CVE-2026-74258",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74258"
},
{
"name": "CVE-2026-90292",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90292"
},
{
"name": "CVE-2026-89912",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89912"
},
{
"name": "CVE-2026-80629",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80629"
},
{
"name": "CVE-2026-89703",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89703"
},
{
"name": "CVE-2026-90151",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90151"
},
{
"name": "CVE-2026-64457",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64457"
},
{
"name": "CVE-2026-74700",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74700"
},
{
"name": "CVE-2026-90149",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90149"
},
{
"name": "CVE-2025-38704",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-38704"
},
{
"name": "CVE-2026-89690",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89690"
},
{
"name": "CVE-2026-52912",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-52912"
},
{
"name": "CVE-2026-64594",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64594"
},
{
"name": "CVE-2026-89485",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89485"
},
{
"name": "CVE-2026-89547",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89547"
},
{
"name": "CVE-2026-64235",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64235"
},
{
"name": "CVE-2026-63963",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63963"
},
{
"name": "CVE-2026-90104",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90104"
},
{
"name": "CVE-2026-74270",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74270"
},
{
"name": "CVE-2026-63890",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63890"
},
{
"name": "CVE-2026-64324",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64324"
},
{
"name": "CVE-2026-64373",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64373"
},
{
"name": "CVE-2026-80851",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80851"
},
{
"name": "CVE-2026-64070",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64070"
},
{
"name": "CVE-2026-89541",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89541"
},
{
"name": "CVE-2026-74382",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74382"
},
{
"name": "CVE-2026-80880",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80880"
},
{
"name": "CVE-2026-97520",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97520"
},
{
"name": "CVE-2026-72023",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72023"
},
{
"name": "CVE-2026-74330",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74330"
},
{
"name": "CVE-2026-89479",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89479"
},
{
"name": "CVE-2026-74289",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74289"
},
{
"name": "CVE-2026-72347",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72347"
},
{
"name": "CVE-2026-74588",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74588"
},
{
"name": "CVE-2026-74713",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74713"
},
{
"name": "CVE-2026-92523",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92523"
},
{
"name": "CVE-2026-63881",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63881"
},
{
"name": "CVE-2026-74389",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74389"
},
{
"name": "CVE-2026-72444",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72444"
},
{
"name": "CVE-2026-68266",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68266"
},
{
"name": "CVE-2026-93269",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93269"
},
{
"name": "CVE-2026-89747",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89747"
},
{
"name": "CVE-2026-72053",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72053"
},
{
"name": "CVE-2026-89481",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89481"
},
{
"name": "CVE-2026-63939",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63939"
},
{
"name": "CVE-2026-90003",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90003"
},
{
"name": "CVE-2026-64216",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64216"
},
{
"name": "CVE-2026-74377",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74377"
},
{
"name": "CVE-2026-46149",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46149"
},
{
"name": "CVE-2026-97934",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97934"
},
{
"name": "CVE-2026-80947",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80947"
},
{
"name": "CVE-2026-72306",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72306"
},
{
"name": "CVE-2026-74595",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74595"
},
{
"name": "CVE-2026-63983",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63983"
},
{
"name": "CVE-2026-68452",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68452"
},
{
"name": "CVE-2026-74533",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74533"
},
{
"name": "CVE-2026-74692",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74692"
},
{
"name": "CVE-2026-72045",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72045"
},
{
"name": "CVE-2026-97552",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97552"
},
{
"name": "CVE-2026-89665",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89665"
},
{
"name": "CVE-2026-80686",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80686"
},
{
"name": "CVE-2026-74719",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74719"
},
{
"name": "CVE-2026-97477",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97477"
},
{
"name": "CVE-2026-74281",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74281"
},
{
"name": "CVE-2026-80805",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80805"
},
{
"name": "CVE-2026-80557",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80557"
},
{
"name": "CVE-2026-74551",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74551"
},
{
"name": "CVE-2026-90198",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90198"
},
{
"name": "CVE-2026-74666",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74666"
},
{
"name": "CVE-2026-74705",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74705"
},
{
"name": "CVE-2026-68448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68448"
},
{
"name": "CVE-2026-72098",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72098"
},
{
"name": "CVE-2026-80836",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80836"
},
{
"name": "CVE-2026-53384",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53384"
},
{
"name": "CVE-2026-80785",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80785"
},
{
"name": "CVE-2026-97947",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97947"
},
{
"name": "CVE-2026-72147",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72147"
},
{
"name": "CVE-2026-64448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64448"
},
{
"name": "CVE-2026-97571",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97571"
},
{
"name": "CVE-2026-74356",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74356"
},
{
"name": "CVE-2026-89688",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89688"
},
{
"name": "CVE-2026-89685",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89685"
},
{
"name": "CVE-2026-72224",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72224"
},
{
"name": "CVE-2026-72447",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72447"
},
{
"name": "CVE-2026-74286",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74286"
},
{
"name": "CVE-2026-90255",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90255"
},
{
"name": "CVE-2026-80844",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80844"
},
{
"name": "CVE-2026-89540",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89540"
},
{
"name": "CVE-2026-97521",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97521"
},
{
"name": "CVE-2026-89699",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89699"
},
{
"name": "CVE-2026-64579",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64579"
},
{
"name": "CVE-2026-89780",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89780"
},
{
"name": "CVE-2026-64589",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64589"
},
{
"name": "CVE-2026-98028",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98028"
},
{
"name": "CVE-2026-64372",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64372"
},
{
"name": "CVE-2026-74579",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74579"
},
{
"name": "CVE-2026-64283",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64283"
},
{
"name": "CVE-2026-93813",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93813"
},
{
"name": "CVE-2026-72437",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72437"
},
{
"name": "CVE-2026-72136",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72136"
},
{
"name": "CVE-2026-80756",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80756"
},
{
"name": "CVE-2026-90426",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90426"
},
{
"name": "CVE-2026-72019",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72019"
},
{
"name": "CVE-2026-45872",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-45872"
},
{
"name": "CVE-2026-74743",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74743"
},
{
"name": "CVE-2026-74268",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74268"
},
{
"name": "CVE-2026-74594",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74594"
},
{
"name": "CVE-2026-97421",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97421"
},
{
"name": "CVE-2026-74475",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74475"
},
{
"name": "CVE-2026-68158",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68158"
},
{
"name": "CVE-2026-74659",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74659"
},
{
"name": "CVE-2026-89663",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89663"
},
{
"name": "CVE-2026-72404",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72404"
},
{
"name": "CVE-2026-68253",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68253"
},
{
"name": "CVE-2026-72052",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72052"
},
{
"name": "CVE-2026-89551",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89551"
},
{
"name": "CVE-2026-74606",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74606"
},
{
"name": "CVE-2026-74628",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74628"
},
{
"name": "CVE-2026-74667",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74667"
},
{
"name": "CVE-2026-72138",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72138"
},
{
"name": "CVE-2026-74601",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74601"
},
{
"name": "CVE-2026-90428",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90428"
},
{
"name": "CVE-2026-68441",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68441"
},
{
"name": "CVE-2026-90307",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90307"
},
{
"name": "CVE-2026-80681",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80681"
},
{
"name": "CVE-2026-80725",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80725"
},
{
"name": "CVE-2026-89662",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89662"
},
{
"name": "CVE-2026-68198",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68198"
},
{
"name": "CVE-2026-72321",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72321"
},
{
"name": "CVE-2026-72243",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72243"
},
{
"name": "CVE-2026-80521",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80521"
},
{
"name": "CVE-2026-80865",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80865"
},
{
"name": "CVE-2026-93104",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93104"
},
{
"name": "CVE-2026-64205",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64205"
},
{
"name": "CVE-2026-53284",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53284"
},
{
"name": "CVE-2026-72350",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72350"
},
{
"name": "CVE-2026-74391",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74391"
},
{
"name": "CVE-2026-89669",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89669"
},
{
"name": "CVE-2026-46304",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46304"
},
{
"name": "CVE-2026-68162",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68162"
},
{
"name": "CVE-2026-80631",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80631"
},
{
"name": "CVE-2026-90388",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90388"
},
{
"name": "CVE-2026-97544",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97544"
},
{
"name": "CVE-2026-90065",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90065"
},
{
"name": "CVE-2026-64425",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64425"
},
{
"name": "CVE-2026-46272",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46272"
},
{
"name": "CVE-2026-74406",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74406"
},
{
"name": "CVE-2026-74480",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74480"
},
{
"name": "CVE-2026-64507",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64507"
},
{
"name": "CVE-2026-90150",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90150"
},
{
"name": "CVE-2026-93829",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93829"
},
{
"name": "CVE-2026-74631",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74631"
},
{
"name": "CVE-2026-89712",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89712"
},
{
"name": "CVE-2026-74634",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74634"
},
{
"name": "CVE-2026-64422",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64422"
},
{
"name": "CVE-2026-80737",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80737"
},
{
"name": "CVE-2026-89683",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89683"
},
{
"name": "CVE-2026-89686",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89686"
},
{
"name": "CVE-2026-90218",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90218"
},
{
"name": "CVE-2026-93160",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93160"
},
{
"name": "CVE-2026-74485",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74485"
},
{
"name": "CVE-2026-74255",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74255"
},
{
"name": "CVE-2026-74564",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74564"
},
{
"name": "CVE-2026-93264",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93264"
},
{
"name": "CVE-2026-80983",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80983"
},
{
"name": "CVE-2026-89501",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89501"
},
{
"name": "CVE-2026-89603",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89603"
},
{
"name": "CVE-2026-80540",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80540"
},
{
"name": "CVE-2026-90228",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90228"
},
{
"name": "CVE-2026-74616",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74616"
},
{
"name": "CVE-2026-93037",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93037"
},
{
"name": "CVE-2026-72433",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72433"
},
{
"name": "CVE-2026-98003",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98003"
},
{
"name": "CVE-2026-89453",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89453"
},
{
"name": "CVE-2026-72161",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72161"
},
{
"name": "CVE-2026-72025",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72025"
},
{
"name": "CVE-2026-89448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89448"
},
{
"name": "CVE-2026-92508",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92508"
},
{
"name": "CVE-2026-64154",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64154"
},
{
"name": "CVE-2026-74443",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74443"
},
{
"name": "CVE-2026-97574",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97574"
},
{
"name": "CVE-2026-89899",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89899"
},
{
"name": "CVE-2026-72085",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72085"
},
{
"name": "CVE-2026-68471",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68471"
},
{
"name": "CVE-2026-72460",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72460"
},
{
"name": "CVE-2026-98029",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98029"
},
{
"name": "CVE-2026-64009",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64009"
},
{
"name": "CVE-2026-63883",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63883"
},
{
"name": "CVE-2026-68290",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68290"
},
{
"name": "CVE-2026-80799",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80799"
},
{
"name": "CVE-2026-80664",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80664"
}
],
"initial_release_date": "2026-10-23T00:00:00",
"last_revision_date": "2026-10-23T00:00:00",
"links": [],
"reference": "CERTFR-2026-AVI-1372",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2026-10-23T00:00:00.000000"
}
],
"risks": [
{
"description": "Ex\u00e9cution de code arbitraire \u00e0 distance"
},
{
"description": "Atteinte \u00e0 l\u0027int\u00e9grit\u00e9 des donn\u00e9es"
},
{
"description": "Non sp\u00e9cifi\u00e9 par l\u0027\u00e9diteur"
},
{
"description": "D\u00e9ni de service"
},
{
"description": "Contournement de la politique de s\u00e9curit\u00e9"
},
{
"description": "Atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es"
},
{
"description": "\u00c9l\u00e9vation de privil\u00e8ges"
}
],
"summary": "De multiples vuln\u00e9rabilit\u00e9s ont \u00e9t\u00e9 d\u00e9couvertes dans les produits SUSE. Certaines d\u0027entre elles permettent \u00e0 un attaquant de provoquer une ex\u00e9cution de code arbitraire \u00e0 distance, une \u00e9l\u00e9vation de privil\u00e8ges et une atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es.",
"title": "Multiples vuln\u00e9rabilit\u00e9s dans les produits SUSE",
"vendor_advisories": [
{
"published_at": "2026-10-18",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4718-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264718-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4733-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264733-1"
},
{
"published_at": "2026-10-16",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4702-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264702-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4730-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264730-1"
},
{
"published_at": "2026-10-16",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4693-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264693-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4791-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264791-1"
},
{
"published_at": "2026-10-18",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4725-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264725-1"
},
{
"published_at": "2026-10-22",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4862-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264862-1"
},
{
"published_at": "2026-10-18",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4717-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264717-1"
},
{
"published_at": "2026-10-22",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4855-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264855-1"
},
{
"published_at": "2026-10-16",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4708-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264708-1"
},
{
"published_at": "2026-10-16",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4706-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264706-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4812-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264812-1"
},
{
"published_at": "2026-10-20",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4776-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264776-1"
},
{
"published_at": "2026-10-22",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4871-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264871-1"
},
{
"published_at": "2026-10-12",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24235-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624235-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4734-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264734-1"
},
{
"published_at": "2026-10-12",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24181-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624181-1"
},
{
"published_at": "2026-10-22",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4856-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264856-1"
},
{
"published_at": "2026-10-22",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4848-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264848-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4746-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264746-1"
},
{
"published_at": "2026-10-20",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4768-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264768-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4831-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264831-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4793-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264793-1"
},
{
"published_at": "2026-10-12",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24184-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624184-1"
},
{
"published_at": "2026-10-12",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24179-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624179-1"
},
{
"published_at": "2026-10-20",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4749-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264749-1"
},
{
"published_at": "2026-10-16",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4714-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264714-1"
},
{
"published_at": "2026-10-20",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4748-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264748-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4785-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264785-1"
}
]
}
CVE-2026-93102 (GCVE-0-2026-93102)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/hfi1: Free RX data on late probe failure
hfi1_init_dd() allocates the shared AIP/VNIC RX support before returning.
If hfi1_init() or hfi1_register_ib_device() later fails, init_one() tears
down the device data without calling hfi1_free_rx(). This leaks netdev_rx
and its dummy netdev.
Free the RX support after IB unregistration and before postinit_cleanup(),
as done on normal device removal.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 Version: 4730f4a6c6b2065589c0822af00aa45e639bbc36 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cfad037c6d305876b877abc39fd4d7e2185e44f3",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "d1c91cb02e05fdd93411de707cc5c3c08375df9e",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "10e5e37495096b58f07adc4020de2701efc3a9e0",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "cd06c17afb08b37995f66cf560c2332a769b8f80",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "149a14ec70887ad14e820a7ca15738ded3d2d493",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "83fe4e4f4fbf01d3832a24511c0ddfaccf5df9d8",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
},
{
"lessThan": "8e17e101e04a3dc062e2719da57ff78c1c060632",
"status": "affected",
"version": "4730f4a6c6b2065589c0822af00aa45e639bbc36",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hfi1: Free RX data on late probe failure\n\nhfi1_init_dd() allocates the shared AIP/VNIC RX support before returning.\nIf hfi1_init() or hfi1_register_ib_device() later fails, init_one() tears\ndown the device data without calling hfi1_free_rx(). This leaks netdev_rx\nand its dummy netdev.\n\nFree the RX support after IB unregistration and before postinit_cleanup(),\nas done on normal device removal."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:35.200Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cfad037c6d305876b877abc39fd4d7e2185e44f3"
},
{
"url": "https://git.kernel.org/stable/c/d1c91cb02e05fdd93411de707cc5c3c08375df9e"
},
{
"url": "https://git.kernel.org/stable/c/10e5e37495096b58f07adc4020de2701efc3a9e0"
},
{
"url": "https://git.kernel.org/stable/c/cd06c17afb08b37995f66cf560c2332a769b8f80"
},
{
"url": "https://git.kernel.org/stable/c/149a14ec70887ad14e820a7ca15738ded3d2d493"
},
{
"url": "https://git.kernel.org/stable/c/83fe4e4f4fbf01d3832a24511c0ddfaccf5df9d8"
},
{
"url": "https://git.kernel.org/stable/c/8e17e101e04a3dc062e2719da57ff78c1c060632"
}
],
"title": "RDMA/hfi1: Free RX data on late probe failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93102",
"datePublished": "2026-09-17T16:11:14.413Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:35.200Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72321 (GCVE-0-2026-72321)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer()
When a timer is deleted and not re-armed in igmp_mod_timer(), or stopped
in igmp_stop_timer(), the code currently decrements the reference counter
of the multicast list entry @im using refcount_dec(&im->refcnt).
However, both functions can be called from the RCU reader path:
- igmp_mod_timer() via igmp_heard_query() -> for_each_pmc_rcu()
- igmp_stop_timer() via igmp_rcv() -> igmp_heard_report()
If the group im was concurrently removed from the list by ip_mc_dec_group(),
its reference count might have already been decremented to 1.
In this case, timer_delete() succeeds, and refcount_dec() decrements
the refcount from 1 to 0. Since refcount_dec() does not free the object
when it hits 0 (unlike ip_ma_put()), the im structure is leaked.
Fix this by using ip_ma_put(im) instead of refcount_dec(&im->refcnt),
and deferring the put until after the spinlock is released.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/igmp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d0effadf8d2cc9d006e4c4ab0ab6737aed28d77",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "40d6360ccf9bcbe17b5cb248a84e8e004aac2faa",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f60ec3058a85447008b88b762c859d336163acb3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "95128dc74425ec19ed4f2077ccc651e791ff4b75",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3546deaa0c30a14c7cdb5dc8f2432cb428f0cd36",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/igmp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer()\n\nWhen a timer is deleted and not re-armed in igmp_mod_timer(), or stopped\nin igmp_stop_timer(), the code currently decrements the reference counter\nof the multicast list entry @im using refcount_dec(\u0026im-\u003erefcnt).\n\nHowever, both functions can be called from the RCU reader path:\n- igmp_mod_timer() via igmp_heard_query() -\u003e for_each_pmc_rcu()\n- igmp_stop_timer() via igmp_rcv() -\u003e igmp_heard_report()\n\nIf the group im was concurrently removed from the list by ip_mc_dec_group(),\nits reference count might have already been decremented to 1.\n\nIn this case, timer_delete() succeeds, and refcount_dec() decrements\nthe refcount from 1 to 0. Since refcount_dec() does not free the object\nwhen it hits 0 (unlike ip_ma_put()), the im structure is leaked.\n\nFix this by using ip_ma_put(im) instead of refcount_dec(\u0026im-\u003erefcnt),\nand deferring the put until after the spinlock is released."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:32.954Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2d0effadf8d2cc9d006e4c4ab0ab6737aed28d77"
},
{
"url": "https://git.kernel.org/stable/c/40d6360ccf9bcbe17b5cb248a84e8e004aac2faa"
},
{
"url": "https://git.kernel.org/stable/c/f60ec3058a85447008b88b762c859d336163acb3"
},
{
"url": "https://git.kernel.org/stable/c/95128dc74425ec19ed4f2077ccc651e791ff4b75"
},
{
"url": "https://git.kernel.org/stable/c/3546deaa0c30a14c7cdb5dc8f2432cb428f0cd36"
}
],
"title": "ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72321",
"datePublished": "2026-08-15T05:55:33.547Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-21T12:44:32.954Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89541 (GCVE-0-2026-89541)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: harden gss_unwrap_resp_priv length checks
gss_unwrap_resp_priv() validates the RPCSEC_GSS opaque length with
offset = (u8 *)(p) - (u8 *)head->iov_base;
if (offset + opaque_len > rcv_buf->len)
goto unwrap_failed;
maj_stat = gss_unwrap(ctx->gc_gss_ctx, offset,
offset + opaque_len, rcv_buf);
Both operands are u32 and the sum is computed in u32. A reply with
opaque_len near 0xffffffff makes offset + opaque_len wrap to a small
value that is below rcv_buf->len, so the bound check passes and
gss_unwrap() is called with end < begin. The check also lacks a
lower bound, so any opaque_len in [0, GSS_KRB5_TOK_HDR_LEN) is
accepted and forwarded to gss_krb5_unwrap_v2(), whose pre-decrypt
header reads at ptr+4 and ptr+6 then run past the token.
A krb5p NFS server returning a crafted RPCSEC_GSS reply can drive
the client into out-of-bounds reads in gss_krb5_unwrap_v2() and the
rotate_left() loop that follows.
Fix by replacing the single combined check with three guards that
are safe in u32 arithmetic and that enforce the RFC 4121 minimum
outer token length:
if (offset > rcv_buf->len)
goto unwrap_failed;
if (opaque_len > rcv_buf->len - offset)
goto unwrap_failed;
if (opaque_len < GSS_KRB5_TOK_HDR_LEN)
goto unwrap_failed;
The first guard makes the subtraction in the second guard
unconditionally safe; offset is derived from a successful
xdr_inline_decode() in the head kvec, so in practice it already
satisfies the bound. The floor mirrors the server-side check added
in commit 5b757c2e57a5 ("SUNRPC: svcauth_gss: enforce krb5 token
minimum length").
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf Version: 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89541",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:27.526748Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.189Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/auth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3691c4b3488d8ca046b9941e5be30c626dbbbb50",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "85fa6b12e8f439739ac36ef2aad925f37c8b976a",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "401f6a5b338d05bb1069ad814d9f77e3c367854f",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "81fd7654a8429718adfcb2a7e03496077f547ed0",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "89a15a50f84d32d4b99db86f957427fcbe20a99a",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "ebcbd2523a8524c3d24e111cdbed8e271d910269",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "d395c30d570ca6168f0297b191709927d1258273",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
},
{
"lessThan": "87831b92112c81db251d46756d65daa4f91af6a2",
"status": "affected",
"version": "2d2da60c63b67174add32f06e8d54c3a0c5cd9cf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/auth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.15"
},
{
"lessThan": "2.6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: harden gss_unwrap_resp_priv length checks\n\ngss_unwrap_resp_priv() validates the RPCSEC_GSS opaque length with\n\n offset = (u8 *)(p) - (u8 *)head-\u003eiov_base;\n if (offset + opaque_len \u003e rcv_buf-\u003elen)\n goto unwrap_failed;\n maj_stat = gss_unwrap(ctx-\u003egc_gss_ctx, offset,\n offset + opaque_len, rcv_buf);\n\nBoth operands are u32 and the sum is computed in u32. A reply with\nopaque_len near 0xffffffff makes offset + opaque_len wrap to a small\nvalue that is below rcv_buf-\u003elen, so the bound check passes and\ngss_unwrap() is called with end \u003c begin. The check also lacks a\nlower bound, so any opaque_len in [0, GSS_KRB5_TOK_HDR_LEN) is\naccepted and forwarded to gss_krb5_unwrap_v2(), whose pre-decrypt\nheader reads at ptr+4 and ptr+6 then run past the token.\n\nA krb5p NFS server returning a crafted RPCSEC_GSS reply can drive\nthe client into out-of-bounds reads in gss_krb5_unwrap_v2() and the\nrotate_left() loop that follows.\n\nFix by replacing the single combined check with three guards that\nare safe in u32 arithmetic and that enforce the RFC 4121 minimum\nouter token length:\n\n if (offset \u003e rcv_buf-\u003elen)\n goto unwrap_failed;\n if (opaque_len \u003e rcv_buf-\u003elen - offset)\n goto unwrap_failed;\n if (opaque_len \u003c GSS_KRB5_TOK_HDR_LEN)\n goto unwrap_failed;\n\nThe first guard makes the subtraction in the second guard\nunconditionally safe; offset is derived from a successful\nxdr_inline_decode() in the head kvec, so in practice it already\nsatisfies the bound. The floor mirrors the server-side check added\nin commit 5b757c2e57a5 (\"SUNRPC: svcauth_gss: enforce krb5 token\nminimum length\")."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - gss_unwrap_resp_priv() runs in the Linux NFS/SUNRPC client while decoding RPCSEC_GSS privacy (krb5p) replies; a malicious or compromised NFS server supplies the crafted opaque_len and wrap token over the existing TCP/UDP/RDMA RPC connection.\nAC:L - The attacker fully controls the reply, including opaque_len and the cleartext RFC 4121 header, and a single response can make offset+opaque_len wrap in u32 or fall below GSS_KRB5_TOK_HDR_LEN; no race or layout beyond the attacker\u2019s control is required.\nPR:N - The attacker is the remote RPC/NFS peer that already holds the GSS session keys needed to pass gss_validate(); no local account, user namespace, or capability on the victim client is required.\nUI:N - Once a krb5p NFS mount or other SUNRPC GSS-privacy client is already in use, normal client RPCs elicit replies the attacker can craft; no extra victim action is needed at attack time.\nS:U - Out-of-bounds reads, rotate/decrypt memory corruption, and crashes stay inside the victim kernel\u2019s SUNRPC client and do not cross a VM, IOMMU, or other security-authority boundary.\nC:H - A short or wrapped opaque_len makes gss_krb5_unwrap_v2() read past the token at ptr+4/ptr+6 and feeds rotate_left()/decrypt with wrapped lengths, disclosing adjacent kernel memory; unwrap cleanup can also memmove nearly UINT_MAX bytes.\nI:H - The same wrapped lengths drive rotate_left() writes, CBC/AEAD decrypt over an unbounded xdr subsegment (xdr_buf_subsegment\u2019s error is ignored), and gss_krb5_unwrap_v2()\u2019s unsigned movelen underflow into a near-4GiB memmove, enabling kernel memory corruption.\nA:H - rotate_left() can divide-by-zero on a zero-length subbuffer, spin in a multi-gigabyte kernel loop on a wrapped subsegment, or oops/panic on the huge memmove or out-of-bounds header access."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:32.929Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3691c4b3488d8ca046b9941e5be30c626dbbbb50"
},
{
"url": "https://git.kernel.org/stable/c/85fa6b12e8f439739ac36ef2aad925f37c8b976a"
},
{
"url": "https://git.kernel.org/stable/c/401f6a5b338d05bb1069ad814d9f77e3c367854f"
},
{
"url": "https://git.kernel.org/stable/c/81fd7654a8429718adfcb2a7e03496077f547ed0"
},
{
"url": "https://git.kernel.org/stable/c/89a15a50f84d32d4b99db86f957427fcbe20a99a"
},
{
"url": "https://git.kernel.org/stable/c/ebcbd2523a8524c3d24e111cdbed8e271d910269"
},
{
"url": "https://git.kernel.org/stable/c/d395c30d570ca6168f0297b191709927d1258273"
},
{
"url": "https://git.kernel.org/stable/c/87831b92112c81db251d46756d65daa4f91af6a2"
}
],
"title": "SUNRPC: harden gss_unwrap_resp_priv length checks",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89541",
"datePublished": "2026-09-11T19:44:18.188Z",
"dateReserved": "2026-09-11T19:38:34.721Z",
"dateUpdated": "2026-10-19T08:48:32.929Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97413 (GCVE-0-2026-97413)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-10-03 10:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rtrs-srv: Fix integer underflow in process_read and process_write
usr_len is read from a network-supplied message field (le16_to_cpu)
and used to compute data_len = off - usr_len without validating that
usr_len <= off. A malicious RDMA client can send usr_len > off causing
an integer underflow, resulting in data_len wrapping to a huge size_t
value which is then passed to the rdma_ev callback as a memory length,
leading to out-of-bounds memory access.
Fix by reading and validating usr_len <= off before rtrs_srv_get_ops_ids()
in both process_read() and process_write(), ensuring the early return
path acquires no reference and has no resource leak.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9cb837480424e78ed585376f944088246685aec3 Version: 9cb837480424e78ed585376f944088246685aec3 Version: 9cb837480424e78ed585376f944088246685aec3 Version: 9cb837480424e78ed585376f944088246685aec3 Version: 9cb837480424e78ed585376f944088246685aec3 Version: 9cb837480424e78ed585376f944088246685aec3 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/rtrs/rtrs-srv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6b1e26e70d7ca9f0906af2283558a530eeb1f066",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
},
{
"lessThan": "2c52b2afded988233cd4ccc185cf5147bbc77a76",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
},
{
"lessThan": "b042b4947752df0b3d16e683ac09fb4f7f0e33e0",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
},
{
"lessThan": "24ad03bfeda05fca04c56677e57fd3d6bc3e9978",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
},
{
"lessThan": "c76e9123ab91a903396d26e6ab1b5caae5c6b149",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
},
{
"lessThan": "54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5",
"status": "affected",
"version": "9cb837480424e78ed585376f944088246685aec3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/rtrs/rtrs-srv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rtrs-srv: Fix integer underflow in process_read and process_write\n\nusr_len is read from a network-supplied message field (le16_to_cpu)\nand used to compute data_len = off - usr_len without validating that\nusr_len \u003c= off. A malicious RDMA client can send usr_len \u003e off causing\nan integer underflow, resulting in data_len wrapping to a huge size_t\nvalue which is then passed to the rdma_ev callback as a memory length,\nleading to out-of-bounds memory access.\n\nFix by reading and validating usr_len \u003c= off before rtrs_srv_get_ops_ids()\nin both process_read() and process_write(), ensuring the early return\npath acquires no reference and has no resource leak."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote peer RDMA-WRITE-WITH-IMM\u0027s a RTRS_MSG_READ or RTRS_MSG_WRITE carrying attacker-controlled usr_len; rtrs_srv_rdma_done() hands that buffer to process_io_req() then process_read()/process_write(). rtrs_srv_cm_init() listens with RDMA_PS_TCP on IPv6 port 1234 (RoCEv2/iWARP), which is IP-routable.\nAC:L - The peer sets le16 usr_len in the RTRS_MSG_READ/WRITE at chunk+off and the IMM payload that rtrs_srv_rdma_done() splits into msg_id and off. Choosing usr_len \u003e off makes size_t data_len = off - usr_len wrap on every call; there is no race and no victim-held state.\nPR:N - rtrs_rdma_connect() admits the RDMA_CM CONNECT_REQUEST after checking only RTRS_MAGIC, protocol major version, and cid/uuid; process_info_req() then publishes chunk rkeys and moves to RTRS_SRV_CONNECTED with no credentials, so process_read()/process_write() run unauthenticated.\nUI:N - The attacker posts the RDMA-WRITE-WITH-IMM that rtrs_srv_rdma_done() delivers to process_read()/process_write(); no local user must mount a volume, open a file, or otherwise interact.\nS:U - process_read()/process_write() invoke rnbd_srv_rdma_ev() in the same host kernel that owns the chunk pages; the OOB access stays inside that kernel and does not escape a VM, guest, or IOMMU domain.\nC:H - Underflowed data_len makes usr = page_address(chunk)+off-usr_len point before the chunk. rnbd_srv_rdma_ev() reads the RNBD header there; a sprayed RNBD_MSG_OPEN does unbounded strlen(dev_name), and process_rdma() bio_add_virt_nofail()s a ~4GiB WRITE bvec that copies following linear-map pages onto a device the peer can read back.\nI:H - process_rdma() truncates the wrapped size_t to u32 and bio_add_virt_nofail() installs a ~4GiB bvec from the chunk page; submit_bio() of an RNBD_OP_READ therefore writes device data through that bvec into subsequent kernel linear-map pages, an out-of-bounds kernel write.\nA:H - rnbd_srv_rdma_ev() immediately loads hdr-\u003etype from the wrapped usr pointer, process_msg_open() strlen()s that OOB name, and the ~4GiB bio_add_virt_nofail() bvec walks into holes or MMIO in the linear map; any of those oops/panic the completion path and can be repeated at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:58:05.684Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6b1e26e70d7ca9f0906af2283558a530eeb1f066"
},
{
"url": "https://git.kernel.org/stable/c/2c52b2afded988233cd4ccc185cf5147bbc77a76"
},
{
"url": "https://git.kernel.org/stable/c/b042b4947752df0b3d16e683ac09fb4f7f0e33e0"
},
{
"url": "https://git.kernel.org/stable/c/24ad03bfeda05fca04c56677e57fd3d6bc3e9978"
},
{
"url": "https://git.kernel.org/stable/c/c76e9123ab91a903396d26e6ab1b5caae5c6b149"
},
{
"url": "https://git.kernel.org/stable/c/54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5"
}
],
"title": "RDMA/rtrs-srv: Fix integer underflow in process_read and process_write",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97413",
"datePublished": "2026-09-24T16:03:21.010Z",
"dateReserved": "2026-09-24T14:53:16.867Z",
"dateUpdated": "2026-10-03T10:58:05.684Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74290 (GCVE-0-2026-74290)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_flow: Dont expose folded kernel pointers
The flow classifier falls back to addr_fold() for fields that are missing
from packet headers. In map mode, userspace controls mask, xor, rshift,
addend and divisor, and can observe the resulting classid through class
statistics. This allows a tc classifier in a user/network namespace to
recover the 32-bit folded value of skb->sk, skb_dst() or skb_nfct().
Align with standard kernel practices for pointer hashing and replace the
XOR folding with a keyed siphash (which is cryptographically secure)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe Version: e5dfb815181fcb186d6080ac3a091eadff2d98fe |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/cls_flow.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "19f2ecf8ea564562c7e7a919cf38068dd9aa1c96",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
},
{
"lessThan": "3d054001860270748405a3f9270c5fa0bf7ffc19",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
},
{
"lessThan": "fb31fbe51c233f3bf47021121f63d2e42cac2d08",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
},
{
"lessThan": "0a8b5b74f0e6b6b9ce453bcfa4baa502c4c7577a",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
},
{
"lessThan": "6151159618198675e01c391676e579738286c135",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
},
{
"lessThan": "f294fc71c4a0fa4964f6428a1b4e7929c1d83125",
"status": "affected",
"version": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/cls_flow.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.25"
},
{
"lessThan": "2.6.25",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.25",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_flow: Dont expose folded kernel pointers\n\nThe flow classifier falls back to addr_fold() for fields that are missing\nfrom packet headers. In map mode, userspace controls mask, xor, rshift,\naddend and divisor, and can observe the resulting classid through class\nstatistics. This allows a tc classifier in a user/network namespace to\nrecover the 32-bit folded value of skb-\u003esk, skb_dst() or skb_nfct().\n\nAlign with standard kernel practices for pointer hashing and replace the\nXOR folding with a keyed siphash (which is cryptographically secure)"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:16:36.420Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/19f2ecf8ea564562c7e7a919cf38068dd9aa1c96"
},
{
"url": "https://git.kernel.org/stable/c/3d054001860270748405a3f9270c5fa0bf7ffc19"
},
{
"url": "https://git.kernel.org/stable/c/fb31fbe51c233f3bf47021121f63d2e42cac2d08"
},
{
"url": "https://git.kernel.org/stable/c/0a8b5b74f0e6b6b9ce453bcfa4baa502c4c7577a"
},
{
"url": "https://git.kernel.org/stable/c/6151159618198675e01c391676e579738286c135"
},
{
"url": "https://git.kernel.org/stable/c/f294fc71c4a0fa4964f6428a1b4e7929c1d83125"
}
],
"title": "net/sched: cls_flow: Dont expose folded kernel pointers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74290",
"datePublished": "2026-08-15T05:57:57.004Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-08-17T05:16:36.420Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68477 (GCVE-0-2026-68477)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipvs: fix more places with wrong ipv6 transport offsets
Sashiko reports for more incorrect IPv6 transport offsets.
The app code for TCP was assuming IPv4 network header
even after the ipvsh argument was provided. This can
cause problems with apps over IPv6. As for the only
official app in the kernel tree (FTP) this problem is
harmless because we use Netfilter to mangle the FTP
ports and we do not adjust the TCP seq numbers.
Also, provide correct offset of the ICMPV6 header in
ip_vs_out_icmp_v6() for correct checksum checks when
the IPv6 packet has extension headers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 Version: 2a3b791e6e1169f374224d164738e9f7be703d77 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68477",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:38.524589Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:12.031Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_app.c",
"net/netfilter/ipvs/ip_vs_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "613ce63711b8d431bba90781f133c39a21684f87",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "95d4511d81b2b37e5d2bdde5d912e48243eae517",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "3a9dc9b55b53d94613a587604b77d3b20024090c",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "a3f0d5b605cd5da5c95279969fb8cea4e55cee5b",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "7350eb7ead172ae8024897d4b0f2e15c5318279c",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "d4ec18f48ce78a3bf7c999ac908691007375fe99",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "905d7a363ade96a19f214815361e11981142c547",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
},
{
"lessThan": "b3fe4cbd583895987935a9bdad01c8f9d3a02310",
"status": "affected",
"version": "2a3b791e6e1169f374224d164738e9f7be703d77",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_app.c",
"net/netfilter/ipvs/ip_vs_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.28"
},
{
"lessThan": "2.6.28",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.28",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: fix more places with wrong ipv6 transport offsets\n\nSashiko reports for more incorrect IPv6 transport offsets.\n\nThe app code for TCP was assuming IPv4 network header\neven after the ipvsh argument was provided. This can\ncause problems with apps over IPv6. As for the only\nofficial app in the kernel tree (FTP) this problem is\nharmless because we use Netfilter to mangle the FTP\nports and we do not adjust the TCP seq numbers.\n\nAlso, provide correct offset of the ICMPV6 header in\nip_vs_out_icmp_v6() for correct checksum checks when\nthe IPv6 packet has extension headers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is triggered when remote IPv6 packets traverse IPVS netfilter hooks (NF_INET_LOCAL_IN/OUT/FORWARD) on an internet-facing load balancer; attackers send crafted IPv6 traffic with extension headers to a configured virtual service without local access.\nAC:L - The attacker fully controls IPv6 extension headers and TCP/ICMPv6 packet contents on connections they initiate to the VIP; no race or privileged victim state is required beyond normal IPVS load-balancer operation.\nPR:N - Exploitation requires only the ability to send network traffic to an IPVS-managed VIP; the attacker needs no account or capabilities on the target host (IPVS configuration is an environmental prerequisite, not attacker privilege).\nUI:N - No victim user interaction is required beyond the attacker sending malicious IPv6 packets over an established or new connection to the load-balanced service.\nS:U - Impact is confined to kernel memory corruption and packet handling within the load-balancer host; it does not cross a VM, container, or IOMMU security boundary.\nC:H - Using ip_hdrlen() on IPv6 skbs reads TCP sequence/ack fields from the wrong skb offset (into the IPv6 header or extension-header area), constituting an out-of-bounds read exploitable for information disclosure.\nI:H - In ip_vs_out_icmp_v6, passing sizeof(ipv6hdr) instead of ipvsh-\u003elen causes ip_vs_nat_icmp_v6 to write ICMP/address/port fields at the wrong skb offset, corrupting extension headers or adjacent packet data.\nA:H - Corrupting IPv6/ICMP/TCP header fields in the skb can cause kernel oops, panics, or connection disruption on the load balancer when malformed packets are processed or forwarded."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:19.469Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/613ce63711b8d431bba90781f133c39a21684f87"
},
{
"url": "https://git.kernel.org/stable/c/95d4511d81b2b37e5d2bdde5d912e48243eae517"
},
{
"url": "https://git.kernel.org/stable/c/3a9dc9b55b53d94613a587604b77d3b20024090c"
},
{
"url": "https://git.kernel.org/stable/c/a3f0d5b605cd5da5c95279969fb8cea4e55cee5b"
},
{
"url": "https://git.kernel.org/stable/c/7350eb7ead172ae8024897d4b0f2e15c5318279c"
},
{
"url": "https://git.kernel.org/stable/c/d4ec18f48ce78a3bf7c999ac908691007375fe99"
},
{
"url": "https://git.kernel.org/stable/c/905d7a363ade96a19f214815361e11981142c547"
},
{
"url": "https://git.kernel.org/stable/c/b3fe4cbd583895987935a9bdad01c8f9d3a02310"
}
],
"title": "ipvs: fix more places with wrong ipv6 transport offsets",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68477",
"datePublished": "2026-08-15T05:51:32.820Z",
"dateReserved": "2026-07-30T09:28:09.396Z",
"dateUpdated": "2026-10-19T21:09:12.031Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74710 (GCVE-0-2026-74710)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xsk: require at least 16 bytes of TX metadata
AF_XDP accepts a TX metadata length as small as eight bytes, but every
supported request needs the flags plus at least one eight-byte request
field. Such short metadata also lets the kernel read beyond the registered
area.
Require 16 bytes rather than sizeof(struct xsk_tx_metadata) to preserve
compatibility with applications that do not use launch-time metadata.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74710",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:16.370467Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:11.065Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xdp/xdp_umem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "21b8536aee819792f1b4b38b9aacf2a073025d49",
"status": "affected",
"version": "341ac980eab90ac1f6c22ee9f9da83ed9604d899",
"versionType": "git"
},
{
"lessThan": "642c6e73fce17fdca93a5793c4d22359fda866d7",
"status": "affected",
"version": "341ac980eab90ac1f6c22ee9f9da83ed9604d899",
"versionType": "git"
},
{
"lessThan": "cfb9d2976b277e554e28c165e3eff4b4a8ea10bd",
"status": "affected",
"version": "341ac980eab90ac1f6c22ee9f9da83ed9604d899",
"versionType": "git"
},
{
"lessThan": "1bb30b181d9f0484e141f8411e15ed906d5c6780",
"status": "affected",
"version": "341ac980eab90ac1f6c22ee9f9da83ed9604d899",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xdp/xdp_umem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxsk: require at least 16 bytes of TX metadata\n\nAF_XDP accepts a TX metadata length as small as eight bytes, but every\nsupported request needs the flags plus at least one eight-byte request\nfield. Such short metadata also lets the kernel read beyond the registered\narea.\n\nRequire 16 bytes rather than sizeof(struct xsk_tx_metadata) to preserve\ncompatibility with applications that do not use launch-time metadata."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local AF_XDP setup\u2014socket(AF_XDP), setsockopt(XDP_UMEM_REG) with tx_metadata_len=8, ring configuration, bind, and TX descriptor submission\u2014not via remote packet handling or network-facing services.\nAC:L - The attacker fully controls tx_metadata_len, descriptor addresses, metadata flags, and TX timing, and can place frames at chunk boundaries to reliably trigger kernel reads/writes past the declared 8-byte metadata headroom.\nPR:L - AF_XDP socket creation requires CAP_NET_RAW (xsk_create()); per kernel CNA guidance this is Low because unprivileged processes can obtain it inside user/network namespaces (e.g., unshare -Urn).\nUI:N - No victim action is required; the attacker configures their own AF_XDP socket, UMEM, rings, and TX descriptors to trigger the faulty metadata handling during transmit.\nS:U - Impact is confined to kernel processing of attacker-supplied AF_XDP metadata and pinned UMEM frames; it does not cross VM, hypervisor, or IOMMU isolation boundaries.\nC:H - With only 8 bytes registered, the kernel still dereferences xsk_tx_metadata request fields (checksum, launch time) beyond the metadata area; this out-of-bounds read can cross chunk/UMEM boundaries and expose adjacent memory.\nI:H - TX timestamp completion writes through meta-\u003ecompletion.tx_timestamp when only 8 bytes of metadata were reserved, causing an out-of-bounds write past the registered metadata headroom that can corrupt adjacent memory or be leveraged further.\nA:H - Reading or writing metadata fields beyond the registered length at chunk/UMEM edges can access unmapped pages and trigger kernel faults; out-of-bounds kernel accesses in this path can cause oops/panic-level denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:52.464Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/21b8536aee819792f1b4b38b9aacf2a073025d49"
},
{
"url": "https://git.kernel.org/stable/c/642c6e73fce17fdca93a5793c4d22359fda866d7"
},
{
"url": "https://git.kernel.org/stable/c/cfb9d2976b277e554e28c165e3eff4b4a8ea10bd"
},
{
"url": "https://git.kernel.org/stable/c/1bb30b181d9f0484e141f8411e15ed906d5c6780"
}
],
"title": "xsk: require at least 16 bytes of TX metadata",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74710",
"datePublished": "2026-08-22T15:33:07.172Z",
"dateReserved": "2026-08-15T05:44:03.928Z",
"dateUpdated": "2026-10-16T19:16:11.065Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72066 (GCVE-0-2026-72066)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cpu: hotplug: Bound hotplug states sysfs output
states_show() adds CPU hotplug state names into a single sysfs buffer
using sprintf(). With enough registered states, this can write past the
end of the PAGE_SIZE buffer.
Use sysfs_emit_at() so output is bounded.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e Version: 98f8cdce1db580b99fce823a48eea2cb2bdb261e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72066",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:51:15.720754Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-120",
"description": "CWE-120 Buffer Copy without Checking Size of Input (\u0027Classic Buffer Overflow\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:26.150Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/cpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "27481cf4365a6ff5c9be3590143e7ed434000266",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "2408be459c70ef4250da1a9e50f5478e6b250d61",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "de4d3d8ae17dc8b4cf8c59436c4b7e2dc2491635",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "998f66e9ce320f3433f60b948e3698b744754a46",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "61a73a123ac7a7fbc57382531f8cb7092d569aba",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "6cb15b81ff545840048fb0e1a6e827d560dbf367",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "631d53102da9f469c96b882b770336bec095b833",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
},
{
"lessThan": "86f436567f2516a0083b210bedc933544826a2c3",
"status": "affected",
"version": "98f8cdce1db580b99fce823a48eea2cb2bdb261e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/cpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncpu: hotplug: Bound hotplug states sysfs output\n\nstates_show() adds CPU hotplug state names into a single sysfs buffer\nusing sprintf(). With enough registered states, this can write past the\nend of the PAGE_SIZE buffer.\n\nUse sysfs_emit_at() so output is bounded."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in states_show() on the read path for /sys/devices/system/cpu/hotplug/states, reached only via a local sysfs/VFS read() syscall. No network packet handler, adjacent protocol, or physical attach path invokes this CPU hotplug sysfs callback.\nAC:L - Once enough CPU hotplug states are registered (plausible on cloud servers, KVM hosts, Android, and heavily configured distros with hundreds of cpuhp_setup_state() users), a single read deterministically executes unbounded sprintf() past the PAGE_SIZE buffer with no race or attacker-uncontrollable timing.\nPR:L - states is DEVICE_ATTR_RO (mode 0444), so any unprivileged local user can open and read /sys/devices/system/cpu/hotplug/states. states_show() performs no capability, namespace, or credential check before formatting output into the sysfs buffer.\nUI:N - Exploitation requires only the attacker reading the sysfs attribute; no victim mount, driver bind, module load, or other interactive action is needed beyond the attacker\u0027s own read once sufficient hotplug states exist at boot.\nS:U - The out-of-bounds write corrupts kernel heap memory within the same OS/kernel security authority. This is standard kernel memory corruption, not a KVM guest-to-host escape, IOMMU boundary bypass, or other cross-scope boundary violation.\nC:H - Unbounded sprintf() writes past the fixed PAGE_SIZE buffer allocated by sysfs_kf_seq_show(), corrupting adjacent kmalloc heap memory. Per kernel guidance, this class of memory-corruption OOB write can be leveraged for arbitrary kernel memory disclosure.\nI:H - The vulnerable loop advances buf and repeatedly sprintf()s without bounds, producing a kernel heap out-of-bounds write that can corrupt adjacent objects and enable control-flow hijacking or arbitrary kernel writes per OOB-write scoring guidance.\nA:H - Writing past the PAGE_SIZE sysfs show buffer corrupts adjacent kernel heap objects and can cause immediate kernel oops/panic during the read path or when corrupted adjacent allocations are later used, satisfying High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:35:55.630Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/27481cf4365a6ff5c9be3590143e7ed434000266"
},
{
"url": "https://git.kernel.org/stable/c/2408be459c70ef4250da1a9e50f5478e6b250d61"
},
{
"url": "https://git.kernel.org/stable/c/de4d3d8ae17dc8b4cf8c59436c4b7e2dc2491635"
},
{
"url": "https://git.kernel.org/stable/c/998f66e9ce320f3433f60b948e3698b744754a46"
},
{
"url": "https://git.kernel.org/stable/c/61a73a123ac7a7fbc57382531f8cb7092d569aba"
},
{
"url": "https://git.kernel.org/stable/c/6cb15b81ff545840048fb0e1a6e827d560dbf367"
},
{
"url": "https://git.kernel.org/stable/c/631d53102da9f469c96b882b770336bec095b833"
},
{
"url": "https://git.kernel.org/stable/c/86f436567f2516a0083b210bedc933544826a2c3"
}
],
"title": "cpu: hotplug: Bound hotplug states sysfs output",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72066",
"datePublished": "2026-08-15T05:52:19.527Z",
"dateReserved": "2026-08-09T03:40:39.903Z",
"dateUpdated": "2026-10-19T21:19:26.150Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72129 (GCVE-0-2026-72129)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-rdma: handle inline data with a nonzero offset
nvmet_rdma_use_inline_sg() maps the host-controlled inline data offset
into the per-command inline scatterlist. The bounds check admits any
offset with off + len <= inline_data_size, but the mapping still assumes
the data begins in the first inline page:
sg->offset = off;
sg->length = min_t(int, len, PAGE_SIZE - off);
When a port is configured with inline_data_size > PAGE_SIZE (settable up
to max(SZ_16K, PAGE_SIZE)), an offset in (PAGE_SIZE, inline_data_size]
makes "PAGE_SIZE - off" underflow, so sg->length is set to ~4 GiB and
the block backend reads far past the first inline page. num_pages(len)
also ignores the offset, so an in-bounds offset whose [off, off+len)
span crosses a page boundary under-counts the scatterlist.
Map the offset properly: split it into a page index and an in-page
offset, start the scatterlist at that page, and size the page count from
page_off + len. Because the request scatterlist may now start at
inline_sg[page_idx] rather than inline_sg[0], generalize the inline-SGL
identity test in nvmet_rdma_release_rsp() to a range test; otherwise the
persistent inline scatterlist is mistaken for an allocated one and
nvmet_req_free_sgls() frees an inline page (and warns in
free_large_kmalloc()).
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 Version: 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72129",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:24.250750Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:58.318Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/rdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c2106ba1b14d644a5203bea1a50dbe25dcad713c",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "bf8bcc1c137d54a62a428b00051fdbb13660673b",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "11401371152b228448a41d79c6de1c938f93049a",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "7c96581169c9d9a7d0726e554313acfbead6141c",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "42a8ea3acd883f4f210d9e54e0975b1e2292b529",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "2944113ad5fbcdf5d349d857c03d2a44b6de75b8",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "98bcdfa619150b2f41fa15bac140dbaf2584ad05",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
},
{
"lessThan": "48c0162f647bb47e6084ffbc71b8f213f5e2f4f8",
"status": "affected",
"version": "0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/rdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-rdma: handle inline data with a nonzero offset\n\nnvmet_rdma_use_inline_sg() maps the host-controlled inline data offset\ninto the per-command inline scatterlist. The bounds check admits any\noffset with off + len \u003c= inline_data_size, but the mapping still assumes\nthe data begins in the first inline page:\n\n\tsg-\u003eoffset = off;\n\tsg-\u003elength = min_t(int, len, PAGE_SIZE - off);\n\nWhen a port is configured with inline_data_size \u003e PAGE_SIZE (settable up\nto max(SZ_16K, PAGE_SIZE)), an offset in (PAGE_SIZE, inline_data_size]\nmakes \"PAGE_SIZE - off\" underflow, so sg-\u003elength is set to ~4 GiB and\nthe block backend reads far past the first inline page. num_pages(len)\nalso ignores the offset, so an in-bounds offset whose [off, off+len)\nspan crosses a page boundary under-counts the scatterlist.\n\nMap the offset properly: split it into a page index and an in-page\noffset, start the scatterlist at that page, and size the page count from\npage_off + len. Because the request scatterlist may now start at\ninline_sg[page_idx] rather than inline_sg[0], generalize the inline-SGL\nidentity test in nvmet_rdma_release_rsp() to a range test; otherwise the\npersistent inline scatterlist is mistaken for an allocated one and\nnvmet_req_free_sgls() frees an inline page (and warns in\nfree_large_kmalloc())."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nvmet-rdma is an in-kernel NVMe-oF target that processes NVMe commands and inline data from remote initiators over RDMA (RoCE/IB) via RDMA RECV completions, placing it in the same network-reachable class as nvmet-tcp and other remote fabric targets.\nAC:L - In deployments using inline_data_size above PAGE_SIZE (up to 16KB), a remote initiator fully controls the inline SGL offset and length in write commands and can deterministically trigger the integer underflow and multi-gigabyte scatterlist length without races or victim-specific timing.\nPR:N - Exploitation requires only remote NVMe-oF RDMA connectivity to a configured target subsystem; no local UNIX privileges or Linux capabilities on the victim host are needed, and the vulnerable recv/command path is reachable before or without mandatory DH-HMAC-CHAP on I/O queues.\nUI:N - Triggering the bug requires only sending crafted NVMe write commands with malicious inline SGL offsets over an established RDMA connection; no end-user actions such as mounting filesystems or opening files are required.\nS:U - The vulnerability corrupts kernel heap memory and backing storage on the NVMe target host itself; it does not cross a VM, container, or IOMMU security boundary to impact a separate security authority.\nC:H - The integer underflow sets scatterlist entries to ~4 GiB, causing the block backend to read far beyond the inline DMA buffer pages into adjacent kernel memory, and the erroneous sgl_free of inline pages creates use-after-free conditions enabling further information disclosure.\nI:H - Out-of-bounds kernel memory is incorporated into block write bios corrupting exported backing storage, and the erroneous freeing of inline scatterlist pages enables heap corruption primitives that can be leveraged for arbitrary memory writes or control-flow hijacking.\nA:H - Out-of-bounds access from multi-gigabyte scatterlist lengths, warnings from free_large_kmalloc() on freed inline pages, and nvmet fatal error handling can cause kernel oops, hung I/O, or panic on the storage target."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:41.114Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c2106ba1b14d644a5203bea1a50dbe25dcad713c"
},
{
"url": "https://git.kernel.org/stable/c/bf8bcc1c137d54a62a428b00051fdbb13660673b"
},
{
"url": "https://git.kernel.org/stable/c/11401371152b228448a41d79c6de1c938f93049a"
},
{
"url": "https://git.kernel.org/stable/c/7c96581169c9d9a7d0726e554313acfbead6141c"
},
{
"url": "https://git.kernel.org/stable/c/42a8ea3acd883f4f210d9e54e0975b1e2292b529"
},
{
"url": "https://git.kernel.org/stable/c/2944113ad5fbcdf5d349d857c03d2a44b6de75b8"
},
{
"url": "https://git.kernel.org/stable/c/98bcdfa619150b2f41fa15bac140dbaf2584ad05"
},
{
"url": "https://git.kernel.org/stable/c/48c0162f647bb47e6084ffbc71b8f213f5e2f4f8"
}
],
"title": "nvmet-rdma: handle inline data with a nonzero offset",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72129",
"datePublished": "2026-08-15T05:53:05.874Z",
"dateReserved": "2026-08-09T03:40:39.907Z",
"dateUpdated": "2026-10-16T18:44:58.318Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72138 (GCVE-0-2026-72138)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-17 05:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xen/gntdev: fix error handling in ioctl
When gntdev_ioctl_map_grant_ref() fails to copy the operation result
back to userspace after successfully adding the mapping to the list,
the error path returns -EFAULT without releasing the reference
acquired by gntdev_alloc_map(). The mapping remains in priv->maps
with a refcount of 1, causing a memory leak and a dangling list
entry.
Additionally, gntdev_add_map() may modify map->index to avoid overlap
with existing mappings. Therefore, the index returned to userspace
must be obtained after gntdev_add_map() completes.
Fix this by holding the mutex across gntdev_add_map(), retrieving
the correct index, and copy_to_user(). If copy_to_user() fails,
remove the mapping from the list and release the reference while
still holding the lock.
Fix these issues by properly handling all error cases.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 Version: 68b025c813c2eb41ff25628e3d4952d5185eb1a4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/xen/gntdev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52dc40ef0cfee6ae89b7524967e73f0ba37906d7",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "1dd9cb98fe228e017fff9efb33862ff38c741b65",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "6df926130aee6cab9b5d2e5b7862e49ccac348dc",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "311011f8cc206c5af2877b03e3f627ee1b8fe024",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "18a693733f7ad004e1ab0466693121ca70cd95dd",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "16d3ccdabb8dee9be2cdcd6d3f9a125572ec0454",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "6883269a323609f68f6faa903f8f8ff3d191cec8",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
},
{
"lessThan": "45ca1afe2fd14c04e37227e79d3f8455831d8408",
"status": "affected",
"version": "68b025c813c2eb41ff25628e3d4952d5185eb1a4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/xen/gntdev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.39"
},
{
"lessThan": "2.6.39",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.39",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxen/gntdev: fix error handling in ioctl\n\nWhen gntdev_ioctl_map_grant_ref() fails to copy the operation result\nback to userspace after successfully adding the mapping to the list,\nthe error path returns -EFAULT without releasing the reference\nacquired by gntdev_alloc_map(). The mapping remains in priv-\u003emaps\nwith a refcount of 1, causing a memory leak and a dangling list\nentry.\n\nAdditionally, gntdev_add_map() may modify map-\u003eindex to avoid overlap\nwith existing mappings. Therefore, the index returned to userspace\nmust be obtained after gntdev_add_map() completes.\n\nFix this by holding the mutex across gntdev_add_map(), retrieving\nthe correct index, and copy_to_user(). If copy_to_user() fails,\nremove the mapping from the list and release the reference while\nstill holding the lock.\n\n\nFix these issues by properly handling all error cases."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:08:56.108Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52dc40ef0cfee6ae89b7524967e73f0ba37906d7"
},
{
"url": "https://git.kernel.org/stable/c/1dd9cb98fe228e017fff9efb33862ff38c741b65"
},
{
"url": "https://git.kernel.org/stable/c/6df926130aee6cab9b5d2e5b7862e49ccac348dc"
},
{
"url": "https://git.kernel.org/stable/c/311011f8cc206c5af2877b03e3f627ee1b8fe024"
},
{
"url": "https://git.kernel.org/stable/c/18a693733f7ad004e1ab0466693121ca70cd95dd"
},
{
"url": "https://git.kernel.org/stable/c/16d3ccdabb8dee9be2cdcd6d3f9a125572ec0454"
},
{
"url": "https://git.kernel.org/stable/c/6883269a323609f68f6faa903f8f8ff3d191cec8"
},
{
"url": "https://git.kernel.org/stable/c/45ca1afe2fd14c04e37227e79d3f8455831d8408"
}
],
"title": "xen/gntdev: fix error handling in ioctl",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72138",
"datePublished": "2026-08-15T05:53:12.549Z",
"dateReserved": "2026-08-09T03:40:39.908Z",
"dateUpdated": "2026-08-17T05:08:56.108Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74630 (GCVE-0-2026-74630)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: prevent in6_dev_get() from resurrecting inet6_dev
in6_dev_get() reads dev->ip6_ptr under RCU and then unconditionally
increments its refcount. Device teardown can clear the pointer and drop
the last reference between these operations. The increment then
resurrects an object whose RCU free has already been queued, so callers
can use it after it is freed.
Use refcount_inc_not_zero() and return NULL when the object has already
reached zero. RCU keeps the memory accessible through the attempted
reference acquisition, and a successful increment pins the object for
the caller.
An independent run on the exact unpatched 6f5156d7a31a (v7.2-rc3)
kernel reproduced the invalid reference acquisition as UID 1000:
refcount_t: addition on 0; use-after-free.
ip6_mc_source+0xef4/0x17e0
It was followed by the corresponding reference underflow in
ip6_mc_source(). The supplied trace from the same unpatched revision
additionally shows the access after the RCU read-side section ends:
BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0
Write of size 8 at addr ffff888015b50240 by task poc/1219
Bug found and triaged by OpenAI Security Research and
validated by Trail of Bits.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 Version: 8814c4b533817df825485ff32ce6ac406c3a54d1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74630",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:57.486583Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:03.622Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "785d908f8d21c8bc78b6fb2c2932ab662bf6918a",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "aedcfefdb5b7ed7f8a6196a3e68a25bdbe51d2f8",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "145812b678de9f3b59780173be3c0d22ed60dd93",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "cc5bd568f9b7683e60841b6fd02c10d64535bd6e",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "1c206d461c680c3151daa3c89fc26eaf5bf98a7f",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "680fbd7942185448eadb990a3d10a53eb946b702",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "14e812ab41df0cac033479da835ec9a5de633404",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
},
{
"lessThan": "0e243671bc7b8eaf00f83dd2f4367436dc0cff98",
"status": "affected",
"version": "8814c4b533817df825485ff32ce6ac406c3a54d1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.19"
},
{
"lessThan": "2.6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: prevent in6_dev_get() from resurrecting inet6_dev\n\nin6_dev_get() reads dev-\u003eip6_ptr under RCU and then unconditionally\nincrements its refcount. Device teardown can clear the pointer and drop\nthe last reference between these operations. The increment then\nresurrects an object whose RCU free has already been queued, so callers\ncan use it after it is freed.\n\nUse refcount_inc_not_zero() and return NULL when the object has already\nreached zero. RCU keeps the memory accessible through the attempted\nreference acquisition, and a successful increment pins the object for\nthe caller.\n\nAn independent run on the exact unpatched 6f5156d7a31a (v7.2-rc3)\nkernel reproduced the invalid reference acquisition as UID 1000:\n\n refcount_t: addition on 0; use-after-free.\n ip6_mc_source+0xef4/0x17e0\n\nIt was followed by the corresponding reference underflow in\nip6_mc_source(). The supplied trace from the same unpatched revision\nadditionally shows the access after the RCU read-side section ends:\n\n BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0\n Write of size 8 at addr ffff888015b50240 by task poc/1219\n\nBug found and triaged by OpenAI Security Research and\nvalidated by Trail of Bits."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The reliable path is local setsockopt(2) on IPv6 MCAST source-filter options (ipv6_setsockopt \u2192 do_ipv6_mcast_group_source \u2192 ip6_mc_source \u2192 in6_dev_get), reproduced as UID 1000; concurrent netdev unregister is also a local rtnetlink syscall, not remote packet delivery.\nAC:L - An attacker in their own user+network namespace controls both sides of the race\u2014hammering MCAST_JOIN/BLOCK/UNBLOCK_SOURCE setsockopt while deleting the bound veth via RTM_DELLINK\u2014so the ip6_ptr clear and final in6_dev_put window is attacker-driven and retryable.\nPR:L - Multicast setsockopt needs no capability, but hitting the unregister teardown that drops the last inet6_dev reference requires CAP_NET_ADMIN for RTM_DELLINK; that is ns_capable() in the netns user_ns and is obtainable by an unprivileged user via unshare -Urn, not init-namespace root.\nUI:N - Exploitation uses only the attacker\u0027s own IPv6 sockets, setsockopt calls, and netdev create/delete in their namespace; no victim mount, click, or other cooperation is required.\nS:U - The resurrected inet6_dev UAF corrupts kernel heap state within the host kernel authority (mutex_lock on freed mc_lock); it is standard local kernel memory corruption, not a VM escape, IOMMU bypass, or other cross-boundary impact.\nC:H - Resurrecting a zero-refcount inet6_dev whose RCU free is already queued is a slab use-after-free; KASAN reported UAF on freed inet6_dev memory, and such heap UAFs enable disclosure via controlled reuse of the freed object.\nI:H - After resurrection the caller locks idev-\u003emc_lock and mutates multicast state on freed memory (KASAN write in mutex_lock), giving attacker-influenced heap corruption that can be turned into arbitrary write or control-flow hijack.\nA:H - The PoC triggers refcount_t addition-on-0 warnings, refcount underflow, and KASAN slab-use-after-free in mutex_lock, demonstrating immediate kernel memory corruption that can oops/panic and be repeated by re-running the race."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:54.475Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/785d908f8d21c8bc78b6fb2c2932ab662bf6918a"
},
{
"url": "https://git.kernel.org/stable/c/aedcfefdb5b7ed7f8a6196a3e68a25bdbe51d2f8"
},
{
"url": "https://git.kernel.org/stable/c/145812b678de9f3b59780173be3c0d22ed60dd93"
},
{
"url": "https://git.kernel.org/stable/c/cc5bd568f9b7683e60841b6fd02c10d64535bd6e"
},
{
"url": "https://git.kernel.org/stable/c/1c206d461c680c3151daa3c89fc26eaf5bf98a7f"
},
{
"url": "https://git.kernel.org/stable/c/680fbd7942185448eadb990a3d10a53eb946b702"
},
{
"url": "https://git.kernel.org/stable/c/14e812ab41df0cac033479da835ec9a5de633404"
},
{
"url": "https://git.kernel.org/stable/c/0e243671bc7b8eaf00f83dd2f4367436dc0cff98"
}
],
"title": "ipv6: prevent in6_dev_get() from resurrecting inet6_dev",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74630",
"datePublished": "2026-08-22T15:32:11.596Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-10-16T19:06:03.622Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80585 (GCVE-0-2026-80585)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mptcp: fastopen: only mark MPTFO subflows with SYN data
Passive TCP Fast Open accepts a valid-cookie SYN even when it carries
no data. In that case the child socket's receive queue is intentionally
left empty.
mptcp_fastopen_subflow_synack_set_params() set is_mptfo before checking
for queued SYN data. That made data-less TFO SYNs hit a WARN and, if
the warning was non-fatal, left stale MPTFO state behind. The stale
flag could later trigger a state-confusion bug in
check_fully_established().
Only mark the subflow as MPTFO after confirming that an SKB was queued.
Return quietly when the receive queue is empty.
Note that mptcp_subflow_context's is_mptfo field is now not just about
subflows where the TFO was present, but about MPTFO subflow that
consumed SYN data. Only having a valid cookie but not carrying data is
not really "doing TFO".
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80585",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:56.710913Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:28.485Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mptcp/fastopen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f75f174edc865738522e514d042cf5627f084859",
"status": "affected",
"version": "36b122baf6a8bd46b4a591f12f4ed17b22257408",
"versionType": "git"
},
{
"lessThan": "fca7e444c04689fe4cc6b56f2725f804a4bb1ef9",
"status": "affected",
"version": "36b122baf6a8bd46b4a591f12f4ed17b22257408",
"versionType": "git"
},
{
"lessThan": "75e564b2ced1cc3d9a8904c7d2d2bb448fffb8b5",
"status": "affected",
"version": "36b122baf6a8bd46b4a591f12f4ed17b22257408",
"versionType": "git"
},
{
"lessThan": "72b4a0c51a4b550d40301d60a366b429b8c8e78d",
"status": "affected",
"version": "36b122baf6a8bd46b4a591f12f4ed17b22257408",
"versionType": "git"
},
{
"lessThan": "e00b63056fb4f261455b3e5df5268a1f8ce47a87",
"status": "affected",
"version": "36b122baf6a8bd46b4a591f12f4ed17b22257408",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mptcp/fastopen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.2"
},
{
"lessThan": "6.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: fastopen: only mark MPTFO subflows with SYN data\n\nPassive TCP Fast Open accepts a valid-cookie SYN even when it carries\nno data. In that case the child socket\u0027s receive queue is intentionally\nleft empty.\n\nmptcp_fastopen_subflow_synack_set_params() set is_mptfo before checking\nfor queued SYN data. That made data-less TFO SYNs hit a WARN and, if\nthe warning was non-fatal, left stale MPTFO state behind. The stale\nflag could later trigger a state-confusion bug in\ncheck_fully_established().\n\nOnly mark the subflow as MPTFO after confirming that an SKB was queued.\nReturn quietly when the receive queue is empty.\n\nNote that mptcp_subflow_context\u0027s is_mptfo field is now not just about\nsubflows where the TFO was present, but about MPTFO subflow that\nconsumed SYN data. Only having a valid cookie but not carrying data is\nnot really \"doing TFO\"."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.4,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached by sending crafted TCP/MPTCP segments to a listening socket over the network (ip4/ip6 receive -\u003e tcp_conn_request/tcp_rcv_state_process -\u003e subflow_prep_synack or mptcp_incoming_options -\u003e check_fully_established); per kernel CNA guidance, net stack packet-handling paths are Network.\nAC:L - In the intended passive-MPTFO deployment (MPTCP listener with net.ipv4.tcp_fastopen server bit set), the attacker controls obtaining a valid TFO cookie and then sending a data-less SYN followed by an out-of-order MPC_ACK to deterministically hit the stale is_mptfo path in check_fully_established().\nPR:N - Exploitation requires only unauthenticated inbound TCP connections to an MPTCP listener; the attacker obtains the TFO cookie from their own prior connection and needs no local account, capability, or namespace privileges on the target host.\nUI:N - No victim interaction is required beyond the server normally accepting TCP connections; the attacker programmatically sends the SYN and follow-up MPC_ACK packets without anyone opening files, clicking links, or performing other actions.\nS:U - Impact is confined to kernel MPTCP/TCP connection state on the target host and does not cross VM, container, IOMMU, or other security boundaries; it is not a sandbox or guest-to-host escape.\nC:L - Premature fully_established with attacker-chosen MPTCP keys desynchronizes handshake and DSS/map state, enabling misdelivery or premature exposure of connection-level data/metadata to the remote peer before normal MP_CAPABLE validation completes.\nI:H - Stale is_mptfo lets an out-of-order MPC_ACK force __mptcp_subflow_fully_established(), writing attacker-controlled sndr_key/ack_seq into msk and subflow crypto state and corrupting subsequent DSS/ACK handling on the server multipath socket.\nA:H - Data-less passive-TFO SYNs hit WARN_ON_ONCE(!skb) on every trigger, and the resulting inconsistent is_mptfo/fully_established state can cause repeatable kernel WARN/oops (panic_on_warn panic) plus connection reset storms against internet-facing MPTCP servers."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:02:06.112Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f75f174edc865738522e514d042cf5627f084859"
},
{
"url": "https://git.kernel.org/stable/c/fca7e444c04689fe4cc6b56f2725f804a4bb1ef9"
},
{
"url": "https://git.kernel.org/stable/c/75e564b2ced1cc3d9a8904c7d2d2bb448fffb8b5"
},
{
"url": "https://git.kernel.org/stable/c/72b4a0c51a4b550d40301d60a366b429b8c8e78d"
},
{
"url": "https://git.kernel.org/stable/c/e00b63056fb4f261455b3e5df5268a1f8ce47a87"
}
],
"title": "mptcp: fastopen: only mark MPTFO subflows with SYN data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80585",
"datePublished": "2026-08-26T14:37:40.901Z",
"dateReserved": "2026-08-26T14:34:25.769Z",
"dateUpdated": "2026-10-16T19:26:28.485Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89710 (GCVE-0-2026-89710)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path
When the server returns a new layout stateid while a valid one is still
held, pnfs_layout_process() calls pnfs_mark_matching_lsegs_return() on
the on-stack free_me list and jumps to out_forget. Segments whose
reference count drops to zero are unlinked from lo->plh_segs and moved
to free_me by mark_lseg_invalid(); for an idle cached segment the layout
header holds the only reference, so this happens on the first decrement.
out_forget never drains free_me -- only the success path calls
pnfs_free_lseg_list().
Commit 814b84971388 ("pNFS/NFSv4: Fix a layout segment leak in
pnfs_layout_process()") added the drain; commit 08bd8dbe8882
("pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()")
removed it while switching the destination to lo->plh_return_segs, which
is drained elsewhere. Commit fb700ef02676 ("NFSv4.1: Simplify layout
return in pnfs_layout_process()") switched the destination back to
free_me without restoring the drain.
Restore the pnfs_free_lseg_list() call.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f Version: fb700ef026766c95578aafc0db1b208946e7ad4f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfs/pnfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f52188118d319b47d49ee91a897f6afda4879c59",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "ad3e41855325e55623276660ef20fbc3b8ba087f",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "a080bb69d30f11738d753a60d1eb733d627c2093",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "7c5b0e813efd9124760d5fd1bfc6b229f03fb1a2",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "36e3f13bf0728f4ce11ee8904cec82a783222f62",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "32ac1b0b7f1cfa0d1a1faf9c72f4154046101070",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
},
{
"lessThan": "ee5a386cfe60f3f8286de16a9db8e1a08f0bc124",
"status": "affected",
"version": "fb700ef026766c95578aafc0db1b208946e7ad4f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfs/pnfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path\n\nWhen the server returns a new layout stateid while a valid one is still\nheld, pnfs_layout_process() calls pnfs_mark_matching_lsegs_return() on\nthe on-stack free_me list and jumps to out_forget. Segments whose\nreference count drops to zero are unlinked from lo-\u003eplh_segs and moved\nto free_me by mark_lseg_invalid(); for an idle cached segment the layout\nheader holds the only reference, so this happens on the first decrement.\n\nout_forget never drains free_me -- only the success path calls\npnfs_free_lseg_list().\n\nCommit 814b84971388 (\"pNFS/NFSv4: Fix a layout segment leak in\npnfs_layout_process()\") added the drain; commit 08bd8dbe8882\n(\"pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()\")\nremoved it while switching the destination to lo-\u003eplh_return_segs, which\nis drained elsewhere. Commit fb700ef02676 (\"NFSv4.1: Simplify layout\nreturn in pnfs_layout_process()\") switched the destination back to\nfree_me without restoring the drain.\n\nRestore the pnfs_free_lseg_list() call."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:23.214Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f52188118d319b47d49ee91a897f6afda4879c59"
},
{
"url": "https://git.kernel.org/stable/c/ad3e41855325e55623276660ef20fbc3b8ba087f"
},
{
"url": "https://git.kernel.org/stable/c/a080bb69d30f11738d753a60d1eb733d627c2093"
},
{
"url": "https://git.kernel.org/stable/c/7c5b0e813efd9124760d5fd1bfc6b229f03fb1a2"
},
{
"url": "https://git.kernel.org/stable/c/36e3f13bf0728f4ce11ee8904cec82a783222f62"
},
{
"url": "https://git.kernel.org/stable/c/32ac1b0b7f1cfa0d1a1faf9c72f4154046101070"
},
{
"url": "https://git.kernel.org/stable/c/ee5a386cfe60f3f8286de16a9db8e1a08f0bc124"
}
],
"title": "NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89710",
"datePublished": "2026-09-11T19:46:25.534Z",
"dateReserved": "2026-09-11T19:38:34.751Z",
"dateUpdated": "2026-10-19T08:51:23.214Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80580 (GCVE-0-2026-80580)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fbdev: bound mode sysfs output to the sysfs buffer
mode_string() uses snprintf() which can return a value larger than the
remaining buffer space. show_modes() accumulates the return value into i
without checking whether i has reached PAGE_SIZE, causing the offset to
advance past the sysfs buffer if the modelist is long enough.
Add a size parameter to mode_string() and use scnprintf() to return
only the bytes actually written. Add an early return when offset
already exceeds the buffer. In show_modes(), stop accumulating once
the buffer is full.
References
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80580",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:49.806822Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:28.187Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbsysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "873a1aa15c313263f2e18b38cf525623cc4fabf6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d15d51fb26e830af58f3f21964f1c09c239077ea",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbsysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: bound mode sysfs output to the sysfs buffer\n\nmode_string() uses snprintf() which can return a value larger than the\nremaining buffer space. show_modes() accumulates the return value into i\nwithout checking whether i has reached PAGE_SIZE, causing the offset to\nadvance past the sysfs buffer if the modelist is long enough.\n\nAdd a size parameter to mode_string() and use scnprintf() to return\nonly the bytes actually written. Add an early return when offset\nalready exceeds the buffer. In show_modes(), stop accumulating once\nthe buffer is full."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only by a local read(2) on /sys/class/graphics/fbN/modes, which flows through sysfs/kernfs into show_modes(); there is no network, adjacent-network, or physical-device packet path to this framebuffer sysfs handler.\nAC:L - Once the framebuffer modelist is long enough to fill PAGE_SIZE, snprintf\u0027s oversized return value deterministically pushes the offset past the buffer and subsequent writes use a wrapped huge size; an attacker can also grow the list via repeated FBIOPUT_VSCREENINFO or a privileged store_modes write.\nPR:L - The modes sysfs attribute is DEVICE_ATTR_RW with mode 0644, so any unprivileged local user can open and read it without capabilities; only populating an unusually long modelist may require root or membership in the video group for /dev/fb0 ioctl access.\nUI:N - Exploitation requires only the attacker reading the modes sysfs file themselves; no separate victim action such as mounting a filesystem or opening a file is needed.\nS:U - The overflow corrupts kernel heap memory within the same OS security boundary and can enable local privilege escalation, but it does not cross VM, IOMMU, or sandbox isolation boundaries.\nC:H - Writing past the PAGE_SIZE sysfs seq_file buffer is an out-of-bounds kernel heap write; once the offset exceeds PAGE_SIZE the remaining-length underflow gives snprintf an enormous size, corrupting adjacent kmalloc objects and enabling information disclosure.\nI:H - The unchecked offset advance causes repeated out-of-bounds writes into kernel heap memory beyond the sysfs buffer, a memory-corruption primitive that can be leveraged for arbitrary kernel writes or control-flow hijacking.\nA:H - Corrupting heap objects adjacent to the sysfs read buffer can trigger immediate kernel oops/panic or later crashes when those objects are used, satisfying High availability impact for kernel memory corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:02:01.683Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/873a1aa15c313263f2e18b38cf525623cc4fabf6"
},
{
"url": "https://git.kernel.org/stable/c/d15d51fb26e830af58f3f21964f1c09c239077ea"
}
],
"title": "fbdev: bound mode sysfs output to the sysfs buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80580",
"datePublished": "2026-08-26T14:37:37.917Z",
"dateReserved": "2026-08-26T14:34:25.769Z",
"dateUpdated": "2026-10-16T19:26:28.187Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72447 (GCVE-0-2026-72447)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: hold socket lock when dumping endpoints in sctp_diag
SCTP_DIAG endpoint dumping was traversing endpoint address lists without
holding lock_sock(), while those lists could change concurrently via
socket operations (e.g., bindx changes). This creates a race where
nla_reserve() counts addresses under RCU protection, but the subsequent
copy may see fewer entries, potentially leaking uninitialized memory to
userspace.
Fix this by:
- Taking a reference on each endpoint during hash traversal
- Moving socket operations (lock_sock()) outside read_lock_bh()
- Serializing address list access during dump
- Reworking sctp_for_each_endpoint() to support restart-based traversal
with (net, pos) tracking
Also:
- Add WARN_ON_ONCE() for inconsistent address counts
- Fix idiag_states filtering for LISTEN vs association cases
- Skip dumping endpoints being freed (ep->base.dead)
- Move dump position tracking into iterator, removing cb->args[4] and
its comment for sctp_ep_dump().,
- Update the comment for cb->args[4] and remove the comment for unused
cb->args[5] for sctp_sock_dump().
Note: traversal is restart-based and may re-scan buckets multiple times,
but this is acceptable due to small bucket sizes and required to support
sleeping-safe callbacks.
This issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero
Day Initiative.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/sctp/sctp.h",
"net/sctp/diag.c",
"net/sctp/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f98c294a9369b6fe89e652c06357ee594be4dfa2",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "8b38e3dcfde3077dbc03eb8ef88e03cc19f70b8a",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "ec3c2d59a192e17e1014ba71afc368ba162ecac3",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "722576aba0a6d9423714550b1c03239b0f0def77",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "abe7f8828e6ac8be858870c2bf836258844f97d5",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "207bb4ce8fe7de961ae7bb33569ad2cd61f44954",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "f09a245f33e567b604efa1960b7a2d25dd9c8713",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "7d8297e26b4e20b5d1c3c3fe51fe81a1c7fbc823",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/sctp/sctp.h",
"net/sctp/diag.c",
"net/sctp/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: hold socket lock when dumping endpoints in sctp_diag\n\nSCTP_DIAG endpoint dumping was traversing endpoint address lists without\nholding lock_sock(), while those lists could change concurrently via\nsocket operations (e.g., bindx changes). This creates a race where\nnla_reserve() counts addresses under RCU protection, but the subsequent\ncopy may see fewer entries, potentially leaking uninitialized memory to\nuserspace.\n\nFix this by:\n\n- Taking a reference on each endpoint during hash traversal\n- Moving socket operations (lock_sock()) outside read_lock_bh()\n- Serializing address list access during dump\n- Reworking sctp_for_each_endpoint() to support restart-based traversal\n with (net, pos) tracking\n\nAlso:\n\n- Add WARN_ON_ONCE() for inconsistent address counts\n- Fix idiag_states filtering for LISTEN vs association cases\n- Skip dumping endpoints being freed (ep-\u003ebase.dead)\n- Move dump position tracking into iterator, removing cb-\u003eargs[4] and\n its comment for sctp_ep_dump().,\n- Update the comment for cb-\u003eargs[4] and remove the comment for unused\n cb-\u003eargs[5] for sctp_sock_dump().\n\nNote: traversal is restart-based and may re-scan buckets multiple times,\nbut this is acceptable due to small bucket sizes and required to support\nsleeping-safe callbacks.\n\nThis issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero\nDay Initiative."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:14:49.557Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f98c294a9369b6fe89e652c06357ee594be4dfa2"
},
{
"url": "https://git.kernel.org/stable/c/8b38e3dcfde3077dbc03eb8ef88e03cc19f70b8a"
},
{
"url": "https://git.kernel.org/stable/c/ec3c2d59a192e17e1014ba71afc368ba162ecac3"
},
{
"url": "https://git.kernel.org/stable/c/722576aba0a6d9423714550b1c03239b0f0def77"
},
{
"url": "https://git.kernel.org/stable/c/abe7f8828e6ac8be858870c2bf836258844f97d5"
},
{
"url": "https://git.kernel.org/stable/c/207bb4ce8fe7de961ae7bb33569ad2cd61f44954"
},
{
"url": "https://git.kernel.org/stable/c/f09a245f33e567b604efa1960b7a2d25dd9c8713"
},
{
"url": "https://git.kernel.org/stable/c/7d8297e26b4e20b5d1c3c3fe51fe81a1c7fbc823"
}
],
"title": "sctp: hold socket lock when dumping endpoints in sctp_diag",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72447",
"datePublished": "2026-08-15T05:56:57.089Z",
"dateReserved": "2026-08-09T03:40:39.931Z",
"dateUpdated": "2026-08-17T05:14:49.557Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80715 (GCVE-0-2026-80715)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
igc: remove napi_synchronize() in igc_down()
When an AF_XDP zero-copy application is killed abruptly, the XSK pool is
torn down but NAPI keeps polling. igc_clean_rx_irq_zc() then returns the
full budget on every poll, so napi_complete_done() never clears
NAPI_STATE_SCHED.
igc_down() calls napi_synchronize() before napi_disable(), so it spins
forever waiting for that bit and the interface never goes down. Drop the
napi_synchronize() and let napi_disable() do the job -- it sets
NAPI_STATE_DISABLE, which forces the stuck poll to complete. Reorder it
ahead of igc_set_queue_napi() so the NAPI mapping is cleared only after
polling has stopped, matching the recent igb fix b1e067240379.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/igc/igc_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ad6e0df267dc96edb7de1fa0a2fb2a70645bff86",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "605585a8d89aaeb0122e9016fdaa92376897a705",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "a0f16c337691813f8d8f014c01fff5a368e08898",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "f929a6fe5b7ae1e72d2c6d18cd69ab90dcf689d2",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "3b5aee6fcbf6b58112d40d19c8d31fa3f78ee668",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "9a2b637aef4e515c2179774888441d00e8a5ae95",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "5ffab5b9589c50e4cfc0cf36ffd76c89422d4019",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/igc/igc_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nigc: remove napi_synchronize() in igc_down()\n\nWhen an AF_XDP zero-copy application is killed abruptly, the XSK pool is\ntorn down but NAPI keeps polling. igc_clean_rx_irq_zc() then returns the\nfull budget on every poll, so napi_complete_done() never clears\nNAPI_STATE_SCHED.\n\nigc_down() calls napi_synchronize() before napi_disable(), so it spins\nforever waiting for that bit and the interface never goes down. Drop the\nnapi_synchronize() and let napi_disable() do the job -- it sets\nNAPI_STATE_DISABLE, which forces the stuck poll to complete. Reorder it\nahead of igc_set_queue_napi() so the NAPI mapping is cleared only after\npolling has stopped, matching the recent igb fix b1e067240379."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:13.683Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ad6e0df267dc96edb7de1fa0a2fb2a70645bff86"
},
{
"url": "https://git.kernel.org/stable/c/605585a8d89aaeb0122e9016fdaa92376897a705"
},
{
"url": "https://git.kernel.org/stable/c/a0f16c337691813f8d8f014c01fff5a368e08898"
},
{
"url": "https://git.kernel.org/stable/c/f929a6fe5b7ae1e72d2c6d18cd69ab90dcf689d2"
},
{
"url": "https://git.kernel.org/stable/c/3b5aee6fcbf6b58112d40d19c8d31fa3f78ee668"
},
{
"url": "https://git.kernel.org/stable/c/9a2b637aef4e515c2179774888441d00e8a5ae95"
},
{
"url": "https://git.kernel.org/stable/c/5ffab5b9589c50e4cfc0cf36ffd76c89422d4019"
}
],
"title": "igc: remove napi_synchronize() in igc_down()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80715",
"datePublished": "2026-08-28T06:53:13.683Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-28T06:53:13.683Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74634 (GCVE-0-2026-74634)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-25 05:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Prevent subbuf order change when resizing is disabled
Because ring_buffer_subbuf_order_set() frees buffer pages, we can't
allow it when resizing is disabled. A non-consuming reader is at risk of
use-after-free (rb_advance_iter()).
Return -EBUSY on resize_disabled, matching ring_buffer_resize()
behaviour.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b45b91db41379ee5fb36c187d6d7c37b725cbe8e",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "62978cf6347972c04130e4e841ba404504d92b32",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "7568e9e717e7540bd05bcc007f5d76fcaff3cdff",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "bf98d7b0d5a99991e47e66cee4eb1d3fa514be97",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Prevent subbuf order change when resizing is disabled\n\nBecause ring_buffer_subbuf_order_set() frees buffer pages, we can\u0027t\nallow it when resizing is disabled. A non-consuming reader is at risk of\nuse-after-free (rb_advance_iter()).\n\nReturn -EBUSY on resize_disabled, matching ring_buffer_resize()\nbehaviour."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local tracefs operations: write() to buffer_subbuf_size_kb (buffer_subbuf_size_write) while a non-consuming ring_buffer_read_start() iterator is active from reading trace/per_cpu/cpuN/trace. No network, adjacent-radio, or physical-device path reaches ring_buffer_subbuf_order_set().\nAC:L - The attacker controls both sides: one thread holds trace open for read (sets resize_disabled via ring_buffer_read_start) while another writes buffer_subbuf_size_kb to free pages still referenced by iter-\u003ehead_page. rb_advance_iter()/rb_inc_iter then dereferences freed memory; the race is reliably retried.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC with no capability check. tracefs buffer_subbuf_size_kb and trace are mode 0640 and are routinely delegated via gid=/mode= to tracing-group members on Android/Perfetto, ChromeOS, and developer systems, matching prior CNA tracefs UAF scores (CVE-2024-50207, CVE-2025-38101).\nUI:N - Exploitation uses the attacker\u0027s own tracefs file descriptors and threads (open trace for read, write buffer_subbuf_size_kb). No separate victim mount, click, or configuration action is required beyond the attacker holding tracefs access.\nS:U - The use-after-free corrupts kernel ring-buffer heap pages and metadata within the same OS security authority. It enables local privilege escalation but does not cross VM, IOMMU, container, or hardware trust boundaries.\nC:H - ring_buffer_subbuf_order_set() frees buffer_page data pages while iterators retain head_page pointers; rb_iter_head_event() memcpy() and rb_inc_iter() read iter-\u003ehead_page-\u003epage after free_pages(), leaking recycled kernel heap contents to userspace through trace reads.\nI:H - Freed sub-buffer pages and buffer_page structures can be reused while iterators and splice paths still perform stores and list operations on them. This UAF heap corruption is exploitable for arbitrary kernel writes and control-flow hijack, not merely a crash.\nA:H - Concurrent page frees with active iterators corrupt ring-buffer lists and cause use-after-free dereferences in rb_advance_iter(), producing kernel oopses/panics. syzbot reported this failure mode and the attacker can retrigger it at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:58.185Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b45b91db41379ee5fb36c187d6d7c37b725cbe8e"
},
{
"url": "https://git.kernel.org/stable/c/62978cf6347972c04130e4e841ba404504d92b32"
},
{
"url": "https://git.kernel.org/stable/c/7568e9e717e7540bd05bcc007f5d76fcaff3cdff"
},
{
"url": "https://git.kernel.org/stable/c/bf98d7b0d5a99991e47e66cee4eb1d3fa514be97"
}
],
"title": "ring-buffer: Prevent subbuf order change when resizing is disabled",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74634",
"datePublished": "2026-08-22T15:32:14.547Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-08-25T05:40:58.185Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80785 (GCVE-0-2026-80785)
Vulnerability from cvelistv5
Published
2026-09-04 15:12
Modified
2026-09-07 14:21
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fbdev: serialize mode sysfs access with lock_fb_info()
show_mode(), show_modes(), and store_mode() access fb_info->modelist
and fb_info->mode without holding lock_fb_info(). store_modes() takes
lock_fb_info() while replacing the modelist and freeing the old one.
A concurrent reader or writer can load a pointer to an old modelist
entry before store_modes() frees it, then dereference freed memory or
store a stale freed pointer in fb_info->mode.
Take lock_fb_info() in show_mode(), show_modes(), and store_mode() to
serialize with store_modes(). In show_mode(), copy the mode to the
stack and format after dropping the lock. In store_mode(), split
activate() into a _locked variant to avoid double-locking, and hold
the locks for the modelist walk, mode conversion, activation, and
fb_info->mode assignment together.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbsysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "26135631ed8e487bc6aef70cc41934e258d09bbe",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "061db6b7a910b8378f3b2df64f8c0a3ddc6e85f2",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbsysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: serialize mode sysfs access with lock_fb_info()\n\nshow_mode(), show_modes(), and store_mode() access fb_info-\u003emodelist\nand fb_info-\u003emode without holding lock_fb_info(). store_modes() takes\nlock_fb_info() while replacing the modelist and freeing the old one.\n\nA concurrent reader or writer can load a pointer to an old modelist\nentry before store_modes() frees it, then dereference freed memory or\nstore a stale freed pointer in fb_info-\u003emode.\n\nTake lock_fb_info() in show_mode(), show_modes(), and store_mode() to\nserialize with store_modes(). In show_mode(), copy the mode to the\nstack and format after dropping the lock. In store_mode(), split\nactivate() into a _locked variant to avoid double-locking, and hold\nthe locks for the modelist walk, mode conversion, activation, and\nfb_info-\u003emode assignment together."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-07T14:21:08.600Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/26135631ed8e487bc6aef70cc41934e258d09bbe"
},
{
"url": "https://git.kernel.org/stable/c/061db6b7a910b8378f3b2df64f8c0a3ddc6e85f2"
}
],
"title": "fbdev: serialize mode sysfs access with lock_fb_info()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80785",
"datePublished": "2026-09-04T15:12:57.076Z",
"dateReserved": "2026-08-26T14:34:25.793Z",
"dateUpdated": "2026-09-07T14:21:08.600Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72045 (GCVE-0-2026-72045)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
octeontx2-af: cn10k: restrict VF LMTLINE sharing to its own PF
rvu_mbox_handler_lmtst_tbl_setup() uses req->base_pcifunc as a direct
index into the LMT map table to read another function's LMTLINE
physical base address and copy it into the caller's own LMT map table
entry. The mailbox dispatcher authenticates req->hdr.pcifunc from the
IRQ source, but req->base_pcifunc is a separate payload field and is
not sanitized.
Reject the request with -EPERM when a VF caller's base_pcifunc is not a
valid function under its own PF. is_pf_func_valid() bounds the FUNC field
to the PF's configured VF count, keeping the computed index inside the
caller's own slot block.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 Version: 893ae97214c385be02f8ec097298cc48c7f0d905 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72045",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:38.118771Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:24.462Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04c014e49b9f53d58a8f94adece8a0af3ae1b85c",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "6967dd944be2a71eddab3a2ae1a1a4dd9e5f8eed",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "e9c5b03208507dd6d58b0c23a2c60b5c2f4c1b11",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "54535692bec9ef464adc714108eb19e49e38b5a2",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "c73b8795b45f4ad5a95120d2e9b435ea4616e08e",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "59da37fee81a8d76079313348ca13c5bc90dd6ae",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
},
{
"lessThan": "8cdcf3d2caacdee7ddd363705fb4d93b0c1a0915",
"status": "affected",
"version": "893ae97214c385be02f8ec097298cc48c7f0d905",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-af: cn10k: restrict VF LMTLINE sharing to its own PF\n\nrvu_mbox_handler_lmtst_tbl_setup() uses req-\u003ebase_pcifunc as a direct\nindex into the LMT map table to read another function\u0027s LMTLINE\nphysical base address and copy it into the caller\u0027s own LMT map table\nentry. The mailbox dispatcher authenticates req-\u003ehdr.pcifunc from the\nIRQ source, but req-\u003ebase_pcifunc is a separate payload field and is\nnot sanitized.\n\nReject the request with -EPERM when a VF caller\u0027s base_pcifunc is not a\nvalid function under its own PF. is_pf_func_valid() bounds the FUNC field\nto the PF\u0027s configured VF count, keeping the computed index inside the\ncaller\u0027s own slot block."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local control of an assigned Marvell CN10K/OCTEONTX2 SR-IOV VF and sending a crafted LMTST_TBL_SETUP mailbox message over the PCI VF\u2192AF control path (rvu_afvf_mbox_handler\u2192rvu_mbox_handler_lmtst_tbl_setup); it is not reachable via remote packet delivery.\nAC:L - Once a VF is assigned, the attacker fully controls the unsanitized base_pcifunc payload field and can trigger the flaw deterministically with a single mailbox message; no race, special memory layout, or victim timing is required.\nPR:L - Only control of an assigned VF is needed (typical cloud/tenant VM or container with SR-IOV passthrough, or guest root/CAP_NET_ADMIN managing the VF); host init-namespace root is not required and unprivileged host users cannot reach this hardware mailbox without the VF device.\nUI:N - No victim user action is required; the attacker directly sends the malicious LMTST_TBL_SETUP mailbox request from their VF to the AF handler.\nS:C - A malicious VF tenant can retarget hardware LMTLINE stores to another PF/VF\u0027s memory region, crossing the SR-IOV tenant isolation boundary and enabling guest-to-host or guest-to-guest impact on shared CN10K NIC deployments.\nC:H - Redirecting a VF\u0027s LMT map entry to another function\u0027s LMTLINE region lets the attacker read victim in-flight packet/crypto submission metadata and buffer pointers from shared hardware LMT memory, constituting cross-tenant information disclosure beyond the attacker\u0027s scope.\nI:H - After the map-table redirect, the attacker\u0027s LMTST flush operations (packet TX SQE submission, NPA aura free, CPT enqueue) are hardware-written into the victim\u0027s LMTLINE physical pages, enabling arbitrary cross-tenant memory corruption and potential control of victim I/O submission state.\nA:H - Corrupting another PF/VF\u0027s LMTLINE submission buffers can crash or hang the victim\u0027s networking/crypto stack (guest kernel oops/panic or persistent TX failure) and the attack can be repeated on demand by resending mailbox requests."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:33.156Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04c014e49b9f53d58a8f94adece8a0af3ae1b85c"
},
{
"url": "https://git.kernel.org/stable/c/6967dd944be2a71eddab3a2ae1a1a4dd9e5f8eed"
},
{
"url": "https://git.kernel.org/stable/c/e9c5b03208507dd6d58b0c23a2c60b5c2f4c1b11"
},
{
"url": "https://git.kernel.org/stable/c/54535692bec9ef464adc714108eb19e49e38b5a2"
},
{
"url": "https://git.kernel.org/stable/c/c73b8795b45f4ad5a95120d2e9b435ea4616e08e"
},
{
"url": "https://git.kernel.org/stable/c/59da37fee81a8d76079313348ca13c5bc90dd6ae"
},
{
"url": "https://git.kernel.org/stable/c/8cdcf3d2caacdee7ddd363705fb4d93b0c1a0915"
}
],
"title": "octeontx2-af: cn10k: restrict VF LMTLINE sharing to its own PF",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72045",
"datePublished": "2026-08-15T05:52:04.038Z",
"dateReserved": "2026-08-09T03:40:39.902Z",
"dateUpdated": "2026-10-19T21:19:24.462Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80731 (GCVE-0-2026-80731)
Vulnerability from cvelistv5
Published
2026-09-03 08:21
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header
dev_validate_header() reads dev->hard_header_len directly when
zero-padding short link layer headers for CAP_SYS_RAWIO holders:
if (capable(CAP_SYS_RAWIO)) {
memset(ll_header + len, 0, dev->hard_header_len - len);
return true;
}
Packet send paths call dev_validate_header() on skbs whose headroom was
allocated from an earlier hard_header_len read. If the device is
reconfigured so that dev->hard_header_len increases before validation,
the memset writes past the reserved buffer, an out-of-bounds write.
This out-of-bounds write is masked in some SOCK_RAW paths today because
the same concurrent increase can first make skb_push() exceed the
reserved headroom and trigger skb_under_panic(). Remove the zero-padding
branch before making those hard_header_len reads consistent, so the
snapshot fixes do not turn a loud panic into a silent overwrite.
This path is only reached for variable length L2 protocols, where
len < hard_header_len but len >= min_header_len. No remaining in-tree
variable length L2 protocol implements header_ops->validate, and the
CAP_SYS_RAWIO bypass that zero-pads and accepts short headers has no
real value beyond allowing testing of intentionally malformed input.
Drop the CAP_SYS_RAWIO branch. The remaining reads of
dev->hard_header_len in dev_validate_header() are comparisons only and
have no memory safety impact.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b5518429e70cd783b8ca52335456172c1a0589f6 Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: 2793a23aacbd754dbbb5cb75093deb7e4103bace Version: f58a6c08ebdfa978178bbca78c2ba744a2665912 Version: 1df16498dfd0d5a129bdf2982d9a08df73e8923d Version: 8b8d278aa4de9335682bbd4a3bb619af015c859e Version: 6804052fa9d86e9a512c88b24a5debbfc1a490fc Version: 3.2.80 ≤ Version: 3.16.36 ≤ Version: 4.1.28 ≤ Version: 4.4.8 ≤ Version: 4.5.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80731",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:14.341917Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:36.020Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/netdevice.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "53fd7f912c0877647d6a1e1877f5ea8535ee0b4a",
"status": "affected",
"version": "b5518429e70cd783b8ca52335456172c1a0589f6",
"versionType": "git"
},
{
"lessThan": "fa6d98dd925e72fc028b26a0cbbff9d2f0601ff6",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "8fc9816404166a90ed8d544dc52482fafffb6d9f",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "b0f92a5731dc82556a9ae005cc35f71ab136307b",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "99df6b7a713f96eda206680d100b76e15f9d9b69",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "74e035f07f53feca09e2352e77fccb09cad5e208",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "dbb30dc943a93e083f1e531bfdc6779e57de40d0",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "fc902f52a02298c7432b2334c0c82a2885a1a8b6",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"lessThan": "3b9a324e646d3657a8d9806dfbfe4f3e4066e882",
"status": "affected",
"version": "2793a23aacbd754dbbb5cb75093deb7e4103bace",
"versionType": "git"
},
{
"status": "affected",
"version": "f58a6c08ebdfa978178bbca78c2ba744a2665912",
"versionType": "git"
},
{
"status": "affected",
"version": "1df16498dfd0d5a129bdf2982d9a08df73e8923d",
"versionType": "git"
},
{
"status": "affected",
"version": "8b8d278aa4de9335682bbd4a3bb619af015c859e",
"versionType": "git"
},
{
"status": "affected",
"version": "6804052fa9d86e9a512c88b24a5debbfc1a490fc",
"versionType": "git"
},
{
"lessThan": "3.2.81",
"status": "affected",
"version": "3.2.80",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.36",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.28",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.8",
"versionType": "semver"
},
{
"lessThan": "4.6",
"status": "affected",
"version": "4.5.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/netdevice.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "3.2.*",
"status": "unaffected",
"version": "3.2.81",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.2.81",
"versionStartIncluding": "3.2.80",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: remove CAP_SYS_RAWIO zero-padding in dev_validate_header\n\ndev_validate_header() reads dev-\u003ehard_header_len directly when\nzero-padding short link layer headers for CAP_SYS_RAWIO holders:\n\n if (capable(CAP_SYS_RAWIO)) {\n memset(ll_header + len, 0, dev-\u003ehard_header_len - len);\n return true;\n }\n\nPacket send paths call dev_validate_header() on skbs whose headroom was\nallocated from an earlier hard_header_len read. If the device is\nreconfigured so that dev-\u003ehard_header_len increases before validation,\nthe memset writes past the reserved buffer, an out-of-bounds write.\n\nThis out-of-bounds write is masked in some SOCK_RAW paths today because\nthe same concurrent increase can first make skb_push() exceed the\nreserved headroom and trigger skb_under_panic(). Remove the zero-padding\nbranch before making those hard_header_len reads consistent, so the\nsnapshot fixes do not turn a loud panic into a silent overwrite.\n\nThis path is only reached for variable length L2 protocols, where\nlen \u003c hard_header_len but len \u003e= min_header_len. No remaining in-tree\nvariable length L2 protocol implements header_ops-\u003evalidate, and the\nCAP_SYS_RAWIO bypass that zero-pads and accepts short headers has no\nreal value beyond allowing testing of intentionally malformed input.\n\nDrop the CAP_SYS_RAWIO branch. The remaining reads of\ndev-\u003ehard_header_len in dev_validate_header() are comparisons only and\nhave no memory safety impact."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local sendmsg() on a PF_PACKET SOCK_RAW socket; dev_validate_header() is only reached from af_packet transmit paths (packet_snd, packet_sendmsg_spkt, tpacket_fill_skb), not from remote packet receive.\nAC:L - The attacker can reliably win the TOCTOU race by concurrently sending PF_PACKET frames while changing netdev hard_header_len (e.g., PPP channel attach or bonding slave updates via rtnetlink), controlling both allocation and validation sides.\nPR:L - PF_PACKET creation requires CAP_NET_RAW and the memset bypass requires CAP_SYS_RAWIO; both are granted to user-namespace root (CAP_FULL_SET via unshare -Urn), so a basic unprivileged local user can obtain the needed privileges without init-namespace root.\nUI:N - No victim interaction is required; exploitation is fully attacker-driven through socket creation, concurrent device reconfiguration, and crafted sendmsg() calls.\nS:U - Impact is kernel heap memory corruption and local privilege escalation within the same kernel security domain, not a VM escape, IOMMU bypass, or other cross-authority boundary violation.\nC:H - The bug is an out-of-bounds write via memset() past skb link-layer headroom when hard_header_len grows between allocation and validation; such heap corruption can be groomed into arbitrary kernel memory read primitives.\nI:H - Writing past the reserved skb headroom corrupts adjacent kernel heap objects and is a standard exploitable primitive for arbitrary kernel writes, control-flow hijacking, and privilege escalation.\nA:H - The out-of-bounds memset can corrupt critical kernel structures and trigger oops/panic; the commit notes this can silently overwrite memory where other SOCK_RAW paths would have panicked via skb_under_panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T04:58:17.510Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/53fd7f912c0877647d6a1e1877f5ea8535ee0b4a"
},
{
"url": "https://git.kernel.org/stable/c/fa6d98dd925e72fc028b26a0cbbff9d2f0601ff6"
},
{
"url": "https://git.kernel.org/stable/c/8fc9816404166a90ed8d544dc52482fafffb6d9f"
},
{
"url": "https://git.kernel.org/stable/c/b0f92a5731dc82556a9ae005cc35f71ab136307b"
},
{
"url": "https://git.kernel.org/stable/c/99df6b7a713f96eda206680d100b76e15f9d9b69"
},
{
"url": "https://git.kernel.org/stable/c/74e035f07f53feca09e2352e77fccb09cad5e208"
},
{
"url": "https://git.kernel.org/stable/c/dbb30dc943a93e083f1e531bfdc6779e57de40d0"
},
{
"url": "https://git.kernel.org/stable/c/fc902f52a02298c7432b2334c0c82a2885a1a8b6"
},
{
"url": "https://git.kernel.org/stable/c/3b9a324e646d3657a8d9806dfbfe4f3e4066e882"
}
],
"title": "net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80731",
"datePublished": "2026-09-03T08:21:48.924Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-10-16T19:26:36.020Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93109 (GCVE-0-2026-93109)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/mlx5: Drain RCU callbacks during module teardown
devx_free_subscription() can remain queued after the last DevX event file
drops its module reference or an auxiliary driver detaches its devices.
mlx5_ib can then unload before the callback runs.
Registration error unwind has the same risk because driver registration
can attach existing devices before failing. Wait after all drivers have
stopped.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca Version: 6898d1c661d79f4707d8ba82991b2195822780ca |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ca428e597f12b278bf158356e34641e6386cfa82",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "59d60e04afd012f07e996d2e34cb90a4ec6f5cff",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "2f946e7839f677fa14574b6babad14b37ae0bbbe",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "4be7810ba70291abb2f68cc6db0ae1b93ee9c76a",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "7babc25d8dd5b7642920fbc0737cfd1469e7025b",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "4664368b9bd9d5d79ebad24056b98c34b9fed20f",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
},
{
"lessThan": "e37cdd75f8d61c1123d324ae5667ac3da562290e",
"status": "affected",
"version": "6898d1c661d79f4707d8ba82991b2195822780ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mlx5: Drain RCU callbacks during module teardown\n\ndevx_free_subscription() can remain queued after the last DevX event file\ndrops its module reference or an auxiliary driver detaches its devices.\nmlx5_ib can then unload before the callback runs.\n\nRegistration error unwind has the same risk because driver registration\ncan attach existing devices before failing. Wait after all drivers have\nstopped."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:41.900Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ca428e597f12b278bf158356e34641e6386cfa82"
},
{
"url": "https://git.kernel.org/stable/c/59d60e04afd012f07e996d2e34cb90a4ec6f5cff"
},
{
"url": "https://git.kernel.org/stable/c/2f946e7839f677fa14574b6babad14b37ae0bbbe"
},
{
"url": "https://git.kernel.org/stable/c/4be7810ba70291abb2f68cc6db0ae1b93ee9c76a"
},
{
"url": "https://git.kernel.org/stable/c/7babc25d8dd5b7642920fbc0737cfd1469e7025b"
},
{
"url": "https://git.kernel.org/stable/c/4664368b9bd9d5d79ebad24056b98c34b9fed20f"
},
{
"url": "https://git.kernel.org/stable/c/e37cdd75f8d61c1123d324ae5667ac3da562290e"
}
],
"title": "RDMA/mlx5: Drain RCU callbacks during module teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93109",
"datePublished": "2026-09-17T16:11:19.135Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:41.900Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89580 (GCVE-0-2026-89580)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Disable preemption in __bpf_get_stack
get_perf_callchain() returns a per-CPU perf_callchain_entry buffer and
releases its recursion slot via put_callchain_entry() before returning,
so nothing keeps the entry reserved while __bpf_get_stack() consumes
it below.
A preemptible BPF program (e.g. a non-sleepable raw tracepoint program
on a PREEMPT kernel, which runs under migrate_disable() but not
preempt_disable()) can be scheduled out between obtaining the entry
and the copy. Another task scheduled on the same CPU then reuses the
same per-CPU buffer and overwrites trace->nr with a larger value.
copy_len is then computed from the inflated trace->nr and can exceed
the caller's buffer, causing an out-of-bounds write in the memcpy()
and in the build_id path.
The rcu_read_lock() taken here alone does not prevent this. It is
only taken on the may_fault path, and under CONFIG_PREEMPT_RCU it does
not disable preemption; it merely keeps perf's callchain buffer array
alive (freed via call_rcu()) and does nothing to stop another task
from reusing the entry.
Disable preemption around obtaining the callchain entry and copying
it into the caller's buffer, so the entry cannot be reused underneath
us and trace->nr stays bounded by max_depth. Build ID resolution may
fault and is therefore deferred until after preemption is re-enabled;
by then the instruction pointers have already been copied into buf,
so it operates only on that private copy. Note, preempt_disable() also
subsumes the buffer-lifetime guarantee the rcu_read_lock() provided,
since a preempt-disabled section is an RCU read-side critical section
for the callchain buffers' call_rcu() reclaim.
[ changed Fixes: commit ]
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89580",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:29.219775Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:44.895Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/bpf/stackmap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "719e69421de28829c72bf8a2722ab48a1c5a59ad",
"status": "affected",
"version": "c195651e565ae7f41a68acb7d4aa7390ad215de1",
"versionType": "git"
},
{
"lessThan": "8c5ba022f2085ea42d011497a6e92e527d123b9b",
"status": "affected",
"version": "c195651e565ae7f41a68acb7d4aa7390ad215de1",
"versionType": "git"
},
{
"lessThan": "dbfecc8a6631c0d3626c14ba1f1a485a4498445a",
"status": "affected",
"version": "c195651e565ae7f41a68acb7d4aa7390ad215de1",
"versionType": "git"
},
{
"lessThan": "9a23747909fcae707990c8466c381a0e7acfaa4e",
"status": "affected",
"version": "c195651e565ae7f41a68acb7d4aa7390ad215de1",
"versionType": "git"
},
{
"lessThan": "b1a47b2708d4e95dbd23aee2ec83752190897b3f",
"status": "affected",
"version": "c195651e565ae7f41a68acb7d4aa7390ad215de1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/bpf/stackmap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Disable preemption in __bpf_get_stack\n\nget_perf_callchain() returns a per-CPU perf_callchain_entry buffer and\nreleases its recursion slot via put_callchain_entry() before returning,\nso nothing keeps the entry reserved while __bpf_get_stack() consumes\nit below.\n\nA preemptible BPF program (e.g. a non-sleepable raw tracepoint program\non a PREEMPT kernel, which runs under migrate_disable() but not\npreempt_disable()) can be scheduled out between obtaining the entry\nand the copy. Another task scheduled on the same CPU then reuses the\nsame per-CPU buffer and overwrites trace-\u003enr with a larger value.\ncopy_len is then computed from the inflated trace-\u003enr and can exceed\nthe caller\u0027s buffer, causing an out-of-bounds write in the memcpy()\nand in the build_id path.\n\nThe rcu_read_lock() taken here alone does not prevent this. It is\nonly taken on the may_fault path, and under CONFIG_PREEMPT_RCU it does\nnot disable preemption; it merely keeps perf\u0027s callchain buffer array\nalive (freed via call_rcu()) and does nothing to stop another task\nfrom reusing the entry.\n\nDisable preemption around obtaining the callchain entry and copying\nit into the caller\u0027s buffer, so the entry cannot be reused underneath\nus and trace-\u003enr stays bounded by max_depth. Build ID resolution may\nfault and is therefore deferred until after preemption is re-enabled;\nby then the instruction pointers have already been copied into buf,\nso it operates only on that private copy. Note, preempt_disable() also\nsubsumes the buffer-lifetime guarantee the rcu_read_lock() provided,\nsince a preempt-disabled section is an RCU read-side critical section\nfor the callchain buffers\u0027 call_rcu() reclaim.\n\n\n[ changed Fixes: commit ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in __bpf_get_stack(), reached only from bpf_get_stack/bpf_get_task_stack helpers in locally loaded tracing BPF (kprobe, tracepoint, raw_tp, perf_event, tracing) via bpf(2); kernel CNA guidance classifies BPF as Local, not a network path.\nAC:L - The attacker controls both sides of the race: a preemptible tracing program with a small bpf_get_stack buffer and a same-CPU helper/perf callchain with larger max_depth that reuses the per-CPU entry after put_callchain_entry(); pinning and retries make the window reliably hittable on PREEMPT kernels (e.g. Android).\nPR:L - Loading and attaching the required tracing programs needs CAP_BPF and CAP_PERFMON at bpf_prog_load(); per kernel CNA guidance these are Low because BPF tokens and user namespaces can delegate them to non-init-namespace users, not only real root.\nUI:N - The attacker loads their own BPF program, attaches it, and invokes the helper through their own syscalls or pinned threads; no victim mount, file open, or other user action is required.\nS:U - The out-of-bounds write corrupts kernel stack or slab inside the same host kernel security authority, enabling local privilege escalation; it does not cross a VM, IOMMU, or other distinct trust boundary.\nC:H - Inflated trace-\u003enr drives memcpy/build-id copies of kernel instruction pointers past the caller buffer (BPF stack or map value), which is kernel memory corruption that can be turned into an arbitrary read primitive.\nI:H - copy_len is taken from the reused per-CPU trace-\u003enr with no remaining size cap, so the memcpy or bpf_stack_build_id loop is an attacker-sized kernel OOB write (up to PERF_MAX_STACK_DEPTH frames) that can smash stack/heap and hijack control flow.\nA:H - The same unbounded kernel write past a small helper buffer causes a kernel oops or panic even when not fully weaponized, matching CNA guidance that any kernel crash or memory-corrupting OOB write is Availability High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:57.787Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/719e69421de28829c72bf8a2722ab48a1c5a59ad"
},
{
"url": "https://git.kernel.org/stable/c/8c5ba022f2085ea42d011497a6e92e527d123b9b"
},
{
"url": "https://git.kernel.org/stable/c/dbfecc8a6631c0d3626c14ba1f1a485a4498445a"
},
{
"url": "https://git.kernel.org/stable/c/9a23747909fcae707990c8466c381a0e7acfaa4e"
},
{
"url": "https://git.kernel.org/stable/c/b1a47b2708d4e95dbd23aee2ec83752190897b3f"
}
],
"title": "bpf: Disable preemption in __bpf_get_stack",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89580",
"datePublished": "2026-09-11T19:44:46.846Z",
"dateReserved": "2026-09-11T19:38:34.728Z",
"dateUpdated": "2026-10-21T12:47:57.787Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89501 (GCVE-0-2026-89501)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Hold cpu_buffer::lock when resizing a subbuf
Because, ring_buffer_subbuf_order_set() can clear cpu_buffer->free_page,
hold cpu_buffer->lock to prevent races with
ring_buffer_alloc_read_page() and ring_buffer_free_read_page().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8a496aaa3da6e8d545896c2370c7e617cc931ae2",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "6fcb0b745a0b80df62eae4a93ce52a2d061f4ac2",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "bf242baf58de03467f226c8e29554c9495dca7fc",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "24974bd0da1b47fd56c975533ead50abf754e74d",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Hold cpu_buffer::lock when resizing a subbuf\n\nBecause, ring_buffer_subbuf_order_set() can clear cpu_buffer-\u003efree_page,\nhold cpu_buffer-\u003elock to prevent races with\nring_buffer_alloc_read_page() and ring_buffer_free_read_page()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local tracefs syscalls: write() to buffer_subbuf_size_kb (ring_buffer_subbuf_order_set) racing with read()/close() on per_cpu/*/trace_pipe_raw (ring_buffer_alloc_read_page and ring_buffer_free_read_page). No network, adjacent-radio, or physical path reaches this free_page steal.\nAC:L - The attacker controls both sides of the race: one thread toggles buffer_subbuf_size_kb to copy and NULL cpu_buffer-\u003efree_page without cpu_buffer-\u003elock, while another reads or closes trace_pipe_raw, which takes or caches that page under the lock. Success does not depend on an uninfluenced victim state.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC with no capable() check. buffer_subbuf_size_kb and trace_pipe_raw are mode 0640 and are routinely delegated via tracefs gid=/mode= to tracing-group members on Android/Perfetto, ChromeOS, and developer kernels, matching prior CNA tracefs UAF scores.\nUI:N - Exploitation uses the attacker\u2019s own tracefs file descriptors and threads (open/read/close trace_pipe_raw while writing buffer_subbuf_size_kb). No separate victim mount, click, or configuration action is required.\nS:U - The use-after-free and double-free corrupt kernel ring-buffer pages and metadata within the same OS security authority. This enables local privilege escalation but does not cross VM, IOMMU, container-hypervisor, or hardware trust boundaries.\nC:H - ring_buffer_subbuf_order_set() can free the cached free_page after alloc_read_page has already claimed it, including after ring_buffer_read_page swaps it into the live reader page. Recycled heap contents are then copied to userspace via tracing_buffers_read, giving a high-impact disclosure primitive.\nI:H - The same race double-frees the page or installs a freed page as the live ring-buffer reader page, so later tracing writes and free_read_page hit attacker-reclaimable heap. This UAF/double-free is exploitable for arbitrary kernel writes and control-flow hijack, not merely a crash.\nA:H - Concurrent free of a still-in-use reader or spare page corrupts ring-buffer lists and causes kernel oops/panic on UAF or double-free. The attacker can retrigger the race at will through repeated subbuf resizes and raw-buffer reads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:52.839Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8a496aaa3da6e8d545896c2370c7e617cc931ae2"
},
{
"url": "https://git.kernel.org/stable/c/6fcb0b745a0b80df62eae4a93ce52a2d061f4ac2"
},
{
"url": "https://git.kernel.org/stable/c/bf242baf58de03467f226c8e29554c9495dca7fc"
},
{
"url": "https://git.kernel.org/stable/c/24974bd0da1b47fd56c975533ead50abf754e74d"
}
],
"title": "ring-buffer: Hold cpu_buffer::lock when resizing a subbuf",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89501",
"datePublished": "2026-09-11T19:43:50.063Z",
"dateReserved": "2026-09-11T19:38:34.715Z",
"dateUpdated": "2026-10-19T08:47:52.839Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97957 (GCVE-0-2026-97957)
Vulnerability from cvelistv5
Published
2026-09-25 10:23
Modified
2026-10-19 09:11
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: hinic: fix mailbox segment buffer overflow
check_mbox_seq_id_and_seg_len() validates that seq_id does not
exceed SEQ_ID_MAX_VAL (42) and seg_len does not exceed
MBOX_SEG_LEN (48). However, this allows the last segment
(seq_id=42) to carry a full 48-byte payload, writing to offset
42*48=2016 for 48 bytes (ending at byte 2064). The receive
buffer is only MBOX_MAX_BUF_SZ (2048) bytes, resulting in a
16-byte heap buffer overflow.
The hinic3 driver already handles this correctly by defining
MBOX_LAST_SEG_MAX_LEN and rejecting the last segment when it
exceeds the remaining buffer space. Apply the same fix to the
hinic driver.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c Version: a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7cc974799fde846eda2d8f00ad4f8e1810eb0499",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "8de1e23bd91fe3a6683e4bc574e2d6bcb0eef920",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "72be1fd5d256dde748c0905c5e1749a119cad5bd",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "c622bbc212207d7c6bbd69dd88f0c3a3f5853d16",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "eca54a092d5f7b497b458ff5a6f66d4f7bfb6674",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "9f6ad383901d0cb1c8ea5f7f3160fabfe1540eb5",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "513f7b16ed0cffae9348151c72bed17c7073096f",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
},
{
"lessThan": "5d4d985957434867bbe85e4fa5e638f3e48ad522",
"status": "affected",
"version": "a425b6e1c69ba907b72b737a4d44f8cfbc43ce3c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: hinic: fix mailbox segment buffer overflow\n\ncheck_mbox_seq_id_and_seg_len() validates that seq_id does not\nexceed SEQ_ID_MAX_VAL (42) and seg_len does not exceed\nMBOX_SEG_LEN (48). However, this allows the last segment\n(seq_id=42) to carry a full 48-byte payload, writing to offset\n42*48=2016 for 48 bytes (ending at byte 2064). The receive\nbuffer is only MBOX_MAX_BUF_SZ (2048) bytes, resulting in a\n16-byte heap buffer overflow.\n\nThe hinic3 driver already handles this correctly by defining\nMBOX_LAST_SEG_MAX_LEN and rejecting the last segment when it\nexceeds the remaining buffer space. Apply the same fix to the\nhinic driver."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The malformed input is a mailbox header (SEQID/SEG_LEN) and 48-byte body that a VF driver writes into its own mailbox registers. The hardware delivers it to the PF\u0027s hinic_mbox_func_aeqe_handler() -\u003e recv_mbox_handler(). The attacker is code running in a guest that owns an SR-IOV VF (or a local driver), not a remote network peer, so this is local access.\nAC:L - The attacker sends segments seq_id 0..42 in order, each with seg_len=48. check_mbox_seq_id_and_seg_len() accepts all of them, and the memcpy at offset 42*48 overflows every time. The only setup is a VF assigned to the attacker\u0027s VM, which is the standard SR-IOV passthrough deployment. Nothing depends on timing or state outside the attacker\u0027s control.\nPR:L - Writing raw mailbox headers needs kernel control of the VF, i.e. root inside the guest. A VM tenant always has that, and it gives no privilege on the host whose PF driver is corrupted. The random id checked by check_vf_mbox_random_id() is given to every genuine VF, so it does not stop a hostile VF driver.\nUI:N - The PF host processes the mailbox message on its own from the AEQ handler. Nobody on the host has to do anything.\nS:C - The bug is in a guest-controlled VF\u0027s messages, but the overflow corrupts the host kernel heap in the PF driver (recv_mbox-\u003embox, kzalloc(2048)). That crosses the guest-to-host boundary, like a VM escape.\nC:H - Overwriting the first 16 bytes of the neighbouring kmalloc-2048 object with attacker-chosen data can corrupt pointers or length fields in that object. That is a normal route to reading arbitrary host kernel memory.\nI:H - recv_mbox_handler() copies 16 attacker-chosen bytes from the mailbox body past the end of the 2048-byte receive buffer. This is a controlled heap out-of-bounds write in the host kernel, which can lead to control-flow hijack.\nA:H - The guest can repeat the corruption of the neighbouring host heap object at will, crashing or panicking the host kernel. That takes down every tenant on the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:23.333Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7cc974799fde846eda2d8f00ad4f8e1810eb0499"
},
{
"url": "https://git.kernel.org/stable/c/8de1e23bd91fe3a6683e4bc574e2d6bcb0eef920"
},
{
"url": "https://git.kernel.org/stable/c/72be1fd5d256dde748c0905c5e1749a119cad5bd"
},
{
"url": "https://git.kernel.org/stable/c/c622bbc212207d7c6bbd69dd88f0c3a3f5853d16"
},
{
"url": "https://git.kernel.org/stable/c/eca54a092d5f7b497b458ff5a6f66d4f7bfb6674"
},
{
"url": "https://git.kernel.org/stable/c/9f6ad383901d0cb1c8ea5f7f3160fabfe1540eb5"
},
{
"url": "https://git.kernel.org/stable/c/513f7b16ed0cffae9348151c72bed17c7073096f"
},
{
"url": "https://git.kernel.org/stable/c/5d4d985957434867bbe85e4fa5e638f3e48ad522"
}
],
"title": "net: hinic: fix mailbox segment buffer overflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97957",
"datePublished": "2026-09-25T10:23:03.153Z",
"dateReserved": "2026-09-25T10:18:58.205Z",
"dateUpdated": "2026-10-19T09:11:23.333Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74538 (GCVE-0-2026-74538)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: lock sk in iso_connect_ind
Accessing iso_pi(sk)->conn requires lock_sock, which is not taken in the
"ev3" part of iso_connect_ind. It may also be NULL if socket has
transitioned away from the LISTEN/CONNECT states before locking.
Fix by adding lock/release. Recheck hcon is valid after lock acquire
where needed.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 168d9bf9c7f01df71e6404cfff66d9c2a8e968fb Version: 168d9bf9c7f01df71e6404cfff66d9c2a8e968fb Version: 168d9bf9c7f01df71e6404cfff66d9c2a8e968fb Version: 168d9bf9c7f01df71e6404cfff66d9c2a8e968fb Version: 489efc9ae36f164423f5fa7ace772a7ab8131cd8 Version: 6.8.9 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74538",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:35.716308Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:54.312Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0e830354c120954ccb9ca15880245912722c4031",
"status": "affected",
"version": "168d9bf9c7f01df71e6404cfff66d9c2a8e968fb",
"versionType": "git"
},
{
"lessThan": "e8e9cff6d80eeec28dec4cf7cc18662986945391",
"status": "affected",
"version": "168d9bf9c7f01df71e6404cfff66d9c2a8e968fb",
"versionType": "git"
},
{
"lessThan": "9bee7e476534f27e830658dad962d85da9edf6bf",
"status": "affected",
"version": "168d9bf9c7f01df71e6404cfff66d9c2a8e968fb",
"versionType": "git"
},
{
"lessThan": "4311fd6f429065a8ba208660360a895627a00cf3",
"status": "affected",
"version": "168d9bf9c7f01df71e6404cfff66d9c2a8e968fb",
"versionType": "git"
},
{
"status": "affected",
"version": "489efc9ae36f164423f5fa7ace772a7ab8131cd8",
"versionType": "git"
},
{
"lessThan": "6.9",
"status": "affected",
"version": "6.8.9",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: lock sk in iso_connect_ind\n\nAccessing iso_pi(sk)-\u003econn requires lock_sock, which is not taken in the\n\"ev3\" part of iso_connect_ind. It may also be NULL if socket has\ntransitioned away from the LISTEN/CONNECT states before locking.\n\nFix by adding lock/release. Recheck hcon is valid after lock acquire\nwhere needed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is hit in hci_le_per_adv_report_evt when the controller delivers HCI_EV_LE_PER_ADV_REPORT from in-range LE periodic advertising; this is the Bluetooth ISO broadcast-sink path on phones/headsets in public spaces, not a local-only syscall entry point.\nAC:L - Exploitation is a socket-lock race where the attacker can repeatedly deliver PA reports and concurrently close or tear down the matching ISO listen socket (or race automatic teardown), controlling both sides rather than depending on uncontrollable memory layout.\nPR:N - An adjacent Bluetooth attacker needs no account or capabilities on the victim; they only need the device to be using LE Audio broadcast reception while they transmit periodic advertising that drives the vulnerable HCI handler.\nUI:N - Once a broadcast sink socket is active, triggering the flaw does not require the victim to perform a specific one-off action at exploit time; the attacker can flood PA reports and race normal stack teardown without user prompts.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same kernel security boundary; there is no VM escape, IOMMU bypass, or cross-authority scope change.\nC:H - Missing lock_sock allows TOCTOU/UAF on iso_pi(sk)-\u003econn and stale hci_conn pointers; per kernel guidance, this class of race on connection objects can expose freed kernel heap contents and enable information disclosure primitives.\nI:H - The handler memcpy()s attacker-controlled PA report bytes into hcon-\u003ele_per_adv_data without holding the socket lock, so a stale hcon can turn remote advertising data into an exploitable kernel heap write/control-flow corruption primitive.\nA:H - Concurrent NULL conn dereference or use of a detached hci_conn can oops/panic the kernel during PA reassembly, and the remote PA-report trigger can be repeated to cause sustained denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:51.636Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0e830354c120954ccb9ca15880245912722c4031"
},
{
"url": "https://git.kernel.org/stable/c/e8e9cff6d80eeec28dec4cf7cc18662986945391"
},
{
"url": "https://git.kernel.org/stable/c/9bee7e476534f27e830658dad962d85da9edf6bf"
},
{
"url": "https://git.kernel.org/stable/c/4311fd6f429065a8ba208660360a895627a00cf3"
}
],
"title": "Bluetooth: ISO: lock sk in iso_connect_ind",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74538",
"datePublished": "2026-08-15T12:27:50.271Z",
"dateReserved": "2026-08-15T05:44:03.913Z",
"dateUpdated": "2026-10-21T12:45:51.636Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89539 (GCVE-0-2026-89539)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: reject duplicate CREDS_VALUE options
gssx_dec_option_array() walks the wire-supplied option array and, for
every entry whose name matches CREDS_VALUE, calls
gssx_dec_linux_creds() on the same struct svc_cred. That helper
unconditionally installs a fresh groups_alloc() result into
creds->cr_group_info without releasing whatever pointer was already
there:
for (i = 0; i < count; i++) {
... decode name ...
if (length == sizeof(CREDS_VALUE) &&
memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) == 0) {
err = gssx_dec_linux_creds(xdr, creds);
...
}
}
A reply that carries two CREDS_VALUE entries therefore overwrites
cr_group_info on the second iteration and orphans the group_info
allocated by the first call. The earlier free_creds path only
releases the last cr_group_info via free_svc_cred(), so the first
allocation's refcount stays at one and its kvmalloc-backed storage
is leaked. No in-tree caller of gssp_accept_sec_context_upcall()
expects more than one CREDS_VALUE per reply.
Fix by tracking whether a CREDS_VALUE option has already been
decoded and returning -EINVAL on any subsequent match, so the
free_creds path releases the single group_info that was installed.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4b5ebb4f91a6152a0f7b1253f701197e5710d4da",
"status": "affected",
"version": "1d658336b05f8697d6445834f8867f8ad5e4f735",
"versionType": "git"
},
{
"lessThan": "f615b884310bf82d0014e3b5a92eb9aa88146685",
"status": "affected",
"version": "1d658336b05f8697d6445834f8867f8ad5e4f735",
"versionType": "git"
},
{
"lessThan": "7a1d0501cbb962beba23377035d667bf3c1726ee",
"status": "affected",
"version": "1d658336b05f8697d6445834f8867f8ad5e4f735",
"versionType": "git"
},
{
"lessThan": "9d94f046b23de0f77849ea69133063c949297e30",
"status": "affected",
"version": "1d658336b05f8697d6445834f8867f8ad5e4f735",
"versionType": "git"
},
{
"lessThan": "2e4ce62385c1b8a887c5370af058ac7b52a8eaf9",
"status": "affected",
"version": "1d658336b05f8697d6445834f8867f8ad5e4f735",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: reject duplicate CREDS_VALUE options\n\ngssx_dec_option_array() walks the wire-supplied option array and, for\nevery entry whose name matches CREDS_VALUE, calls\ngssx_dec_linux_creds() on the same struct svc_cred. That helper\nunconditionally installs a fresh groups_alloc() result into\ncreds-\u003ecr_group_info without releasing whatever pointer was already\nthere:\n\n for (i = 0; i \u003c count; i++) {\n ... decode name ...\n if (length == sizeof(CREDS_VALUE) \u0026\u0026\n memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) == 0) {\n err = gssx_dec_linux_creds(xdr, creds);\n ...\n }\n }\n\nA reply that carries two CREDS_VALUE entries therefore overwrites\ncr_group_info on the second iteration and orphans the group_info\nallocated by the first call. The earlier free_creds path only\nreleases the last cr_group_info via free_svc_cred(), so the first\nallocation\u0027s refcount stays at one and its kvmalloc-backed storage\nis leaked. No in-tree caller of gssp_accept_sec_context_upcall()\nexpects more than one CREDS_VALUE per reply.\n\nFix by tracking whether a CREDS_VALUE option has already been\ndecoded and returning -EINVAL on any subsequent match, so the\nfree_creds path releases the single group_info that was installed."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:46.957Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4b5ebb4f91a6152a0f7b1253f701197e5710d4da"
},
{
"url": "https://git.kernel.org/stable/c/f615b884310bf82d0014e3b5a92eb9aa88146685"
},
{
"url": "https://git.kernel.org/stable/c/7a1d0501cbb962beba23377035d667bf3c1726ee"
},
{
"url": "https://git.kernel.org/stable/c/9d94f046b23de0f77849ea69133063c949297e30"
},
{
"url": "https://git.kernel.org/stable/c/2e4ce62385c1b8a887c5370af058ac7b52a8eaf9"
}
],
"title": "SUNRPC: reject duplicate CREDS_VALUE options",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89539",
"datePublished": "2026-09-11T19:44:16.699Z",
"dateReserved": "2026-09-11T19:38:34.721Z",
"dateUpdated": "2026-10-21T12:47:46.957Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64003 (GCVE-0-2026-64003)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-10-19 20:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues
While a SCSI host is in a recovery state, scsi_mq_requeue_cmd() will not
set the requeue list for a requeued command to be kicked in the future.
The expectation is a call to scsi_run_host_queues() will kick all SCSI
devices once the recovery state is cleared.
However, scsi_run_host_queues() uses shost_for_each_device() which uses
scsi_device_get() and so will ignore devices in a partially removed
state like SDEV_CANCEL. But these devices may also have requeued
requests, leaving their requests stuck from not being kicked and causing
the removal process of the device to hang.
scsi_run_host_queues() needs to run against more devices than the macro
shost_for_each_device() allows. Instead of using the too limiting
scsi_device_get() state checks, only ignore devices in SDEV_DEL state or
when unable to acquire a reference. Attempt to run the queues for all
other devices when scsi_run_host_queues() is called.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64003",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:35:05.354063Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-400",
"description": "CWE-400 Uncontrolled Resource Consumption",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:18:02.511Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/scsi_lib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "15fb19af49f2073ed77fad16aaabc648b0ca6800",
"status": "affected",
"version": "8b566edbdbfb5cde31a322c57932694ff48125ed",
"versionType": "git"
},
{
"lessThan": "d4dddfecdbb5467bef158d4e1486459808357fef",
"status": "affected",
"version": "8b566edbdbfb5cde31a322c57932694ff48125ed",
"versionType": "git"
},
{
"lessThan": "475f2b37a78f4c698967a7f14f325f04e24c9175",
"status": "affected",
"version": "8b566edbdbfb5cde31a322c57932694ff48125ed",
"versionType": "git"
},
{
"lessThan": "c740e13e7fe32d8e4d9a1699f65b8daf6709895a",
"status": "affected",
"version": "8b566edbdbfb5cde31a322c57932694ff48125ed",
"versionType": "git"
},
{
"lessThan": "7205b58702273baf21d6ba7992e6ba15852325f7",
"status": "affected",
"version": "8b566edbdbfb5cde31a322c57932694ff48125ed",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/scsi_lib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.5"
},
{
"lessThan": "6.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues\n\nWhile a SCSI host is in a recovery state, scsi_mq_requeue_cmd() will not\nset the requeue list for a requeued command to be kicked in the future.\nThe expectation is a call to scsi_run_host_queues() will kick all SCSI\ndevices once the recovery state is cleared.\n\nHowever, scsi_run_host_queues() uses shost_for_each_device() which uses\nscsi_device_get() and so will ignore devices in a partially removed\nstate like SDEV_CANCEL. But these devices may also have requeued\nrequests, leaving their requests stuck from not being kicked and causing\nthe removal process of the device to hang.\n\nscsi_run_host_queues() needs to run against more devices than the macro\nshost_for_each_device() allows. Instead of using the too limiting\nscsi_device_get() state checks, only ignore devices in SDEV_DEL state or\nwhen unable to acquire a reference. Attempt to run the queues for all\nother devices when scsi_run_host_queues() is called."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the SCSI core midlayer reached after host error recovery; on enterprise servers using kernel iSCSI (iscsi_tcp/libiscsi), a remote storage target can inject SCSI failures and then drive session teardown that calls scsi_remove_target(), all over TCP without local access.\nAC:L - A malicious or compromised iSCSI peer controls both sides of the race by timing command failures, non-responsive task-management replies, and connection resets so SCSI EH recovery overlaps with device removal in SDEV_CANCEL.\nPR:N - Exploitation requires no privileges on the victim host; the attacker acts as the remote iSCSI endpoint on an already-established session and needs no CAP_SYS_ADMIN, sysfs writes, or ioctl access.\nUI:N - No end-user action is required during exploitation; recovery and removal are driven automatically by kernel SCSI/iSCSI error-handling once the session exists.\nS:U - Impact is a kernel hang during SCSI device teardown on the same host; it does not cross a VM, IOMMU, or sandbox security boundary.\nC:N - This is a queue-dispatch logic bug that leaves requeued requests stuck; there is no memory corruption, out-of-bounds access, or information disclosure.\nI:N - The flaw prevents requeued I/O from being kicked and blocks removal completion; it does not modify data or provide a write or code-execution primitive.\nA:H - Stuck requeued requests leave devices in SDEV_CANCEL with queues never kicked after recovery, causing the device removal path to hang indefinitely (deadlock), potentially blocking storage teardown, module unload, or shutdown."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:38:03.750Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/15fb19af49f2073ed77fad16aaabc648b0ca6800"
},
{
"url": "https://git.kernel.org/stable/c/d4dddfecdbb5467bef158d4e1486459808357fef"
},
{
"url": "https://git.kernel.org/stable/c/475f2b37a78f4c698967a7f14f325f04e24c9175"
},
{
"url": "https://git.kernel.org/stable/c/c740e13e7fe32d8e4d9a1699f65b8daf6709895a"
},
{
"url": "https://git.kernel.org/stable/c/7205b58702273baf21d6ba7992e6ba15852325f7"
}
],
"title": "scsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64003",
"datePublished": "2026-07-19T14:56:20.172Z",
"dateReserved": "2026-07-19T07:54:57.026Z",
"dateUpdated": "2026-10-19T20:18:02.511Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63913 (GCVE-0-2026-63913)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-10-19 20:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check
An unintended behavior in the TCP conntrack state machine allows a
connection to be forced into the CLOSE state using an RST packet with an
invalid sequence number.
Specifically, after a SYN packet is observed, an RST with an invalid SEQ
can transition the conntrack entry to TCP_CONNTRACK_CLOSE, regardless of
whether the RST corresponds to the expected reply direction. The relevant
code path assumes the RST is a response to an outgoing SYN, but does not
validate packet direction or ensure that a matching SYN was actually sent
in the opposite direction.
As a result, a crafted packet sequence consisting of a SYN followed by an
invalid-sequence RST can prematurely terminate an active NAT entry. This
makes connection teardown easier than intended.
So, tighten the state transition logic to ensure that RST-triggered
CLOSE transitions only occur when the RST is a valid response to a
previously observed SYN in the correct direction.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 Version: 9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63913",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:33:11.442709Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:17:55.476Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2006979a15af5404bf932a325357683c0bac1656",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "6476c17d536dbd321c073242e762ddb2713a1238",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "f5547bebc416d56f56fb5b86dc20aabfa42165a0",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "2bb6d82b586ea5a4cb73bbdd6b7432e96096bc77",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "f206def4e86d810f927ba1d8e322ea72b29bce58",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "b98ab51c45c5608a1c19ce7fd17a3032469bb83f",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "d67c6adee8d1b65330d0174c4c367faba14e80a8",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "bed6e04be8e6b9133d8b16d5a42d0e0ce674fa9a",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.15"
},
{
"lessThan": "2.6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check\n\nAn unintended behavior in the TCP conntrack state machine allows a\nconnection to be forced into the CLOSE state using an RST packet with an\ninvalid sequence number.\n\nSpecifically, after a SYN packet is observed, an RST with an invalid SEQ\ncan transition the conntrack entry to TCP_CONNTRACK_CLOSE, regardless of\nwhether the RST corresponds to the expected reply direction. The relevant\ncode path assumes the RST is a response to an outgoing SYN, but does not\nvalidate packet direction or ensure that a matching SYN was actually sent\nin the opposite direction.\n\nAs a result, a crafted packet sequence consisting of a SYN followed by an\ninvalid-sequence RST can prematurely terminate an active NAT entry. This\nmakes connection teardown easier than intended.\n\nSo, tighten the state transition logic to ensure that RST-triggered\nCLOSE transitions only occur when the RST is a valid response to a\npreviously observed SYN in the correct direction."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable code runs in nf_conntrack_tcp_packet() on every TCP packet processed by netfilter conntrack via the NF_INET_PRE_ROUTING and LOCAL_OUT hooks; a remote attacker can deliver the crafted SYN+RST sequence over the network to internet-facing NAT gateways, routers, and servers with connection tracking enabled.\nAC:L - The attacker fully controls the exploit sequence (SYN to annotate last_index/last_end, then RST with matching ack_seq but invalid seq) and can time/retry at will; no race against third parties or rare memory layout is required beyond knowing or observing the target connection 4-tuple.\nPR:N - Exploitation requires only the ability to send TCP packets to a system running conntrack/NAT; no authentication, local shell access, or CAP_NET_ADMIN/netlink configuration is needed to reach the vulnerable state-transition path.\nUI:N - No victim user action (opening files, clicking links, mounting filesystems) is required; the attack is carried out entirely by sending crafted network packets to the target.\nS:U - Impact is confined to incorrect conntrack/NAT state on the same kernel/firewall security authority; it does not cross VM, container, or IOMMU boundaries to affect a separate security domain.\nC:N - This is a state-machine logic bug with no memory corruption, out-of-bounds access, use-after-free, or information disclosure; only connection-tracking metadata is affected.\nI:L - The bug causes unauthorized modification of conntrack connection state (forcing TCP_CONNTRACK_CLOSE and accelerated NAT entry teardown) rather than arbitrary memory or code execution, constituting limited integrity impact on data processed by the conntrack subsystem.\nA:H - Prematurely closing conntrack/NAT entries disrupts active TCP sessions and can be repeated against arbitrary tracked connections without authentication, causing sustained denial of service to affected network flows on NAT gateways and stateful firewalls."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:37:07.250Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2006979a15af5404bf932a325357683c0bac1656"
},
{
"url": "https://git.kernel.org/stable/c/6476c17d536dbd321c073242e762ddb2713a1238"
},
{
"url": "https://git.kernel.org/stable/c/f5547bebc416d56f56fb5b86dc20aabfa42165a0"
},
{
"url": "https://git.kernel.org/stable/c/2bb6d82b586ea5a4cb73bbdd6b7432e96096bc77"
},
{
"url": "https://git.kernel.org/stable/c/f206def4e86d810f927ba1d8e322ea72b29bce58"
},
{
"url": "https://git.kernel.org/stable/c/b98ab51c45c5608a1c19ce7fd17a3032469bb83f"
},
{
"url": "https://git.kernel.org/stable/c/d67c6adee8d1b65330d0174c4c367faba14e80a8"
},
{
"url": "https://git.kernel.org/stable/c/bed6e04be8e6b9133d8b16d5a42d0e0ce674fa9a"
}
],
"title": "netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63913",
"datePublished": "2026-07-19T14:55:17.917Z",
"dateReserved": "2026-07-19T07:54:57.020Z",
"dateUpdated": "2026-10-19T20:17:55.476Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89707 (GCVE-0-2026-89707)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: release path refs on follow_down() error
nfsd_cross_mnt() initializes a local struct path with mntget() and
dget() before calling follow_down(). On a negative return the error
arm jumps to out without releasing those references:
err = follow_down(&path, follow_flags);
if (err < 0)
goto out;
follow_down() never drops the caller's entry-time refs on any error
sub-case; for example a pre-cross d_manage() failure leaves path
untouched, so the mntget()/dget() taken on entry survive the call.
Every other early-exit arm in nfsd_cross_mnt() (other-namespace
return, IS_ERR(exp2), and the success tail after the swap) already
calls path_put(&path); the err < 0 arm is the lone omission. The
leak inflates mnt_count and d_count on each failed cross-mount,
blocking umount and pinning dentries against the shrinker, and is
reachable by any authenticated NFS client through nfsd_lookup_dentry
or the NFSv4 READDIR encode path.
Fix by calling path_put(&path) before the goto out in the err < 0
arm so the entry-time refs are released on all follow_down() error
returns.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89707",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:16.926763Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:49.252Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/vfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "085cfde7c2186acaad103f02d2c25435ad5224e9",
"status": "affected",
"version": "cc53ce53c86924bfe98a12ea20b7465038a08792",
"versionType": "git"
},
{
"lessThan": "194316df81263519156ebe714c4a286bee00e5be",
"status": "affected",
"version": "cc53ce53c86924bfe98a12ea20b7465038a08792",
"versionType": "git"
},
{
"lessThan": "467d56fd3ff57447a790c6dc3ede2d02a947d224",
"status": "affected",
"version": "cc53ce53c86924bfe98a12ea20b7465038a08792",
"versionType": "git"
},
{
"lessThan": "2bc4343308d85ee4e0dd3877b384306c96f114c2",
"status": "affected",
"version": "cc53ce53c86924bfe98a12ea20b7465038a08792",
"versionType": "git"
},
{
"lessThan": "6cba08dc1922140d260cfeb30bbda4ee1bf869d8",
"status": "affected",
"version": "cc53ce53c86924bfe98a12ea20b7465038a08792",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/vfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.38"
},
{
"lessThan": "2.6.38",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.38",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: release path refs on follow_down() error\n\nnfsd_cross_mnt() initializes a local struct path with mntget() and\ndget() before calling follow_down(). On a negative return the error\narm jumps to out without releasing those references:\n\n err = follow_down(\u0026path, follow_flags);\n if (err \u003c 0)\n goto out;\n\nfollow_down() never drops the caller\u0027s entry-time refs on any error\nsub-case; for example a pre-cross d_manage() failure leaves path\nuntouched, so the mntget()/dget() taken on entry survive the call.\n\nEvery other early-exit arm in nfsd_cross_mnt() (other-namespace\nreturn, IS_ERR(exp2), and the success tail after the swap) already\ncalls path_put(\u0026path); the err \u003c 0 arm is the lone omission. The\nleak inflates mnt_count and d_count on each failed cross-mount,\nblocking umount and pinning dentries against the shrinker, and is\nreachable by any authenticated NFS client through nfsd_lookup_dentry\nor the NFSv4 READDIR encode path.\n\nFix by calling path_put(\u0026path) before the goto out in the err \u003c 0\narm so the entry-time refs are released on all follow_down() error\nreturns."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd_cross_mnt() runs in the in-kernel NFS server on TCP/UDP 2049 from nfsd_lookup_dentry() (NFSv2/v3/v4 LOOKUP) and nfsd4_encode_entry4_fattr() (NFSv4 READDIR); a remote client reaches it with ordinary RPC requests.\nAC:L - On a typical nfsd export of autofs homes or nested mounts with crossmnt, an attacker can deterministically make follow_down() fail (autofs d_manage/automount error) by repeating LOOKUP/READDIR of failing mount triggers; no race or victim-controlled layout is required.\nPR:N - Default nfsd exports accept RPC_AUTH_NULL and RPC_AUTH_UNIX with no password; fh_verify only checks export IP policy, a MOUNT/PUTROOTFH filehandle, and directory execute, so no Linux account or capability on the server is required.\nUI:N - The attacker triggers the leak with their own NFS LOOKUP or READDIR RPCs; no victim mount, click, or other interactive action is required.\nS:U - The leak inflates dentry and vfsmount refcounts inside the nfsd host kernel and does not cross a VM, IOMMU, or other separate security authority.\nC:N - The bug only fails to path_put() the mntget/dget taken before follow_down(); it does not read kernel or file data or provide an information-disclosure primitive.\nI:N - The bug does not write attacker-controlled data or corrupt kernel objects; it only retains extra references on existing dentries and mounts.\nA:H - Each failed follow_down() permanently pins the dentry and vfsmount; repeated LOOKUPs of distinct autofs/mountpoint names leave unreclaimable dentries, block umount, and can exhaust kernel memory for a system-wide DoS."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:20.289Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/085cfde7c2186acaad103f02d2c25435ad5224e9"
},
{
"url": "https://git.kernel.org/stable/c/194316df81263519156ebe714c4a286bee00e5be"
},
{
"url": "https://git.kernel.org/stable/c/467d56fd3ff57447a790c6dc3ede2d02a947d224"
},
{
"url": "https://git.kernel.org/stable/c/2bc4343308d85ee4e0dd3877b384306c96f114c2"
},
{
"url": "https://git.kernel.org/stable/c/6cba08dc1922140d260cfeb30bbda4ee1bf869d8"
}
],
"title": "nfsd: release path refs on follow_down() error",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89707",
"datePublished": "2026-09-11T19:46:23.293Z",
"dateReserved": "2026-09-11T19:38:34.751Z",
"dateUpdated": "2026-10-19T08:51:20.289Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64597 (GCVE-0-2026-64597)
Vulnerability from cvelistv5
Published
2026-08-06 07:13
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix double-free in SMB2_close() replay
A response-bearing attempt can return a replayable error and free its
response buffer. If SMB2_close_init() fails before the next send, cleanup
retains the previous buffer type and frees that response again.
Reset response bookkeeping before each attempt to prevent the stale free.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 433042a91f9373241307725b52de573933ffedbf Version: 4f1fffa2376922f3d1d506e49c0fd445b023a28e Version: 4f1fffa2376922f3d1d506e49c0fd445b023a28e Version: 4f1fffa2376922f3d1d506e49c0fd445b023a28e Version: 4f1fffa2376922f3d1d506e49c0fd445b023a28e Version: 6.6.32 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64597",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:23.981933Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-415",
"description": "CWE-415 Double Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:43.468Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "037511726228aaf165c7067ff2bfc88eaecdf1f3",
"status": "affected",
"version": "433042a91f9373241307725b52de573933ffedbf",
"versionType": "git"
},
{
"lessThan": "0aa97edf7c347c0f54e7e60c4740574b8120c66a",
"status": "affected",
"version": "4f1fffa2376922f3d1d506e49c0fd445b023a28e",
"versionType": "git"
},
{
"lessThan": "d15d83125007f673aec4323e1bbbaaffbe87ea13",
"status": "affected",
"version": "4f1fffa2376922f3d1d506e49c0fd445b023a28e",
"versionType": "git"
},
{
"lessThan": "b18ed621dbfceecea5539848cddcb9272c9a61e1",
"status": "affected",
"version": "4f1fffa2376922f3d1d506e49c0fd445b023a28e",
"versionType": "git"
},
{
"lessThan": "f96e1cdcb63ed3321142ff2fcdf784e32cda8fee",
"status": "affected",
"version": "4f1fffa2376922f3d1d506e49c0fd445b023a28e",
"versionType": "git"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.32",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix double-free in SMB2_close() replay\n\nA response-bearing attempt can return a replayable error and free its\nresponse buffer. If SMB2_close_init() fails before the next send, cleanup\nretains the previous buffer type and frees that response again.\n\nReset response bookkeeping before each attempt to prevent the stale free."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A malicious or compromised SMB server triggers the double-free via crafted SMB2 CLOSE responses over the network, returning replayable NTSTATUS values that map to -EAGAIN/-ECONNABORTED while leaving a response buffer for the client to free.\nAC:L - The attacking server controls both sides of the sequence by returning a replayable CLOSE status with a response buffer, then dropping or forcing reconnect so SMB2_close_init fails before the next send, and can repeat until the stale free occurs.\nPR:N - The attacking SMB endpoint needs no account or privileges on the victim client; once an SMB session and handle exist, the server alone drives the vulnerable CLOSE replay path.\nUI:N - On an already mounted or automounted share, background paths such as cached-directory close and cancelled-close work, as well as routine service file closes, can invoke SMB2_close without interactive user action at exploit time.\nS:U - The mempool double-free corrupts kernel memory within the same host kernel security authority and does not inherently cross a VM, IOMMU, or sandbox boundary.\nC:H - Double-free of a CIFS small/large response buffer can create overlapping live allocations and use-after-free reads, enabling disclosure of arbitrary kernel memory.\nI:H - Reallocation of the freed mempool object with attacker-controlled network data can corrupt live kernel objects or allocator metadata, enabling arbitrary writes and control-flow hijacking.\nA:H - The duplicate free can immediately trigger allocator BUG diagnostics, heap corruption, oops, or panic, and the server can retrigger the path repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:19.742Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/037511726228aaf165c7067ff2bfc88eaecdf1f3"
},
{
"url": "https://git.kernel.org/stable/c/0aa97edf7c347c0f54e7e60c4740574b8120c66a"
},
{
"url": "https://git.kernel.org/stable/c/d15d83125007f673aec4323e1bbbaaffbe87ea13"
},
{
"url": "https://git.kernel.org/stable/c/b18ed621dbfceecea5539848cddcb9272c9a61e1"
},
{
"url": "https://git.kernel.org/stable/c/f96e1cdcb63ed3321142ff2fcdf784e32cda8fee"
}
],
"title": "smb: client: fix double-free in SMB2_close() replay",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64597",
"datePublished": "2026-08-06T07:13:52.117Z",
"dateReserved": "2026-07-19T15:36:31.799Z",
"dateUpdated": "2026-10-19T20:48:43.468Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72106 (GCVE-0-2026-72106)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-08-18 06:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm-ioctl: fix a possible overflow in list_version_get_info
sizeof(tt->version) is 12 bytes, but the code writes 16 bytes into the
output buffer - info->vers->version[0], info->vers->version[1],
info->vers->version[2] and info->vers->next. This can cause buffer
overflow.
Fix this buffer overflow by replacing "sizeof(tt->version)" with
"sizeof(struct dm_target_versions)".
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "29536a9ff146d9bbd618959857ed2e691cda1d21",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e0f5842c4e2a7dbefb52a2dc6711789bc6963e55",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d61c12573ed9768690fdcb2bc38846a1bcb01358",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "df50c24c6447c18886ed126d3d81cc7e155ea8b6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "76c6f845dc0c614304a6e6ee619b552f97cf24b3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm-ioctl: fix a possible overflow in list_version_get_info\n\nsizeof(tt-\u003eversion) is 12 bytes, but the code writes 16 bytes into the\noutput buffer - info-\u003evers-\u003eversion[0], info-\u003evers-\u003eversion[1],\ninfo-\u003evers-\u003eversion[2] and info-\u003evers-\u003enext. This can cause buffer\noverflow.\n\nFix this buffer overflow by replacing \"sizeof(tt-\u003eversion)\" with\n\"sizeof(struct dm_target_versions)\"."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-18T06:56:11.658Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/29536a9ff146d9bbd618959857ed2e691cda1d21"
},
{
"url": "https://git.kernel.org/stable/c/e0f5842c4e2a7dbefb52a2dc6711789bc6963e55"
},
{
"url": "https://git.kernel.org/stable/c/d61c12573ed9768690fdcb2bc38846a1bcb01358"
},
{
"url": "https://git.kernel.org/stable/c/df50c24c6447c18886ed126d3d81cc7e155ea8b6"
},
{
"url": "https://git.kernel.org/stable/c/76c6f845dc0c614304a6e6ee619b552f97cf24b3"
}
],
"title": "dm-ioctl: fix a possible overflow in list_version_get_info",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72106",
"datePublished": "2026-08-15T05:52:48.845Z",
"dateReserved": "2026-08-09T03:40:39.906Z",
"dateUpdated": "2026-08-18T06:56:11.658Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89662 (GCVE-0-2026-89662)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSD: Prevent lock owner use-after-free during client teardown
__destroy_client() releases a client's open owners, but a lock owner
whose only reference is a blocked lock (nbl) stays on
cl_ownerstr_hashtbl. client_has_state() does not count a bare owner,
so DESTROY_CLIENTID can reach __destroy_client() with such owners
present.
__destroy_client() then walks the table, calling remove_blocked_locks()
on each owner without a reference. Freeing a blocked lock drops the
owner reference held via flc_owner. The per-net laundromat reaps
blocked locks from nn->blocked_locks_lru independently of client state.
The two paths share blocked_locks_lock only for the list splice, not
the owner's lifetime. The laundromat therefore frees the owner as
__destroy_client() dereferences it, a NULL dereference in
remove_blocked_locks().
nfsd4_release_lockowner() holds a reference across the same call;
__destroy_client() does not. Hold cl_lock across the walk, taking a
reference and unhashing each owner, then drop it before
remove_blocked_locks() and nfs4_put_stateowner(), which take
blocked_locks_lock and cl_lock.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: 68ef3bc3166468678d5e1fdd216628c35bd1186f Version: e294c4c2d33b7307a89cdf31bec08a112d6a9297 Version: 797bfd05d4040fbf766198b3cfcc1838002cc890 Version: 0f44e9da465ea259b6c9f31a627f3c50a16e1679 Version: 4.9.91 ≤ Version: 4.14.31 ≤ Version: 4.15.14 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89662",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:25:37.406747Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:47.751Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "42d7954b0a1907d4ef122aef94561952a033cdc3",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "bb38ff8b4dafbbd1781ad37cd96722fdf2cd972a",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "b8bad5a11416b26cc7fd4b18fba46d75ff636558",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "1ce74d1b7770e69735e8f8e509807af4ff9c8ee7",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "a6ead6fff3a7d03e49845f048f7000a2e0d34431",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "4804c58f73a80d12df1de323bf97a164f6ee8743",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "8cf4ff0a7c083dd5e0067f517d63979b74b66649",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"lessThan": "5e2fa29d223a9a1e6a948e40b109d09081d1decd",
"status": "affected",
"version": "68ef3bc3166468678d5e1fdd216628c35bd1186f",
"versionType": "git"
},
{
"status": "affected",
"version": "e294c4c2d33b7307a89cdf31bec08a112d6a9297",
"versionType": "git"
},
{
"status": "affected",
"version": "797bfd05d4040fbf766198b3cfcc1838002cc890",
"versionType": "git"
},
{
"status": "affected",
"version": "0f44e9da465ea259b6c9f31a627f3c50a16e1679",
"versionType": "git"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.91",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.31",
"versionType": "semver"
},
{
"lessThan": "4.16",
"status": "affected",
"version": "4.15.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.16"
},
{
"lessThan": "4.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.91",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.15.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent lock owner use-after-free during client teardown\n\n__destroy_client() releases a client\u0027s open owners, but a lock owner\nwhose only reference is a blocked lock (nbl) stays on\ncl_ownerstr_hashtbl. client_has_state() does not count a bare owner,\nso DESTROY_CLIENTID can reach __destroy_client() with such owners\npresent.\n\n__destroy_client() then walks the table, calling remove_blocked_locks()\non each owner without a reference. Freeing a blocked lock drops the\nowner reference held via flc_owner. The per-net laundromat reaps\nblocked locks from nn-\u003eblocked_locks_lru independently of client state.\nThe two paths share blocked_locks_lock only for the list splice, not\nthe owner\u0027s lifetime. The laundromat therefore frees the owner as\n__destroy_client() dereferences it, a NULL dereference in\nremove_blocked_locks().\n\nnfsd4_release_lockowner() holds a reference across the same call;\n__destroy_client() does not. Hold cl_lock across the walk, taking a\nreference and unhashing each owner, then drop it before\nremove_blocked_locks() and nfs4_put_stateowner(), which take\nblocked_locks_lock and cl_lock."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd NFSv4.1 client teardown and blocked-lock handling, reached by remote COMPOUND RPCs on the in-kernel NFS server (TCP/UDP 2049). A network client drives EXCHANGE_ID, CREATE_SESSION, OPEN, blocking LOCK, DESTROY_SESSION, and DESTROY_CLIENTID into __destroy_client().\nAC:L - The attacker controls both sides of the race: one client holds a conflicting lock while another queues a blocked lock, then DESTROY_CLIENTID races with lock-grant/CB_NOTIFY_LOCK or the laundromat freeing that lockowner. Concurrent NFS requests create the race, and it can be retried.\nPR:N - Typical nfsd deployments use AUTH_SYS, which does not cryptographically authenticate the client. A remote peer that can reach an export can create NFSv4.1 state and issue DESTROY_CLIENTID without a local account or kernel capabilities on the server.\nUI:N - Exploitation requires only attacker-sent NFS RPCs against a running nfsd export. No victim user action such as mounting a filesystem or opening a local file on the server is required.\nS:U - The use-after-free occurs in kernel nfsd lock-owner state on the NFS server host and does not cross a separate security authority such as a VM, guest/host, or IOMMU boundary.\nC:H - This is a use-after-free of the nfs4_lockowner slab object. Reclaiming the freed owner lets an attacker control later reads of so_client and related pointers in remove_blocked_locks(), yielding a kernel information-disclosure primitive.\nI:H - The same UAF is exploitable for integrity: the freed lockowner includes so_ops function pointers and lo_blocked list heads, so heap reuse can hijack control flow or corrupt list pointers for an arbitrary kernel write.\nA:H - The bug is a kernel use-after-free of the lock owner and was observed as a NULL dereference in remove_blocked_locks(), which can oops or panic nfsd and take down the server."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:33.792Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/42d7954b0a1907d4ef122aef94561952a033cdc3"
},
{
"url": "https://git.kernel.org/stable/c/bb38ff8b4dafbbd1781ad37cd96722fdf2cd972a"
},
{
"url": "https://git.kernel.org/stable/c/b8bad5a11416b26cc7fd4b18fba46d75ff636558"
},
{
"url": "https://git.kernel.org/stable/c/1ce74d1b7770e69735e8f8e509807af4ff9c8ee7"
},
{
"url": "https://git.kernel.org/stable/c/a6ead6fff3a7d03e49845f048f7000a2e0d34431"
},
{
"url": "https://git.kernel.org/stable/c/4804c58f73a80d12df1de323bf97a164f6ee8743"
},
{
"url": "https://git.kernel.org/stable/c/8cf4ff0a7c083dd5e0067f517d63979b74b66649"
},
{
"url": "https://git.kernel.org/stable/c/5e2fa29d223a9a1e6a948e40b109d09081d1decd"
}
],
"title": "NFSD: Prevent lock owner use-after-free during client teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89662",
"datePublished": "2026-09-11T19:45:49.833Z",
"dateReserved": "2026-09-11T19:38:34.744Z",
"dateUpdated": "2026-10-19T08:50:33.792Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80721 (GCVE-0-2026-80721)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: ensure no dangling hcon references in iso_conn
After iso_conn_del(), ISO sockets should not dereference the hcon any
more. Currently, clearing iso_conn::hcon relies on iso_conn_del()
releasing the last reference to the iso_conn.
Simplify this by explicitly clearing conn->hcon in iso_conn_del(), to
avoid more complex reasoning on races about who holds the last
reference.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: f53e7489273dc2bb307bf50f319b3762d45534f0 Version: a58d0f5dac322e16cc75334d000666512341bde5 Version: 6.11.11 ≤ Version: 6.12.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80721",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:20:54.409613Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:35.259Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e941799c31f68e67ce0976efb38a79101f921b64",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "cdce8af9291d8a1f8916c271de029bf558d9e8ec",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "aa9f7cb2bd3a2be998ceb739fc9a2f986eba43eb",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"status": "affected",
"version": "f53e7489273dc2bb307bf50f319b3762d45534f0",
"versionType": "git"
},
{
"status": "affected",
"version": "a58d0f5dac322e16cc75334d000666512341bde5",
"versionType": "git"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.11",
"versionType": "semver"
},
{
"lessThan": "6.13",
"status": "affected",
"version": "6.12.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.12.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: ensure no dangling hcon references in iso_conn\n\nAfter iso_conn_del(), ISO sockets should not dereference the hcon any\nmore. Currently, clearing iso_conn::hcon relies on iso_conn_del()\nreleasing the last reference to the iso_conn.\n\nSimplify this by explicitly clearing conn-\u003ehcon in iso_conn_del(), to\navoid more complex reasoning on races about who holds the last\nreference."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is in Bluetooth ISO connection teardown (iso_conn_del/iso_conn_free); reachable when an adjacent peer triggers HCI disconnect/connect-failure events or sends ISO traffic processed by iso_recv, without network or physical USB access.\nAC:L - An adjacent attacker controls both sides of the refcount race by timing remote disconnects and ISO packets against local teardown; no rare layout or victim-specific state beyond an active ISO session is required.\nPR:N - No local privileges are required on the victim; an unauthenticated adjacent Bluetooth peer can trigger iso_disconn_cfm/iso_connect_cfm teardown on phones and desktops with Bluetooth and LE Audio/ISO enabled.\nUI:N - Exploitation needs no victim interaction during the attack; once Bluetooth is on and an ISO link exists (e.g., LE Audio), remote disconnect and ISO traffic alone can hit the race.\nS:U - The flaw causes kernel heap use-after-free on hci_conn via dangling iso_conn::hcon references; impact stays within kernel memory safety, not a VM escape or cross-authority boundary.\nC:H - After hci_conn_del frees hcon, iso_conn still holds conn-\u003ehcon; subsequent iso_conn_free or socket paths dereference freed hci_conn memory, a classic UAF read primitive.\nI:H - Use-after-free on hci_conn enables corrupting connection management fields and hci_conn_drop state; such kernel heap UAF bugs are routinely leveraged for arbitrary write and code execution.\nA:H - Dereferencing freed hci_conn in iso_conn_free or ISO socket teardown reliably causes kernel oops or panic, giving unprivileged adjacent attackers a repeatable denial-of-service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-30T07:08:36.447Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e941799c31f68e67ce0976efb38a79101f921b64"
},
{
"url": "https://git.kernel.org/stable/c/cdce8af9291d8a1f8916c271de029bf558d9e8ec"
},
{
"url": "https://git.kernel.org/stable/c/aa9f7cb2bd3a2be998ceb739fc9a2f986eba43eb"
}
],
"title": "Bluetooth: ISO: ensure no dangling hcon references in iso_conn",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80721",
"datePublished": "2026-08-28T06:53:17.278Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-10-16T19:26:35.259Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72399 (GCVE-0-2026-72399)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: enetc: check the number of BDs needed for xdp_frame
The size of xdp_redirect_arr array is ENETC_MAX_SKB_FRAGS. However, the
number of fragments contained in xdp_frame may be greater than or equal
to ENETC_MAX_SKB_FRAGS, which will cause the access to xdp_redirect_arr
to be out of bounds.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 Version: 9d2b68cc108db2fdb35022ed2d88cfb305c441a6 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/freescale/enetc/enetc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1ecb199b0e6d12ab6c26c0b7edf1a8f4472d9aed",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
},
{
"lessThan": "f55276160ffad3e235b657ee4b7304eb99b90e5c",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
},
{
"lessThan": "cfbc6e9b84dcc0aa2d65c84ea4745af327763209",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
},
{
"lessThan": "1681cc7974a6123f5d5740b03bc11e4784bd2542",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
},
{
"lessThan": "d22829101ab675607ad6c3d420fb3ab875f46bbb",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
},
{
"lessThan": "555c5475e787802eeae0d2b91c2f66c330db2767",
"status": "affected",
"version": "9d2b68cc108db2fdb35022ed2d88cfb305c441a6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/freescale/enetc/enetc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: enetc: check the number of BDs needed for xdp_frame\n\nThe size of xdp_redirect_arr array is ENETC_MAX_SKB_FRAGS. However, the\nnumber of fragments contained in xdp_frame may be greater than or equal\nto ENETC_MAX_SKB_FRAGS, which will cause the access to xdp_redirect_arr\nto be out of bounds."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote attackers can deliver multi-fragment frames to an XDP-enabled ingress path that bpf_redirect_map/devmap forwards to an ENETC PF netdev, reaching enetc_xdp_xmit via the standard XDP_REDIRECT flush path without local access.\nAC:L - Once XDP redirect to ENETC is deployed, an attacker can reliably craft or segment traffic to produce xdp_frames with nr_frags+1\u003e13; no race or uncontrollable memory layout is required to trigger the out-of-bounds write.\nPR:N - Exploitation requires no attacker privileges when XDP redirect is pre-deployed on the gateway (normal for edge filtering); unprivileged users with CAP_NET_ADMIN via user namespaces can also attach the needed BPF/XDP programs.\nUI:N - No victim interaction is required beyond sending crafted network traffic; exploitation is fully attacker-driven once the XDP redirect datapath exists.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same kernel/host security boundary, not a cross-VM or IOMMU scope change.\nC:H - Stack out-of-bounds writes of enetc_tx_swbd structures past a 13-element array corrupt adjacent stack data and pointers, providing a memory-corruption primitive that can be leveraged for arbitrary kernel memory disclosure.\nI:H - The overflow writes attacker-influenced enetc_tx_swbd fields (DMA addresses, lengths, frame pointers) beyond the buffer bounds, enabling heap/stack corruption suitable for arbitrary write and potential code execution.\nA:H - Corrupting stack-resident transmit metadata and pointers in enetc_xdp_xmit can cause immediate kernel oops/panic or hung transmit paths, constituting total loss of availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:41.891Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ecb199b0e6d12ab6c26c0b7edf1a8f4472d9aed"
},
{
"url": "https://git.kernel.org/stable/c/f55276160ffad3e235b657ee4b7304eb99b90e5c"
},
{
"url": "https://git.kernel.org/stable/c/cfbc6e9b84dcc0aa2d65c84ea4745af327763209"
},
{
"url": "https://git.kernel.org/stable/c/1681cc7974a6123f5d5740b03bc11e4784bd2542"
},
{
"url": "https://git.kernel.org/stable/c/d22829101ab675607ad6c3d420fb3ab875f46bbb"
},
{
"url": "https://git.kernel.org/stable/c/555c5475e787802eeae0d2b91c2f66c330db2767"
}
],
"title": "net: enetc: check the number of BDs needed for xdp_frame",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72399",
"datePublished": "2026-08-15T05:56:24.926Z",
"dateReserved": "2026-08-09T03:40:39.925Z",
"dateUpdated": "2026-08-17T05:43:41.891Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93207 (GCVE-0-2026-93207)
Vulnerability from cvelistv5
Published
2026-09-24 15:10
Modified
2026-10-19 09:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: Zero rpc_gss_wire_cred at svcauth_gss_decode_credbody() entry
svcauth_gss_decode_credbody() writes the caller's
rpc_gss_wire_cred field by field and assigns gc_ctx.len only on
the success tail. The caller storage is svcdata->clcred, which
lives in the per-svc_rqst gss_svc_data and is reused across
requests. Early decode failures leave partially decoded state
mixed with residue from the prior request.
The trailing body_len tightness check is the sharpest case:
xdr_stream_decode_opaque_inline() has already written gc_ctx.data
with a borrowed inline pointer into the current request's XDR
pages, but gc_ctx.len retains its prior value. Once the request
pages are released the pooled clcred carries a dangling pointer
paired with a stale length.
Zero the caller's rpc_gss_wire_cred at function entry so that
every early-return path leaves a deterministic all-zero cred.
On the trailing tightness-check path, gc_ctx.len is now zero
instead of stale, which neuters length-driven consumers such as
gss_svc_searchbyctx() that would otherwise walk the dangling
data pointer.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/svcauth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "56b29d62017c7dd1718d060dd5b3a2ce61095d0c",
"status": "affected",
"version": "b0bc53470d1af01f62a0fe2d405cf56477804863",
"versionType": "git"
},
{
"lessThan": "0e18641708eaa8bc3c1ff338cd844aeadbd52bac",
"status": "affected",
"version": "b0bc53470d1af01f62a0fe2d405cf56477804863",
"versionType": "git"
},
{
"lessThan": "e0778464049b0238f2915a40007a4154f86cf351",
"status": "affected",
"version": "b0bc53470d1af01f62a0fe2d405cf56477804863",
"versionType": "git"
},
{
"lessThan": "0fa8a8acae57e6373962741d5b06d13f44aba6a9",
"status": "affected",
"version": "b0bc53470d1af01f62a0fe2d405cf56477804863",
"versionType": "git"
},
{
"lessThan": "11539e8fcce0b0af062ae5fecf7b3676c2f7aeed",
"status": "affected",
"version": "b0bc53470d1af01f62a0fe2d405cf56477804863",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/svcauth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: Zero rpc_gss_wire_cred at svcauth_gss_decode_credbody() entry\n\nsvcauth_gss_decode_credbody() writes the caller\u0027s\nrpc_gss_wire_cred field by field and assigns gc_ctx.len only on\nthe success tail. The caller storage is svcdata-\u003eclcred, which\nlives in the per-svc_rqst gss_svc_data and is reused across\nrequests. Early decode failures leave partially decoded state\nmixed with residue from the prior request.\n\nThe trailing body_len tightness check is the sharpest case:\nxdr_stream_decode_opaque_inline() has already written gc_ctx.data\nwith a borrowed inline pointer into the current request\u0027s XDR\npages, but gc_ctx.len retains its prior value. Once the request\npages are released the pooled clcred carries a dangling pointer\npaired with a stale length.\n\nZero the caller\u0027s rpc_gss_wire_cred at function entry so that\nevery early-return path leaves a deterministic all-zero cred.\nOn the trailing tightness-check path, gc_ctx.len is now zero\ninstead of stale, which neuters length-driven consumers such as\ngss_svc_searchbyctx() that would otherwise walk the dangling\ndata pointer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote NFS/SUNRPC peer sends an RPC Call with flavor RPC_AUTH_GSS whose rpc_gss_cred_t fails the body_len tightness check in svcauth_gss_decode_credbody(); those cred bytes arrive on nfsd TCP/UDP 2049 via svc_recv \u2192 svc_tcp_recvfrom/svc_udp_recvfrom \u2192 svc_process \u2192 svc_process_common \u2192 svc_authenticate \u2192 svcauth_gss_accept.\nAC:L - The attacker first sends a well-formed RPCSEC_GSS cred so decode assigns gc_ctx.len, then a second Call where xdr_stream_decode_opaque_inline() succeeds but body_len != XDR_UNIT*5+xdr_align_size(handle_len). Both hit the same nfsd thread\u0027s reused gss_svc_data.clcred; the tightness failure is deterministic with no race.\nPR:N - svcauth_gss_decode_credbody() is the RPC_AUTH_GSS credential decoder inside svcauth_gss_accept(), reached before gss_svc_searchbyctx(), gss_verify_mic(), or nfsd export/client checks. Flavor 6 with auth_rpcgss registered (RPCSEC_GSS_KRB5 defaults y) needs no Kerberos ticket, uid, or capability.\nUI:N - nfsd processes each inbound RPC in the service thread via svc_process with no local user or administrator action; the attacker alone sends the residue-planting Call and the tightness-fail Call.\nS:U - The dangling gc_ctx pointer, consume_skb() of the UDP receive skb, and any later kmemdup of that pointer occur in the host nfsd/SUNRPC kernel. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - On tightness failure, xdr_stream_decode_opaque_inline() writes gc_ctx.data into the UDP in-place skb (svc_udp_recvfrom) while gc_ctx.len stays the prior handle length. svc_udp_release_ctxt() consume_skb() then frees that skb; gss_svc_searchbyctx()\u2192dup_to_netobj() kmemdups handle-\u003elen bytes from the dangling pointer, a UAF read of reclaimed kernel memory.\nI:H - The leftover clcred.gc_ctx is a use-after-free of skb-backed memory with an attacker-chosen stale length planted by the prior GSS handle. Spraying the consumed skb lets length-driven consumers of that netobj treat attacker bytes as kernel objects, so integrity impact is High as for other kernel UAFs.\nA:H - Walking gc_ctx.data after consume_skb() oopses the nfsd thread when the skb is reused or unmapped, and the attacker can repeat tightness-fail Calls to kill service threads or panic the host where panic_on_oops is set."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:07:19.480Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/56b29d62017c7dd1718d060dd5b3a2ce61095d0c"
},
{
"url": "https://git.kernel.org/stable/c/0e18641708eaa8bc3c1ff338cd844aeadbd52bac"
},
{
"url": "https://git.kernel.org/stable/c/e0778464049b0238f2915a40007a4154f86cf351"
},
{
"url": "https://git.kernel.org/stable/c/0fa8a8acae57e6373962741d5b06d13f44aba6a9"
},
{
"url": "https://git.kernel.org/stable/c/11539e8fcce0b0af062ae5fecf7b3676c2f7aeed"
}
],
"title": "SUNRPC: Zero rpc_gss_wire_cred at svcauth_gss_decode_credbody() entry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93207",
"datePublished": "2026-09-24T15:10:30.942Z",
"dateReserved": "2026-09-17T16:02:15.093Z",
"dateUpdated": "2026-10-19T09:07:19.480Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89798 (GCVE-0-2026-89798)
Vulnerability from cvelistv5
Published
2026-09-16 10:30
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
rpcrdma: arm rn_done before publishing the notification
rpcrdma_rn_register() inserts @rn into rd_xa with xa_alloc() before
storing the caller's callback in rn->rn_done. The xarray makes @rn
reachable to rpcrdma_remove_one(), which walks rd_xa and invokes
rn->rn_done(rn) for every registered notification. A device removal
that races a fresh registration can therefore observe @rn with
rn_done still NULL, because the notification objects are zero
allocated by their owners, and call through a NULL function pointer.
Store rn->rn_done before xa_alloc() publishes @rn. The xarray's
store-side and load-side ordering then guarantees that any CPU which
finds @rn in rd_xa also observes the armed callback.
rpcrdma_rn_unregister() treats a non-NULL rn_done as the sentinel
for a completed registration, so the early store must not survive a
failed registration. Clear rn_done again when xa_alloc() fails.
Were it left set, the failed-accept cleanup path would call
rpcrdma_rn_unregister() on an @rn that was never inserted, erasing
an unrelated rd_xa slot and underflowing rd_kref.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/ib_client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f9fe3cad43c42d874a388583552b39b411d886eb",
"status": "affected",
"version": "7e86845a0346efc95fddaa97ce5cd6a8bda8c71c",
"versionType": "git"
},
{
"lessThan": "3c97b8e76ca2bba9e8770571413aed694068e78e",
"status": "affected",
"version": "7e86845a0346efc95fddaa97ce5cd6a8bda8c71c",
"versionType": "git"
},
{
"lessThan": "ea0408273ccf5df1fb52d9a1b9db4d31600dcb36",
"status": "affected",
"version": "7e86845a0346efc95fddaa97ce5cd6a8bda8c71c",
"versionType": "git"
},
{
"lessThan": "5b06f706374c37375bdff9d21cc10e61df925a92",
"status": "affected",
"version": "7e86845a0346efc95fddaa97ce5cd6a8bda8c71c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/ib_client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrpcrdma: arm rn_done before publishing the notification\n\nrpcrdma_rn_register() inserts @rn into rd_xa with xa_alloc() before\nstoring the caller\u0027s callback in rn-\u003ern_done. The xarray makes @rn\nreachable to rpcrdma_remove_one(), which walks rd_xa and invokes\nrn-\u003ern_done(rn) for every registered notification. A device removal\nthat races a fresh registration can therefore observe @rn with\nrn_done still NULL, because the notification objects are zero\nallocated by their owners, and call through a NULL function pointer.\n\nStore rn-\u003ern_done before xa_alloc() publishes @rn. The xarray\u0027s\nstore-side and load-side ordering then guarantees that any CPU which\nfinds @rn in rd_xa also observes the armed callback.\n\nrpcrdma_rn_unregister() treats a non-NULL rn_done as the sentinel\nfor a completed registration, so the early store must not survive a\nfailed registration. Clear rn_done again when xa_alloc() fails.\nWere it left set, the failed-accept cleanup path would call\nrpcrdma_rn_unregister() on an @rn that was never inserted, erasing\nan unrelated rd_xa slot and underflowing rd_kref."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:52.994Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f9fe3cad43c42d874a388583552b39b411d886eb"
},
{
"url": "https://git.kernel.org/stable/c/3c97b8e76ca2bba9e8770571413aed694068e78e"
},
{
"url": "https://git.kernel.org/stable/c/ea0408273ccf5df1fb52d9a1b9db4d31600dcb36"
},
{
"url": "https://git.kernel.org/stable/c/5b06f706374c37375bdff9d21cc10e61df925a92"
}
],
"title": "rpcrdma: arm rn_done before publishing the notification",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89798",
"datePublished": "2026-09-16T10:30:29.930Z",
"dateReserved": "2026-09-11T19:38:34.767Z",
"dateUpdated": "2026-10-19T08:52:52.994Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68198 (GCVE-0-2026-68198)
Vulnerability from cvelistv5
Published
2026-08-10 12:00
Modified
2026-10-19 18:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath6kl: fix use-after-free in aggr_reset_state()
The aggr_reset_state() function uses timer_delete() (non-synchronous)
for the aggregation timer before proceeding to delete TID state and
before the structure is freed by callers like aggr_module_destroy().
If the timer callback (aggr_timeout) is executing when aggr_reset_state()
is called, the callback will continue to access aggr_conn fields like
rx_tid[] and stat[] which may be freed immediately after by
kfree(aggr_info->aggr_conn) in aggr_module_destroy().
Additionally, the timer callback can re-arm itself via mod_timer() while
aggr_reset_state() is running, creating a more complex race condition.
Use timer_delete_sync() instead to ensure any running timer callback
has completed before returning.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 Version: bdcd81707973cf8aa9305337166f8ee842a050d4 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68198",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:45:39.924585Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T18:00:24.933Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/ath/ath6kl/txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a1bac650b2d6b1baab1f3e78e2e007a6e2948dde",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "2132a6db05846dd2318857d00e0c1291f9e41b29",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "17ff29cd8dbc977c97788a5f7c011ec807b58242",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "64af6534a085f49d6ed33338a19ab9cf0d0523c9",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "b5d618fd61b9069b4c0a6b487022dd3117ad5acc",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "18965470d41e69d3fc10eb62afae29d10f4cdfd1",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "a3313111b5d9046af60b370c93eec105b27380c1",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
},
{
"lessThan": "ba7debb4dd6427386862220e8335a53a4bfc235d",
"status": "affected",
"version": "bdcd81707973cf8aa9305337166f8ee842a050d4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/ath/ath6kl/txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath6kl: fix use-after-free in aggr_reset_state()\n\nThe aggr_reset_state() function uses timer_delete() (non-synchronous)\nfor the aggregation timer before proceeding to delete TID state and\nbefore the structure is freed by callers like aggr_module_destroy().\n\nIf the timer callback (aggr_timeout) is executing when aggr_reset_state()\nis called, the callback will continue to access aggr_conn fields like\nrx_tid[] and stat[] which may be freed immediately after by\nkfree(aggr_info-\u003eaggr_conn) in aggr_module_destroy().\n\nAdditionally, the timer callback can re-arm itself via mod_timer() while\naggr_reset_state() is running, creating a more complex race condition.\n\nUse timer_delete_sync() instead to ensure any running timer callback\nhas completed before returning."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - ath6kl is a WiFi driver; the race is driven by 802.11 frames from an adjacent attacker \u2014 a gapped A-MPDU sequence arms the reorder timer and a deauth/disassoc or connect/disconnect event drives aggr_reset_state() via ath6kl_disconnect_event()/ath6kl_connect_event()/ath6kl_sta_cleanup(). This requires radio proximity, not routable network access.\nAC:L - The attacker controls both sides of the race: transmitting out-of-order aggregated frames arms aggr_conn-\u003etimer, and a deauth/disassoc or reconnect immediately invokes aggr_reset_state(), which frees rx_tid[].hold_q and (via aggr_module_destroy) aggr_conn itself while aggr_timeout() may be running or re-arming via mod_timer(). The sequence can be repeated indefinitely until the window is hit.\nPR:N - No privileges or account on the target system are required; a rogue AP the client associates with, or an attacker injecting unprotected deauth/disassoc frames at a station with an active block-ack session, is sufficient. In AP mode, a station joining an open network can trigger the same path on disconnect.\nUI:N - The station already associated and receiving aggregated traffic is enough; deauth/disassoc handling and the resulting aggr_reset_state() run automatically in the driver with no action by the device owner.\nS:U - The use-after-free is on kernel heap memory owned by the ath6kl driver and stays within the kernel\u0027s own security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - The freed aggr_info_conn and hold_q allocations can be reclaimed and refilled with attacker-influenced data (e.g. sk_buff payloads from injected frames), so the concurrent callback reading rx_tid[]/stat[]/hold_q[] yields a controllable read primitive that can leak kernel memory contents.\nI:H - aggr_timeout() writes through the freed object \u2014 setting timer_scheduled, rxtid-\u003etimer_mon, dequeuing skbs from hold_q[] and calling mod_timer() on a freed timer_list \u2014 giving arbitrary writes into reclaimed heap objects and list corruption that is a classic path to control-flow hijack.\nA:H - Even without successful heap grooming, the use-after-free and the double-free/dangling-skb access in aggr_deque_frms() reliably produce slab corruption and a kernel oops or panic, and the attacker can repeat the trigger at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:06.548Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a1bac650b2d6b1baab1f3e78e2e007a6e2948dde"
},
{
"url": "https://git.kernel.org/stable/c/2132a6db05846dd2318857d00e0c1291f9e41b29"
},
{
"url": "https://git.kernel.org/stable/c/17ff29cd8dbc977c97788a5f7c011ec807b58242"
},
{
"url": "https://git.kernel.org/stable/c/64af6534a085f49d6ed33338a19ab9cf0d0523c9"
},
{
"url": "https://git.kernel.org/stable/c/b5d618fd61b9069b4c0a6b487022dd3117ad5acc"
},
{
"url": "https://git.kernel.org/stable/c/18965470d41e69d3fc10eb62afae29d10f4cdfd1"
},
{
"url": "https://git.kernel.org/stable/c/a3313111b5d9046af60b370c93eec105b27380c1"
},
{
"url": "https://git.kernel.org/stable/c/ba7debb4dd6427386862220e8335a53a4bfc235d"
}
],
"title": "wifi: ath6kl: fix use-after-free in aggr_reset_state()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68198",
"datePublished": "2026-08-10T12:00:16.718Z",
"dateReserved": "2026-07-30T09:28:09.374Z",
"dateUpdated": "2026-10-19T18:00:24.933Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72439 (GCVE-0-2026-72439)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid10: fix writes_pending leak on write request failures
raid10_make_request() acquires a writes_pending reference with
md_write_start() before dispatching write requests. Several failure
paths in raid10_write_request() complete the bio and return without
reaching the normal write completion path, causing the corresponding
md_write_end() to be skipped.
Make raid10_write_request() return a status indicating whether the write
request was successfully queued. This allows raid10_make_request() to
release the writes_pending reference with md_write_end() when a write
request fails.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: 39db562b3fedb93978a7e42dd216b306740959f8 Version: 5.15.111 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f076460c5205c9687059e5a3afeed37d2f2ceb6b",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "b6667d925c274910423385042edf18f6788dbceb",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "c642583adc136d4c70ce3c65c3f43e847d26c776",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "f94031c94eaebe14a7c9e91720064de0c5a54a6c",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "e045d6ed33f8faa3e3dd6dc33c62ec01e3ad275d",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"status": "affected",
"version": "39db562b3fedb93978a7e42dd216b306740959f8",
"versionType": "git"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.111",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.111",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid10: fix writes_pending leak on write request failures\n\nraid10_make_request() acquires a writes_pending reference with\nmd_write_start() before dispatching write requests. Several failure\npaths in raid10_write_request() complete the bio and return without\nreaching the normal write completion path, causing the corresponding\nmd_write_end() to be skipped.\n\nMake raid10_write_request() return a status indicating whether the write\nrequest was successfully queued. This allows raid10_make_request() to\nrelease the writes_pending reference with md_write_end() when a write\nrequest fails."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:56.123Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f076460c5205c9687059e5a3afeed37d2f2ceb6b"
},
{
"url": "https://git.kernel.org/stable/c/b6667d925c274910423385042edf18f6788dbceb"
},
{
"url": "https://git.kernel.org/stable/c/c642583adc136d4c70ce3c65c3f43e847d26c776"
},
{
"url": "https://git.kernel.org/stable/c/f94031c94eaebe14a7c9e91720064de0c5a54a6c"
},
{
"url": "https://git.kernel.org/stable/c/e045d6ed33f8faa3e3dd6dc33c62ec01e3ad275d"
}
],
"title": "md/raid10: fix writes_pending leak on write request failures",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72439",
"datePublished": "2026-08-15T05:56:52.023Z",
"dateReserved": "2026-08-09T03:40:39.930Z",
"dateUpdated": "2026-10-21T12:44:56.123Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74689 (GCVE-0-2026-74689)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/atm: fix slab-out-of-bounds read in vcc_setsockopt()
vcc_setsockopt() contained an ineffective optlen check:
if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname))
return -EINVAL;
If __SO_LEVEL_MATCH(optname, level) evaluated to false (e.g. if the caller
passed a mismatched level), the length check optlen != __SO_SIZE(optname)
was short-circuited and bypassed. Execution then fell through to switch(optname),
calling copy_from_sockptr() assuming optval contained sufficient space.
Furthermore, even if level matched, a cgroup BPF setsockopt filter could shrink
optlen after entry. Because copy_from_sockptr() on kernel pointers uses memcpy(),
this leads to a KASAN slab-out-of-bounds read when optlen is smaller than the
expected structure size.
Fix this by using copy_safe_from_sockptr(), which unconditionally validates
that optlen is at least the expected size before copying. Also change the local
'value' variable type from 'unsigned long' to 'int' so that SO_SETCLP matches
its sizeof(int) ABI encoding on 64-bit systems.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74689",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:36.506932Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:09.361Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/atm/common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b3bcd5d65ac03c15787b2a5b36c718e26a689336",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "35f258fee9ed358c6d0f57f91c30bf029c3724af",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6eb6af88710977eb529b558a07294874d8c40c4d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9f77c1ab382188f5b51982fab6d913443b6dc59f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2c5988c7349c0b64a7e0441bfc6e1dca54f7116a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d0c80dbb970439bd2eeb0e5effff8c16a5f4e1e3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/atm/common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/atm: fix slab-out-of-bounds read in vcc_setsockopt()\n\nvcc_setsockopt() contained an ineffective optlen check:\n if (__SO_LEVEL_MATCH(optname, level) \u0026\u0026 optlen != __SO_SIZE(optname))\n return -EINVAL;\n\nIf __SO_LEVEL_MATCH(optname, level) evaluated to false (e.g. if the caller\npassed a mismatched level), the length check optlen != __SO_SIZE(optname)\nwas short-circuited and bypassed. Execution then fell through to switch(optname),\ncalling copy_from_sockptr() assuming optval contained sufficient space.\n\nFurthermore, even if level matched, a cgroup BPF setsockopt filter could shrink\noptlen after entry. Because copy_from_sockptr() on kernel pointers uses memcpy(),\nthis leads to a KASAN slab-out-of-bounds read when optlen is smaller than the\nexpected structure size.\n\nFix this by using copy_safe_from_sockptr(), which unconditionally validates\nthat optlen is at least the expected size before copying. Also change the local\n\u0027value\u0027 variable type from \u0027unsigned long\u0027 to \u0027int\u0027 so that SO_SETCLP matches\nits sizeof(int) ABI encoding on 64-bit systems."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via the local setsockopt(2) syscall on an AF_ATMPVC/AF_ATMSVC socket (do_sock_setsockopt -\u003e pvc_setsockopt/svc_setsockopt -\u003e vcc_setsockopt); no remote ATM packet or network-facing handler invokes this path.\nAC:L - The attacker fully controls level, optname, and optlen; passing a mismatched level bypasses the short-circuited length check, and cgroup BPF setsockopt can shrink optlen after entry, deterministically triggering a full-size memcpy past a small kmalloc buffer with no race.\nPR:L - No capability check guards SO_ATMQOS or SO_SETCLP on unconnected ATM sockets; any unprivileged local user in init_net (required because ATM socket creation rejects non-init network namespaces) can open AF_ATMPVC sockets and issue the crafted setsockopt without CAP_NET_ADMIN.\nUI:N - The attacker triggers the out-of-bounds read entirely from their own process with a single crafted setsockopt call; no victim interaction or cooperation is required.\nS:U - Impact is kernel heap memory disclosure and potential crash within the host kernel security boundary; no VM escape, IOMMU bypass, or cross-sandbox boundary crossing occurs.\nC:H - copy_from_sockptr() performs a slab-out-of-bounds read of up to 92 bytes (struct atm_qos) or 8 bytes (SO_SETCLP) past a kmalloc buffer into kernel stack memory; adjacent slab contents can populate vcc-\u003eqos and be retrieved via subsequent SO_ATMQOS getsockopt.\nI:N - The defect is a pure out-of-bounds read with no arbitrary kernel write, heap corruption, or control-flow hijack primitive; although leaked bytes may influence vcc-\u003eqos if validation passes, no attacker-controlled data modification occurs.\nA:H - The KASAN-reported slab-out-of-bounds read triggers kernel oops on hardened kernels, and reading past a small kmalloc object into adjacent slab memory on production kernels risks faulting on unmapped redzone pages or corrupting adjacent objects leading to panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:33.932Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b3bcd5d65ac03c15787b2a5b36c718e26a689336"
},
{
"url": "https://git.kernel.org/stable/c/35f258fee9ed358c6d0f57f91c30bf029c3724af"
},
{
"url": "https://git.kernel.org/stable/c/6eb6af88710977eb529b558a07294874d8c40c4d"
},
{
"url": "https://git.kernel.org/stable/c/9f77c1ab382188f5b51982fab6d913443b6dc59f"
},
{
"url": "https://git.kernel.org/stable/c/2c5988c7349c0b64a7e0441bfc6e1dca54f7116a"
},
{
"url": "https://git.kernel.org/stable/c/d0c80dbb970439bd2eeb0e5effff8c16a5f4e1e3"
}
],
"title": "net/atm: fix slab-out-of-bounds read in vcc_setsockopt()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74689",
"datePublished": "2026-08-22T15:32:54.034Z",
"dateReserved": "2026-08-15T05:44:03.926Z",
"dateUpdated": "2026-10-16T19:16:09.361Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89671 (GCVE-0-2026-89671)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: gate nfs3 setacl by argp->mask
nfsd3_proc_setacl() calls set_posix_acl() unconditionally for both
ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT, passing argp->acl_access and
argp->acl_default verbatim. The NFSv3 ACL decoder only populates
those pointers when the corresponding mask bit is set:
nfs3svc_decode_setaclargs()
if (args->mask & NFS_ACL) decode into acl_access
if (args->mask & NFS_DFACL) decode into acl_default
/* otherwise the pointer stays NULL (pc_argzero) */
nfsd3_proc_setacl()
set_posix_acl(.., ACL_TYPE_ACCESS, argp->acl_access)
set_posix_acl(.., ACL_TYPE_DEFAULT, argp->acl_default)
set_posix_acl(idmap, dentry, type, NULL) is the VFS "remove this
ACL type" operation. A NULL pointer that means "the client did not
send this arm" is therefore indistinguishable from "the client
asked to remove this ACL". A SETACL with mask=NFS_ACL silently
drops the directory's default ACL; mask=0 drops both.
The sibling nfsd3_proc_getacl() already consults argp->mask before
touching each arm; mirror that in setacl.
Fix by wrapping each set_posix_acl() call in the matching mask bit
check and initializing error to 0 before inode_lock so that a
request with neither bit set leaves the on-disk ACLs untouched and
returns nfs_ok. The out_drop_lock path and the unconditional
posix_acl_release() at out: are preserved; both NULL-tolerate the
skipped arms.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89671",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:25:43.543380Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:48.048Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs3acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3be1d8611dae4829e4608007db29f4a8748c37b2",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "68a80b26efdff1d09f8ae1773c6a915abb9e191d",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "b3bff820d068ea59767d4e91a3258231a879da5f",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "ff99ed007f065198fd723152405c22aa558f700b",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "453d7198a0ab07a12d46e0575861ac7b932da17e",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs3acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.13"
},
{
"lessThan": "2.6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: gate nfs3 setacl by argp-\u003emask\n\nnfsd3_proc_setacl() calls set_posix_acl() unconditionally for both\nACL_TYPE_ACCESS and ACL_TYPE_DEFAULT, passing argp-\u003eacl_access and\nargp-\u003eacl_default verbatim. The NFSv3 ACL decoder only populates\nthose pointers when the corresponding mask bit is set:\n\n nfs3svc_decode_setaclargs()\n if (args-\u003emask \u0026 NFS_ACL) decode into acl_access\n if (args-\u003emask \u0026 NFS_DFACL) decode into acl_default\n /* otherwise the pointer stays NULL (pc_argzero) */\n\n nfsd3_proc_setacl()\n set_posix_acl(.., ACL_TYPE_ACCESS, argp-\u003eacl_access)\n set_posix_acl(.., ACL_TYPE_DEFAULT, argp-\u003eacl_default)\n\nset_posix_acl(idmap, dentry, type, NULL) is the VFS \"remove this\nACL type\" operation. A NULL pointer that means \"the client did not\nsend this arm\" is therefore indistinguishable from \"the client\nasked to remove this ACL\". A SETACL with mask=NFS_ACL silently\ndrops the directory\u0027s default ACL; mask=0 drops both.\n\nThe sibling nfsd3_proc_getacl() already consults argp-\u003emask before\ntouching each arm; mirror that in setacl.\n\nFix by wrapping each set_posix_acl() call in the matching mask bit\ncheck and initializing error to 0 before inode_lock so that a\nrequest with neither bit set leaves the on-disk ACLs untouched and\nreturns nfs_ok. The out_drop_lock path and the unconditional\nposix_acl_release() at out: are preserved; both NULL-tolerate the\nskipped arms."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd3_proc_setacl() is NFSACL v3 SETACL (RPC program 100227) on the in-kernel NFS server, reached over TCP/UDP (typically port 2049) from a remote peer; no local syscall or physical access is required.\nAC:L - A single SETACL with mask omitting NFS_ACL and/or NFS_DFACL reliably deletes the corresponding POSIX ACL; there is no race or attacker-uncontrollable layout, and CONFIG_NFSD_V3_ACL is enabled on common distro NFS server kernels.\nPR:N - Default nfsd exports accept AUTH_UNIX and AUTH_NULL with no shared secret; AUTH_UNIX UIDs are attacker-chosen, so the caller spoofs the inode owner to pass inode_owner_or_capable() without any account on the server.\nUI:N - The attacker triggers the flaw by sending crafted NFSACL SETACL RPCs; no victim must mount a filesystem, open a file, or otherwise interact.\nS:U - Impact stays on POSIX ACL metadata of the exported filesystem in the same kernel/host security authority; this is not a VM escape, IOMMU bypass, or sandbox breakout.\nC:H - Removing an access ACL drops named-user/group entries that may be the only restriction beyond mode bits, and removing a directory default ACL stops inheritance of restrictive policy, so ACL-protected file contents can become readable.\nI:H - set_posix_acl(..., NULL) is the VFS remove-ACL operation, so an omitted mask bit silently deletes that ACL type on disk; mask=NFS_ACL strips the default ACL and mask=0 strips both, destroying access-control metadata.\nA:N - The path performs a defined VFS ACL-remove and does not oops, panic, hang, deadlock, or leak kernel memory, so nfsd and the host remain available."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:44.635Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3be1d8611dae4829e4608007db29f4a8748c37b2"
},
{
"url": "https://git.kernel.org/stable/c/68a80b26efdff1d09f8ae1773c6a915abb9e191d"
},
{
"url": "https://git.kernel.org/stable/c/b3bff820d068ea59767d4e91a3258231a879da5f"
},
{
"url": "https://git.kernel.org/stable/c/ff99ed007f065198fd723152405c22aa558f700b"
},
{
"url": "https://git.kernel.org/stable/c/453d7198a0ab07a12d46e0575861ac7b932da17e"
}
],
"title": "nfsd: gate nfs3 setacl by argp-\u003emask",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89671",
"datePublished": "2026-09-11T19:45:56.604Z",
"dateReserved": "2026-09-11T19:38:34.746Z",
"dateUpdated": "2026-10-19T08:50:44.635Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74662 (GCVE-0-2026-74662)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
inet: frags: publish queues before arming timer
inet_frag_create() arms the fragment queue timer before inserting the
queue into the fqdir rhashtable. If the namespace fragment timeout is
zero or negative, the timer can run before the queue is published.
The timer callback then marks the queue complete, tries to remove a node
that is not in the hash table yet, and drops the anticipated hash
reference. Creation can subsequently publish the completed queue without
restoring that reference, leaving a stale hash node after the caller drops
the remaining reference.
Publish the queue first and arm the timer while holding the queue lock.
This makes timer expiry wait until the queue is visible in the hash table,
so inet_frag_kill() can remove the node and balance the hash reference.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 648700f76b03b7e8149d13cc2bdb3355035258a9 Version: 493107105843f299662b3b664a83804645564f12 Version: 4.4.174 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74662",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:06.842861Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:07.802Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/inet_fragment.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f4e4dab62181b7fe7c011bed6fbef9fc3d48c769",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "4ed0681dc2c1e0538b79d2fc56190ffcb369dacd",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "08a04d7bfb9c103432561aff8a62b6872e694a6a",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "d3ffb89b2944672cf7bdd8e9ee577d2043b4a956",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "39c6c4b267b65f00e0b0335a2ae00cbe9e3174f0",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "9f904dd3e455750e5d4ec9b2f134835811b85a2f",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "928128865e43b197e30688dc1bc991592c97edcf",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"lessThan": "653d7ddf6cba867777a3d14c4f83ace008c5ad13",
"status": "affected",
"version": "648700f76b03b7e8149d13cc2bdb3355035258a9",
"versionType": "git"
},
{
"status": "affected",
"version": "493107105843f299662b3b664a83804645564f12",
"versionType": "git"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.174",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/inet_fragment.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.174",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ninet: frags: publish queues before arming timer\n\ninet_frag_create() arms the fragment queue timer before inserting the\nqueue into the fqdir rhashtable. If the namespace fragment timeout is\nzero or negative, the timer can run before the queue is published.\n\nThe timer callback then marks the queue complete, tries to remove a node\nthat is not in the hash table yet, and drops the anticipated hash\nreference. Creation can subsequently publish the completed queue without\nrestoring that reference, leaving a stale hash node after the caller drops\nthe remaining reference.\n\nPublish the queue first and arm the timer while holding the queue lock.\nThis makes timer expiry wait until the queue is visible in the hash table,\nso inet_frag_kill() can remove the node and balance the hash reference."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - IPv4/IPv6 fragments reach inet_frag_create() via remote receive paths (ip_defrag, ipv6_frag_rcv, nf_conntrack reassembly) on any Internet-facing host performing normal fragment reassembly before transport delivery.\nAC:L - Requires per-netns fragment timeout \u22640 so the armed timer expires during queue creation; attacker-settable with CAP_NET_ADMIN in user/net namespaces, and the timer/hash race is fully attacker-controlled and repeatable via crafted fragments.\nPR:N - No authentication or capability check gates IPv4/IPv6 fragment receive/reassembly before inet_frag_find(); remote peers can deliver the triggering fragmented traffic pre-authentication to hosts processing fragments.\nUI:N - Exploitation needs only crafted fragmented packet delivery; no victim action such as opening files, clicking links, or mounting filesystems is required.\nS:U - Corruption is confined to the kernel network stack in the same security authority; this is standard kernel memory corruption/privilege escalation, not a VM escape or IOMMU boundary bypass.\nC:H - Incorrect refcounting leaves a stale rhashtable entry pointing at a freed inet_frag_queue; subsequent fragment lookups dereference freed slab memory, enabling kernel information disclosure primitives.\nI:H - Follow-on fragment handling on the stale queue writes through freed inet_frag_queue and skb linkage fields, yielding kernel heap corruption exploitable for arbitrary modification or code execution.\nA:H - Freed-queue dereferences during reassembly can kernel oops or panic; attackers can retrigger the condition repeatedly by sending additional fragmented datagrams matching the same fragment key."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:58.332Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f4e4dab62181b7fe7c011bed6fbef9fc3d48c769"
},
{
"url": "https://git.kernel.org/stable/c/4ed0681dc2c1e0538b79d2fc56190ffcb369dacd"
},
{
"url": "https://git.kernel.org/stable/c/08a04d7bfb9c103432561aff8a62b6872e694a6a"
},
{
"url": "https://git.kernel.org/stable/c/d3ffb89b2944672cf7bdd8e9ee577d2043b4a956"
},
{
"url": "https://git.kernel.org/stable/c/39c6c4b267b65f00e0b0335a2ae00cbe9e3174f0"
},
{
"url": "https://git.kernel.org/stable/c/9f904dd3e455750e5d4ec9b2f134835811b85a2f"
},
{
"url": "https://git.kernel.org/stable/c/928128865e43b197e30688dc1bc991592c97edcf"
},
{
"url": "https://git.kernel.org/stable/c/653d7ddf6cba867777a3d14c4f83ace008c5ad13"
}
],
"title": "inet: frags: publish queues before arming timer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74662",
"datePublished": "2026-08-22T15:32:35.151Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-10-16T19:16:07.802Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97546 (GCVE-0-2026-97546)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: don't spin forever on zero-length dirents when salvaging them
LOLLM noticed that xrep_dir_recover_data can spin forever if it
encounters an unused dirent that claims to have length zero. Fix that,
and prevent the same thing from happening with a zero-length entry.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/dir_repair.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5442f0c56445618544a801fb4dae35aed87a1aaa",
"status": "affected",
"version": "b1991ee3e7cf852e95a3498801303cfbb4468681",
"versionType": "git"
},
{
"lessThan": "08754ebfa5c28e8d57316b1bd7a5a921a5e2e762",
"status": "affected",
"version": "b1991ee3e7cf852e95a3498801303cfbb4468681",
"versionType": "git"
},
{
"lessThan": "a455c83ce5dc1a2da33b1b84253d298372a8dfbd",
"status": "affected",
"version": "b1991ee3e7cf852e95a3498801303cfbb4468681",
"versionType": "git"
},
{
"lessThan": "9f84792b40d0c96833341602144574bf0bd14a6a",
"status": "affected",
"version": "b1991ee3e7cf852e95a3498801303cfbb4468681",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/dir_repair.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: don\u0027t spin forever on zero-length dirents when salvaging them\n\nLOLLM noticed that xrep_dir_recover_data can spin forever if it\nencounters an unused dirent that claims to have length zero. Fix that,\nand prevent the same thing from happening with a zero-length entry."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:09.393Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5442f0c56445618544a801fb4dae35aed87a1aaa"
},
{
"url": "https://git.kernel.org/stable/c/08754ebfa5c28e8d57316b1bd7a5a921a5e2e762"
},
{
"url": "https://git.kernel.org/stable/c/a455c83ce5dc1a2da33b1b84253d298372a8dfbd"
},
{
"url": "https://git.kernel.org/stable/c/9f84792b40d0c96833341602144574bf0bd14a6a"
}
],
"title": "xfs: don\u0027t spin forever on zero-length dirents when salvaging them",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97546",
"datePublished": "2026-09-25T10:21:41.029Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-19T09:09:09.393Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89550 (GCVE-0-2026-89550)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: svcauth_gss: enforce krb5 token minimum length
svcauth_gss_unwrap_priv() validates only an upper bound on the
wire-supplied opaque length before handing the buffer to
gss_unwrap():
if (len > xdr_stream_remaining(xdr))
goto unwrap_failed;
offset = xdr_stream_pos(xdr);
...
maj_stat = gss_unwrap(ctx, offset, offset + len, buf);
The wire value `len` flows unchanged as the upper bound into the
krb5 unwrap path, so a len in [0, 16] passes this check and is
handed to gss_unwrap(). For a krb5 v2 context that lands in
gss_krb5_unwrap_v2(), which reads the 16-byte RFC 4121 token
header fields at ptr+4 and ptr+6 and then calls rotate_left()
before any integrity check. With a sub-header length the header
reads run past the token, and _rotate_left()'s `shift %= buf->len`
path can divide by zero when buf->len has been driven to zero by
the truncated token. A header-only token (len == 16) is equally
invalid: with a non-zero RRC field and the opaque blob ending at
the XDR buffer boundary, rotate_left() builds a zero-length
subbuffer, reaching the same division.
Reject the token at the server entry point before it reaches the
krb5 unwrap core. A valid sealed RFC 4121 token must contain
the 16-byte header plus at least some encrypted payload.
Fix by adding a minimum-length check immediately after the
existing upper-bound check:
if (len <= GSS_KRB5_TOK_HDR_LEN)
goto unwrap_failed;
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89550",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:48.643149Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:43.119Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/svcauth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0ea5b0c7f212c2772d32c2b88287b89a9cdf6edd",
"status": "affected",
"version": "7c9fdcfb1b64c47ed618c103b617af3f86e1239c",
"versionType": "git"
},
{
"lessThan": "dd6afc6cab8c5d387d1ed2f069562ef7bdadd651",
"status": "affected",
"version": "7c9fdcfb1b64c47ed618c103b617af3f86e1239c",
"versionType": "git"
},
{
"lessThan": "de942dd8c2c8358bcad04ce44271954c48924423",
"status": "affected",
"version": "7c9fdcfb1b64c47ed618c103b617af3f86e1239c",
"versionType": "git"
},
{
"lessThan": "2eed1e6a976a44015c3ee78841fe336796e2b21c",
"status": "affected",
"version": "7c9fdcfb1b64c47ed618c103b617af3f86e1239c",
"versionType": "git"
},
{
"lessThan": "a919c5c88769cf8fb3ec071e6078d830bf512489",
"status": "affected",
"version": "7c9fdcfb1b64c47ed618c103b617af3f86e1239c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/svcauth_gss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.18"
},
{
"lessThan": "2.6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: svcauth_gss: enforce krb5 token minimum length\n\nsvcauth_gss_unwrap_priv() validates only an upper bound on the\nwire-supplied opaque length before handing the buffer to\ngss_unwrap():\n\n if (len \u003e xdr_stream_remaining(xdr))\n goto unwrap_failed;\n offset = xdr_stream_pos(xdr);\n ...\n maj_stat = gss_unwrap(ctx, offset, offset + len, buf);\n\nThe wire value `len` flows unchanged as the upper bound into the\nkrb5 unwrap path, so a len in [0, 16] passes this check and is\nhanded to gss_unwrap(). For a krb5 v2 context that lands in\ngss_krb5_unwrap_v2(), which reads the 16-byte RFC 4121 token\nheader fields at ptr+4 and ptr+6 and then calls rotate_left()\nbefore any integrity check. With a sub-header length the header\nreads run past the token, and _rotate_left()\u0027s `shift %= buf-\u003elen`\npath can divide by zero when buf-\u003elen has been driven to zero by\nthe truncated token. A header-only token (len == 16) is equally\ninvalid: with a non-zero RRC field and the opaque blob ending at\nthe XDR buffer boundary, rotate_left() builds a zero-length\nsubbuffer, reaching the same division.\n\nReject the token at the server entry point before it reaches the\nkrb5 unwrap core. A valid sealed RFC 4121 token must contain\nthe 16-byte header plus at least some encrypted payload.\n\nFix by adding a minimum-length check immediately after the\nexisting upper-bound check:\n\n if (len \u003c= GSS_KRB5_TOK_HDR_LEN)\n goto unwrap_failed;"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcauth_gss_unwrap_priv() is reached from in-kernel nfsd over TCP/2049 (svc_authenticate \u2192 svcauth_gss_accept) and from the NFSv4.0 RPC_AUTH_GSS callback service, so a remote RPCSEC_GSS peer delivers the short krb5 wrap token over the network.\nAC:L - A single RPCSEC_GSS DATA Call with gc_svc=PRIVACY and opaque length in [0, 16] plus a non-zero RRC in the cleartext RFC 4121 header deterministically hits gss_krb5_unwrap_v2() rotate_left() u32 wrap and shift%=0; no race or attacker-uncontrollable layout is required.\nPR:N - A malicious NFS server that already shares a krb5p GSS context can send a crafted NFSv4.0 GSS callback into the client\u0027s svcauth_gss_unwrap_priv() with no account or capability on the victim. That peer path is the highest-severity reachability.\nUI:N - nfsd unwraps the Call in the service thread with no local user action. On the client, the NFSv4.0 GSS callback path runs from the callback service thread once an NFS/RPCSEC_GSS mount exists; no additional mount, click, or open is required at attack time.\nS:U - The out-of-bounds accesses, divide-by-zero, and underflowed memmove corrupt host kernel SUNRPC/GSS state on the machine processing the RPC. This is ordinary same-host kernel impact, not a VM escape, IOMMU bypass, or other changed-scope boundary.\nC:H - Short tokens make gss_krb5_unwrap_v2() read EC/RRC past the token, and the dead BUG_ON lets unsigned movelen underflow into a ~UINT_MAX-byte memmove that copies kernel memory beyond the receive head; that unbounded read is C:H per kernel CNA memory-corruption guidance.\nI:H - The same underflowed memmove() writes near 4GiB through the RPC receive head, an out-of-bounds write exploitable for control-flow hijack. rotate_left() also ignores xdr_buf_subsegment() failure after u32 wrap and then writes through a subbuf whose length has wrapped.\nA:H - _rotate_left() does shift %= buf-\u003elen on a zero-length subbuffer (header-only token at the XDR boundary), a divide-by-zero oops/panic; the UINT_MAX memmove and wrapped-length rotate loop hang or oops nfsd/callback threads, and the attacker can repeat the RPC to deny service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:43.080Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0ea5b0c7f212c2772d32c2b88287b89a9cdf6edd"
},
{
"url": "https://git.kernel.org/stable/c/dd6afc6cab8c5d387d1ed2f069562ef7bdadd651"
},
{
"url": "https://git.kernel.org/stable/c/de942dd8c2c8358bcad04ce44271954c48924423"
},
{
"url": "https://git.kernel.org/stable/c/2eed1e6a976a44015c3ee78841fe336796e2b21c"
},
{
"url": "https://git.kernel.org/stable/c/a919c5c88769cf8fb3ec071e6078d830bf512489"
}
],
"title": "SUNRPC: svcauth_gss: enforce krb5 token minimum length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89550",
"datePublished": "2026-09-11T19:44:24.572Z",
"dateReserved": "2026-09-11T19:38:34.723Z",
"dateUpdated": "2026-10-19T08:48:43.080Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72347 (GCVE-0-2026-72347)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_connmark: reject invalid shift parameters
Revision 2 of the CONNMARK target accepts user-controlled shift
parameters and applies them to 32-bit mark values in
connmark_tg_shift().
A shift_bits value of 32 or more triggers an undefined-shift bug when
the rule is evaluated. Invalid shift_dir values are also accepted and
silently fall back to the left-shift path.
Reject invalid revision-2 shift parameters in connmark_tg_check() so
malformed rules fail at installation time, before they can reach the
packet path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d Version: 472a73e00757b971d613d796374d2727b2e4954d |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72347",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:35.760331Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:19.565Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_connmark.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d8ce63d928b457fba7ed1e302492dfd32293671c",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "9657bb11a6376ab0a79f05d433713d6944111e9d",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "8ace320ac4416f5e5fbcd065309fb2dfcce787b0",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "c3fa852d117b3fda72265e4230e3967db4a74fcf",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "4eef84b09a3836919360c4232b0f16651a155eec",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "230173cc6105bdfb2696d37e6e56687b003fbe63",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
},
{
"lessThan": "1b47026fb4b35bac850ad6e8a4ad7fc018e09ebc",
"status": "affected",
"version": "472a73e00757b971d613d796374d2727b2e4954d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_connmark.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_connmark: reject invalid shift parameters\n\nRevision 2 of the CONNMARK target accepts user-controlled shift\nparameters and applies them to 32-bit mark values in\nconnmark_tg_shift().\n\nA shift_bits value of 32 or more triggers an undefined-shift bug when\nthe rule is evaluated. Invalid shift_dir values are also accepted and\nsilently fall back to the left-shift path.\n\nReject invalid revision-2 shift parameters in connmark_tg_check() so\nmalformed rules fail at installation time, before they can reach the\npacket path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Malformed CONNMARK rev2 rules are installed via IPT_SO_SET_REPLACE setsockopt or nftables NFNetlink (nft_compat); per kernel CNA guidance netfilter/xtables rule setup is Local even though installed rules later evaluate on ingress/egress packets through ipt_do_table/ip6t_do_table.\nAC:L - The attacker fully controls shift_bits and shift_dir in xt_connmark_tginfo2 when installing the rev2 CONNMARK target and can send conntrack-tracked packets to reliably hit connmark_tg_shift(); no race, memory layout, or victim state outside attacker control is required.\nPR:L - Installing CONNMARK iptables/nftables rules requires CAP_NET_ADMIN in the target network namespace, obtainable by unprivileged users via unshare -Urn; ip_tables.c do_ipt_set_ctl() and nfnetlink.c nfnetlink_rcv() enforce ns_capable/netlink_net_capable against the namespace user_ns.\nUI:N - The attacker installs the malformed CONNMARK rev2 rule and generates matching conntrack-associated traffic in their namespace; no separate victim action such as opening files, mounting media, or clicking links is required.\nS:U - Undefined shift during xt_CONNMARK packet targeting and resulting mark corruption remain within the host kernel security authority; this is standard local kernel netfilter compromise, not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:L - Undefined-behavior shifts on 32-bit mark values produce attacker-influenced unpredictable ct-\u003emark and skb-\u003emark results observable through conntrack netlink and mark-based iptables/nftables matches, leaking altered connection-classification state within the namespace.\nI:H - Invalid shift_bits or shift_dir corrupt connmark_tg_shift() output written to nf_conn-\u003emark and skb-\u003emark, subverting mark-dependent firewall, policy-routing, QoS, and multi-tenant container egress controls on cloud routers and internet-facing servers.\nA:H - Evaluating a malformed CONNMARK rev2 rule with shift_bits\u003e=32 triggers C11 undefined-shift UB in connmark_tg_shift() during softirq netfilter processing; UBSAN-instrumented kernels panic on shift-out-of-bounds, and UB in the packet hot path can destabilize conntrack-driven forwarding."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:05.530Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d8ce63d928b457fba7ed1e302492dfd32293671c"
},
{
"url": "https://git.kernel.org/stable/c/9657bb11a6376ab0a79f05d433713d6944111e9d"
},
{
"url": "https://git.kernel.org/stable/c/8ace320ac4416f5e5fbcd065309fb2dfcce787b0"
},
{
"url": "https://git.kernel.org/stable/c/c3fa852d117b3fda72265e4230e3967db4a74fcf"
},
{
"url": "https://git.kernel.org/stable/c/4eef84b09a3836919360c4232b0f16651a155eec"
},
{
"url": "https://git.kernel.org/stable/c/230173cc6105bdfb2696d37e6e56687b003fbe63"
},
{
"url": "https://git.kernel.org/stable/c/1b47026fb4b35bac850ad6e8a4ad7fc018e09ebc"
}
],
"title": "netfilter: xt_connmark: reject invalid shift parameters",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72347",
"datePublished": "2026-08-15T05:55:51.665Z",
"dateReserved": "2026-08-09T03:40:39.920Z",
"dateUpdated": "2026-10-16T18:55:19.565Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46196 (GCVE-0-2026-46196)
Vulnerability from cvelistv5
Published
2026-05-28 09:36
Modified
2026-10-15 01:21
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracepoint: balance regfunc() on func_add() failure in tracepoint_add_func()
When a tracepoint goes through the 0 -> 1 transition, tracepoint_add_func()
invokes the subsystem's ext->regfunc() before attempting to install the
new probe via func_add(). If func_add() then fails (for example, when
allocate_probes() cannot allocate a new probe array under memory pressure
and returns -ENOMEM), the function returns the error without calling the
matching ext->unregfunc(), leaving the side effects of regfunc() behind
with no installed probe to justify them.
For syscall tracepoints this is particularly unpleasant: syscall_regfunc()
bumps sys_tracepoint_refcount and sets SYSCALL_TRACEPOINT on every task.
After a leaked failure, the refcount is stuck at a non-zero value with no
consumer, and every task continues paying the syscall trace entry/exit
overhead until reboot. Other subsystems providing regfunc()/unregfunc()
pairs exhibit similarly scoped persistent state.
Mirror the existing 1 -> 0 cleanup and call ext->unregfunc() in the
func_add() error path, gated on the same condition used there so the
unwind is symmetric with the registration.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 Version: 8cf868affdc459beee1a941df0cfaba1673740e3 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:21:17.317Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/tracepoint.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5787052e5f69beb649f3d6a80a8aa37d9e683e4e",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "4f1756d043e56ea2e9a6c858fb290a0cf6fc2251",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "36ff362235307af95152d510b53c2d9b8773a342",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "247ed8a969f981bfba3112fd4bb441eaa6cef59c",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "7bcadb3c2bc1cf60690e931aadd35fb7bd646a49",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "2c5b8eeea006eb694c81631cd5713d494b80be90",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "342829e042ac00f3d68d442ea92873fb6683f494",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
},
{
"lessThan": "fad217e16fded7f3c09f8637b0f6a224d58b5f2e",
"status": "affected",
"version": "8cf868affdc459beee1a941df0cfaba1673740e3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/tracepoint.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.140",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.88",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.30",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.140",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.88",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.30",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.7",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracepoint: balance regfunc() on func_add() failure in tracepoint_add_func()\n\nWhen a tracepoint goes through the 0 -\u003e 1 transition, tracepoint_add_func()\ninvokes the subsystem\u0027s ext-\u003eregfunc() before attempting to install the\nnew probe via func_add(). If func_add() then fails (for example, when\nallocate_probes() cannot allocate a new probe array under memory pressure\nand returns -ENOMEM), the function returns the error without calling the\nmatching ext-\u003eunregfunc(), leaving the side effects of regfunc() behind\nwith no installed probe to justify them.\n\nFor syscall tracepoints this is particularly unpleasant: syscall_regfunc()\nbumps sys_tracepoint_refcount and sets SYSCALL_TRACEPOINT on every task.\nAfter a leaked failure, the refcount is stuck at a non-zero value with no\nconsumer, and every task continues paying the syscall trace entry/exit\noverhead until reboot. Other subsystems providing regfunc()/unregfunc()\npairs exhibit similarly scoped persistent state.\n\nMirror the existing 1 -\u003e 0 cleanup and call ext-\u003eunregfunc() in the\nfunc_add() error path, gated on the same condition used there so the\nunwind is symmetric with the registration."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-19T11:59:59.175Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5787052e5f69beb649f3d6a80a8aa37d9e683e4e"
},
{
"url": "https://git.kernel.org/stable/c/4f1756d043e56ea2e9a6c858fb290a0cf6fc2251"
},
{
"url": "https://git.kernel.org/stable/c/36ff362235307af95152d510b53c2d9b8773a342"
},
{
"url": "https://git.kernel.org/stable/c/247ed8a969f981bfba3112fd4bb441eaa6cef59c"
},
{
"url": "https://git.kernel.org/stable/c/7bcadb3c2bc1cf60690e931aadd35fb7bd646a49"
},
{
"url": "https://git.kernel.org/stable/c/2c5b8eeea006eb694c81631cd5713d494b80be90"
},
{
"url": "https://git.kernel.org/stable/c/342829e042ac00f3d68d442ea92873fb6683f494"
},
{
"url": "https://git.kernel.org/stable/c/fad217e16fded7f3c09f8637b0f6a224d58b5f2e"
}
],
"title": "tracepoint: balance regfunc() on func_add() failure in tracepoint_add_func()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46196",
"datePublished": "2026-05-28T09:36:49.293Z",
"dateReserved": "2026-05-13T15:03:33.104Z",
"dateUpdated": "2026-10-15T01:21:17.317Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68376 (GCVE-0-2026-68376)
Vulnerability from cvelistv5
Published
2026-08-10 12:03
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix auth_hmacs array size in struct sctp_cookie
The auth_hmacs array in struct sctp_cookie is supposed to store a complete
SCTP_AUTH_HMAC_ALGO parameter, which consists of a struct sctp_paramhdr
followed by N HMAC identifiers.
However, the array size was calculated using an extra 2 bytes instead of
sizeof(struct sctp_paramhdr), which is 4 bytes. When four HMAC identifiers
are configured, the HMAC-ALGO parameter stored in the endpoint is larger
than the auth_hmacs buffer in the cookie.
As a result, sctp_association_init() copies beyond the end of auth_hmacs
when initializing the association, corrupting the adjacent auth_chunks
field. This can lead to an invalid HMAC identifier being accepted and later
cause an out-of-bounds read in sctp_auth_get_hmac().
Fix the array size calculation by including the full SCTP parameter header
size.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 Version: 1f485649f52929d9937b346a920a522a7363e202 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68376",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:35.941607Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:06.621Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/sctp/structs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "317731d01b03c529809df36d3a7d149677a8729d",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "0528485f27016a42804abe01aa61b39d85fa803e",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "ee5e65964f456adfe14d526fba0bd055de98ecf3",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "0b4414e43e0861d67276031cc21401d7e87de3da",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "d0a59ba58578e2b330fff80a44fe519f3ba7d8c7",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "a8d20ba0ab518c9ccbcde258f25fc1ee6e51d5db",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "3aa40c3bccac2312ea7cf97f329190637f972b5d",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "e0b5252a59383b77d1b8dbeda00b7184dd95f4d3",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/sctp/structs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.24"
},
{
"lessThan": "2.6.24",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.24",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix auth_hmacs array size in struct sctp_cookie\n\nThe auth_hmacs array in struct sctp_cookie is supposed to store a complete\nSCTP_AUTH_HMAC_ALGO parameter, which consists of a struct sctp_paramhdr\nfollowed by N HMAC identifiers.\n\nHowever, the array size was calculated using an extra 2 bytes instead of\nsizeof(struct sctp_paramhdr), which is 4 bytes. When four HMAC identifiers\nare configured, the HMAC-ALGO parameter stored in the endpoint is larger\nthan the auth_hmacs buffer in the cookie.\n\nAs a result, sctp_association_init() copies beyond the end of auth_hmacs\nwhen initializing the association, corrupting the adjacent auth_chunks\nfield. This can lead to an invalid HMAC identifier being accepted and later\ncause an out-of-bounds read in sctp_auth_get_hmac().\n\nFix the array size calculation by including the full SCTP parameter header\nsize."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The out-of-bounds index is taken directly from the `hmac_id` field of an AUTH chunk received from a remote SCTP peer and processed in sctp_sf_eat_auth()/sctp_sf_authenticate(), which is the normal SCTP packet-receive path in net/sctp.\nAC:H - The overflow only occurs when the victim endpoint was configured with exactly four HMAC identifiers via setsockopt(SCTP_HMAC_IDENT); three or fewer fit the buffer exactly. That local socket configuration is beyond a remote attacker\u0027s control, though a local user can arrange it and then attack over loopback.\nPR:N - Once the endpoint is so configured, any peer that completes an ordinary SCTP handshake can send the malformed AUTH chunk; the bogus hmac_id is accepted and dereferenced before any shared-key or HMAC verification, so no credentials of any kind are needed.\nUI:N - The AUTH chunk is consumed automatically by the kernel SCTP state machine on packet receipt; no action by any local user or administrator is needed at attack time.\nS:U - The corruption and the subsequent out-of-bounds accesses are confined to kernel memory within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - sctp_auth_get_hmac() reads far past the 4-entry sctp_hmac_list, and on kernels before the HMAC library conversion sctp_auth_calculate_hmac() reads a function-table pointer ~262 KB beyond the 4-pointer ep-\u003eauth_hmacs heap array; the accepted/rejected signature length acts as an oracle leaking the out-of-bounds value.\nI:H - The wild crypto_shash pointer fetched out of bounds is passed straight to crypto_shash_setkey()/crypto_shash_tfm_digest(), giving an attacker-groomable indirect call and write target; on current kernels a fixed 32-byte HMAC is written into a digest area sized from out-of-bounds data.\nA:H - Dereferencing an out-of-bounds heap pointer as a crypto transform, or writing a 32-byte digest into an undersized skb region, reliably oopses or panics the kernel, and the attack can be repeated on every association."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:34:35.759Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/317731d01b03c529809df36d3a7d149677a8729d"
},
{
"url": "https://git.kernel.org/stable/c/0528485f27016a42804abe01aa61b39d85fa803e"
},
{
"url": "https://git.kernel.org/stable/c/ee5e65964f456adfe14d526fba0bd055de98ecf3"
},
{
"url": "https://git.kernel.org/stable/c/0b4414e43e0861d67276031cc21401d7e87de3da"
},
{
"url": "https://git.kernel.org/stable/c/d0a59ba58578e2b330fff80a44fe519f3ba7d8c7"
},
{
"url": "https://git.kernel.org/stable/c/a8d20ba0ab518c9ccbcde258f25fc1ee6e51d5db"
},
{
"url": "https://git.kernel.org/stable/c/3aa40c3bccac2312ea7cf97f329190637f972b5d"
},
{
"url": "https://git.kernel.org/stable/c/e0b5252a59383b77d1b8dbeda00b7184dd95f4d3"
}
],
"title": "sctp: fix auth_hmacs array size in struct sctp_cookie",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68376",
"datePublished": "2026-08-10T12:03:54.666Z",
"dateReserved": "2026-07-30T09:28:09.386Z",
"dateUpdated": "2026-10-19T21:09:06.621Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93110 (GCVE-0-2026-93110)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Wait for RCU callbacks before unloading ib_core
put_gid_ndev() is queued with call_rcu() and implemented in ib_core.
Stopping the workqueues does not drain callbacks already queued, so RCU
could invoke it after the module code has been unloaded.
synchronize_rcu() does not wait for callbacks. Wait for them after all
producers have stopped.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 Version: 943bd984b108b3bb778790c2da4ae8d186b547e6 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82dfd1df456227279b1c8c648983a530f2612098",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "1646e123e56c3ad679fbfb571e8eef6386efb729",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "8e4f1677c09d75d738099f42afcf65d8587b664a",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "7853af5f15738dc00aebaa1fc9f1f0df40f6f603",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "0d5817fa4819abdc445fa77b5be4f0d49334a864",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "9d998297fdaf47492f6679287f6552879d1a7e3a",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "48b72fa0d209a92fb51b834a6080171cfa207b2c",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
},
{
"lessThan": "7d75592114d1664623c8cf191a12b38052c04483",
"status": "affected",
"version": "943bd984b108b3bb778790c2da4ae8d186b547e6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Wait for RCU callbacks before unloading ib_core\n\nput_gid_ndev() is queued with call_rcu() and implemented in ib_core.\nStopping the workqueues does not drain callbacks already queued, so RCU\ncould invoke it after the module code has been unloaded.\n\nsynchronize_rcu() does not wait for callbacks. Wait for them after all\nproducers have stopped."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:43.865Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82dfd1df456227279b1c8c648983a530f2612098"
},
{
"url": "https://git.kernel.org/stable/c/1646e123e56c3ad679fbfb571e8eef6386efb729"
},
{
"url": "https://git.kernel.org/stable/c/8e4f1677c09d75d738099f42afcf65d8587b664a"
},
{
"url": "https://git.kernel.org/stable/c/7853af5f15738dc00aebaa1fc9f1f0df40f6f603"
},
{
"url": "https://git.kernel.org/stable/c/0d5817fa4819abdc445fa77b5be4f0d49334a864"
},
{
"url": "https://git.kernel.org/stable/c/9d998297fdaf47492f6679287f6552879d1a7e3a"
},
{
"url": "https://git.kernel.org/stable/c/48b72fa0d209a92fb51b834a6080171cfa207b2c"
},
{
"url": "https://git.kernel.org/stable/c/7d75592114d1664623c8cf191a12b38052c04483"
}
],
"title": "RDMA/core: Wait for RCU callbacks before unloading ib_core",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93110",
"datePublished": "2026-09-17T16:11:19.805Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:43.865Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89698 (GCVE-0-2026-89698)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: widen nfsd_genl_rqstp address fields to sockaddr_storage
struct nfsd_genl_rqstp declares rq_daddr and rq_saddr as plain
"struct sockaddr" (16 bytes). When an IPv6 NFS client is connected,
nfsd_genl_rpc_status_compose_msg() casts these fields to
"struct sockaddr_in6 *" (28 bytes) and reads sin6_addr at offset 8..24,
which extends 8 bytes past the end of the 16-byte sockaddr field into
the adjacent rq_flags member. The 16-byte nla_put_in6_addr then ships 8
bytes of truncated IPv6 address followed by 8 bytes of rq_flags to
userspace via the NFSD_A_RPC_STATUS_SADDR6/DADDR6 netlink attributes.
This is reachable by any unprivileged process in the network namespace
because NFSD_CMD_RPC_STATUS_GET uses GENL_CMD_CAP_DUMP without
GENL_ADMIN_PERM.
Fix by widening rq_daddr and rq_saddr to struct sockaddr_storage so the
IPv6 casts operate within bounds, copying sizeof(struct sockaddr_storage)
bytes in the memcpy calls so the full address is captured, and
zero-initializing the genl_rqstp stack variable to prevent leaking
uninitialized tail bytes through netlink.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9a2e791639a1c5cac3f219b0d2632835d8f88d27",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "03c512f22d3fbe7a3767d6df5e3d88b8e7c105e5",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "dcb69ad0dafb4a24b825183bb94055d5be8a10bd",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "a99d720ed2a5258564e5e9d5f39f3184a030d354",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: widen nfsd_genl_rqstp address fields to sockaddr_storage\n\nstruct nfsd_genl_rqstp declares rq_daddr and rq_saddr as plain\n\"struct sockaddr\" (16 bytes). When an IPv6 NFS client is connected,\nnfsd_genl_rpc_status_compose_msg() casts these fields to\n\"struct sockaddr_in6 *\" (28 bytes) and reads sin6_addr at offset 8..24,\nwhich extends 8 bytes past the end of the 16-byte sockaddr field into\nthe adjacent rq_flags member. The 16-byte nla_put_in6_addr then ships 8\nbytes of truncated IPv6 address followed by 8 bytes of rq_flags to\nuserspace via the NFSD_A_RPC_STATUS_SADDR6/DADDR6 netlink attributes.\n\nThis is reachable by any unprivileged process in the network namespace\nbecause NFSD_CMD_RPC_STATUS_GET uses GENL_CMD_CAP_DUMP without\nGENL_ADMIN_PERM.\n\nFix by widening rq_daddr and rq_saddr to struct sockaddr_storage so the\nIPv6 casts operate within bounds, copying sizeof(struct sockaddr_storage)\nbytes in the memcpy calls so the full address is captured, and\nzero-initializing the genl_rqstp stack variable to prevent leaking\nuninitialized tail bytes through netlink."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:11.410Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9a2e791639a1c5cac3f219b0d2632835d8f88d27"
},
{
"url": "https://git.kernel.org/stable/c/03c512f22d3fbe7a3767d6df5e3d88b8e7c105e5"
},
{
"url": "https://git.kernel.org/stable/c/dcb69ad0dafb4a24b825183bb94055d5be8a10bd"
},
{
"url": "https://git.kernel.org/stable/c/a99d720ed2a5258564e5e9d5f39f3184a030d354"
}
],
"title": "nfsd: widen nfsd_genl_rqstp address fields to sockaddr_storage",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89698",
"datePublished": "2026-09-11T19:46:16.551Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:11.410Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74551 (GCVE-0-2026-74551)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (nzxt-smart2) DMA-align output buffer
Sashiko reports:
When send_output_report() calls hid_hw_output_report(), the underlying USB
HID core calls usb_interrupt_msg() which maps this buffer directly for DMA.
When the DMA mapping flushes or invalidates the cacheline, it will corrupt
the adjacent variables (mutex, update_interval) that were modified
concurrently by the CPU. This causes memory corruption due to cacheline
sharing on non-coherent CPU architectures (such as ARM or MIPS). The DMA
API debugging tool (CONFIG_DMA_API_DEBUG) will trigger runtime warnings
for this violation.
Any operation that triggers send_output_report() (like setting a fan speed
or updating the interval) causes the USB DMA mapping. On systems with
non-coherent caches, this structural bug causes immediate and deterministic
memory corruption.
Align the output buffer to ARCH_DMA_MINALIGN to fix the problem.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 Version: 53e68c20aeb1e23419bed811aa3a309ceda200f9 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nzxt-smart2.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "81a6593b1c8dfb2694cd0ce39be01212d2b8436c",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
},
{
"lessThan": "70ad543ce81f368411b6c721265a3b2d7ab4fda4",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
},
{
"lessThan": "51a76bc1b8e717ee3fc0d84f15ac51490ca5f76f",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
},
{
"lessThan": "2332d35aaf206c17acf848522817252732596676",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
},
{
"lessThan": "6a2dbce5da2d2163a5b684acf68a0e54582ff0fa",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
},
{
"lessThan": "080bbf42faf77e6489ab30d5114c5f8f6ccbb1b8",
"status": "affected",
"version": "53e68c20aeb1e23419bed811aa3a309ceda200f9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nzxt-smart2.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (nzxt-smart2) DMA-align output buffer\n\nSashiko reports:\n\nWhen send_output_report() calls hid_hw_output_report(), the underlying USB\nHID core calls usb_interrupt_msg() which maps this buffer directly for DMA.\n\nWhen the DMA mapping flushes or invalidates the cacheline, it will corrupt\nthe adjacent variables (mutex, update_interval) that were modified\nconcurrently by the CPU. This causes memory corruption due to cacheline\nsharing on non-coherent CPU architectures (such as ARM or MIPS). The DMA\nAPI debugging tool (CONFIG_DMA_API_DEBUG) will trigger runtime warnings\nfor this violation.\n\nAny operation that triggers send_output_report() (like setting a fan speed\nor updating the interval) causes the USB DMA mapping. On systems with\nnon-coherent caches, this structural bug causes immediate and deterministic\nmemory corruption.\n\nAlign the output buffer to ARCH_DMA_MINALIGN to fix the problem."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable send_output_report() path is reached by writing hwmon sysfs attributes (pwm*, update_interval) under /sys/class/hwmon/, a local interface. The USB stack only performs internal DMA mapping; the attacker does not need network, adjacent-network, or direct USB bus manipulation to trigger the bug.\nAC:L - On non-coherent ARM/MIPS systems, each sysfs write that triggers send_output_report() deterministically causes DMA cache-line operations that corrupt the adjacent mutex and update_interval; the attacker controls when writes occur and can repeat them at will with no race or grooming required.\nPR:L - The driver exposes pwm* and update_interval hwmon attributes with mode 0644 and performs no capability or credential checks on the write path; any unprivileged local user account can trigger send_output_report() without real root or init-namespace capabilities.\nUI:N - Exploitation requires only the attacker writing to hwmon sysfs on a system where the NZXT device is already present and bound; no victim action such as opening a file, clicking a prompt, or mounting a filesystem is needed beyond normal device presence at boot.\nS:U - Corruption is confined to kernel driver private data (mutex, update_interval) within the host kernel heap; impact is standard kernel memory corruption and potential privilege escalation, not crossing VM, container, or IOMMU security boundaries.\nC:H - DMA cache-line invalidation corrupts adjacent kernel structures including struct mutex while concurrently modified by the CPU; this class of heap-adjacent memory corruption is a general primitive that can be leveraged for arbitrary kernel memory disclosure.\nI:H - Corrupting an actively held struct mutex in kernel driver private data enables control of synchronization state and adjacent heap contents, providing an exploitable kernel memory corruption primitive suitable for arbitrary write and control-flow hijacking.\nA:H - Corrupted mutex and driver state cause immediate kernel instability including possible deadlock, oops, or panic on every triggering sysfs write on affected non-coherent architectures; the fix commit describes immediate and deterministic memory corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:47.362Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/81a6593b1c8dfb2694cd0ce39be01212d2b8436c"
},
{
"url": "https://git.kernel.org/stable/c/70ad543ce81f368411b6c721265a3b2d7ab4fda4"
},
{
"url": "https://git.kernel.org/stable/c/51a76bc1b8e717ee3fc0d84f15ac51490ca5f76f"
},
{
"url": "https://git.kernel.org/stable/c/2332d35aaf206c17acf848522817252732596676"
},
{
"url": "https://git.kernel.org/stable/c/6a2dbce5da2d2163a5b684acf68a0e54582ff0fa"
},
{
"url": "https://git.kernel.org/stable/c/080bbf42faf77e6489ab30d5114c5f8f6ccbb1b8"
}
],
"title": "hwmon: (nzxt-smart2) DMA-align output buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74551",
"datePublished": "2026-08-15T12:27:58.237Z",
"dateReserved": "2026-08-15T05:44:03.915Z",
"dateUpdated": "2026-08-19T16:38:47.362Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64579 (GCVE-0-2026-64579)
Vulnerability from cvelistv5
Published
2026-08-05 08:09
Modified
2026-08-19 16:29
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
xfrm_hash_rebuild()'s first loop preallocates the bins/chains the reinsert
loop needs, so the reinsert (after hlist_del_rcu()) cannot allocate or
fail. But its guard is inverted: it skips policies with prefixlen <
threshold and preallocates for the rest.
prefixlen < threshold is exactly when policy_hash_bysel() returns NULL and
the reinsert takes the allocating xfrm_policy_inexact_insert() path. So the
loop preallocates for the exact policies (which never allocate) and skips
the inexact ones, whose bin/node is then allocated GFP_ATOMIC during
reinsert. On failure the error path only WARN_ONCE()s and continues,
leaving a poisoned bydst node; the next rebuild's hlist_del_rcu()
dereferences LIST_POISON2 and takes a GPF. Reachable under memory pressure,
deterministic via failslab.
Invert the guard so preallocation covers exactly the reinserted policies;
the reinsert then allocates nothing and cannot fail.
Crash:
Oops: general protection fault, probably for non-canonical address
0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI
KASAN: maybe wild-memory-access in range [0xdead...]
...
Workqueue: events xfrm_hash_rebuild
RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190
RAX: dead000000000122 (LIST_POISON2 + offset)
...
Call Trace:
hlist_del_rcu (include/linux/rculist.h:599)
xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365)
process_one_work (kernel/workqueue.c:3322)
worker_thread (kernel/workqueue.c:3486)
kthread (kernel/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
...
Kernel panic - not syncing: Fatal exception in interrupt
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee Version: 24969facd704a5f0dd8e08da86bf32a9ce972bee |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e48f4c3e3df35b34be719d72d737bbeaca77cf0c",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "1cdeed9df1306f1a277e715600772640d63defa9",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "43a4d510523779891cf8eca7ffb4a086b0b5d8bf",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "d9d9cc21cc90014724a14c447e3d587be9447107",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "94c00391a5117530188334f740ce26d3f1256190",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "7acc5ed2f33608a3d83b64f50a5766843b6e2485",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "6aa3796d18a9fda953ad76a62b57bf6c145cb9ef",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
},
{
"lessThan": "f38f8cce2f7e79775b3db7e8a5eacda04ac908e4",
"status": "affected",
"version": "24969facd704a5f0dd8e08da86bf32a9ce972bee",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert\n\nxfrm_hash_rebuild()\u0027s first loop preallocates the bins/chains the reinsert\nloop needs, so the reinsert (after hlist_del_rcu()) cannot allocate or\nfail. But its guard is inverted: it skips policies with prefixlen \u003c\nthreshold and preallocates for the rest.\n\nprefixlen \u003c threshold is exactly when policy_hash_bysel() returns NULL and\nthe reinsert takes the allocating xfrm_policy_inexact_insert() path. So the\nloop preallocates for the exact policies (which never allocate) and skips\nthe inexact ones, whose bin/node is then allocated GFP_ATOMIC during\nreinsert. On failure the error path only WARN_ONCE()s and continues,\nleaving a poisoned bydst node; the next rebuild\u0027s hlist_del_rcu()\ndereferences LIST_POISON2 and takes a GPF. Reachable under memory pressure,\ndeterministic via failslab.\n\nInvert the guard so preallocation covers exactly the reinserted policies;\nthe reinsert then allocates nothing and cannot fail.\n\nCrash:\n Oops: general protection fault, probably for non-canonical address\n 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI\n KASAN: maybe wild-memory-access in range [0xdead...]\n ...\n Workqueue: events xfrm_hash_rebuild\n RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190\n RAX: dead000000000122 (LIST_POISON2 + offset)\n ...\n Call Trace:\n hlist_del_rcu (include/linux/rculist.h:599)\n xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365)\n process_one_work (kernel/workqueue.c:3322)\n worker_thread (kernel/workqueue.c:3486)\n kthread (kernel/kthread.c:436)\n ret_from_fork (arch/x86/kernel/process.c:158)\n ret_from_fork_asm (arch/x86/entry/entry_64.S:245)\n ...\n Kernel panic - not syncing: Fatal exception in interrupt"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:29:04.594Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e48f4c3e3df35b34be719d72d737bbeaca77cf0c"
},
{
"url": "https://git.kernel.org/stable/c/1cdeed9df1306f1a277e715600772640d63defa9"
},
{
"url": "https://git.kernel.org/stable/c/43a4d510523779891cf8eca7ffb4a086b0b5d8bf"
},
{
"url": "https://git.kernel.org/stable/c/d9d9cc21cc90014724a14c447e3d587be9447107"
},
{
"url": "https://git.kernel.org/stable/c/94c00391a5117530188334f740ce26d3f1256190"
},
{
"url": "https://git.kernel.org/stable/c/7acc5ed2f33608a3d83b64f50a5766843b6e2485"
},
{
"url": "https://git.kernel.org/stable/c/6aa3796d18a9fda953ad76a62b57bf6c145cb9ef"
},
{
"url": "https://git.kernel.org/stable/c/f38f8cce2f7e79775b3db7e8a5eacda04ac908e4"
}
],
"title": "xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64579",
"datePublished": "2026-08-05T08:09:34.346Z",
"dateReserved": "2026-07-19T15:36:31.798Z",
"dateUpdated": "2026-08-19T16:29:04.594Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63939 (GCVE-0-2026-63939)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-10-19 20:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: SEV: Compute the correct max length of the in-GHCB scratch area
When setting the length of the GHCB scratch area, and the area is in the
GHCB shared buffer, set the effective length of the scratch area to the max
possible size given the start of the guest-provided pointer, and the end of
the shared buffer.
The code was "fine" when first introduced, as KVM doesn't consult the
length of the buffer when emulating MMIO, because the passed in @len always
specifies the *max* size required. But for PSC requests, the incoming @len
is just the minimum length (to process the header), and KVM needs to know
the full size of the scratch area to avoid buffer overflows (spoiler alert).
Opportunistically rename @len => @min_len to better reflect its role.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63939",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:33:48.298824Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-122",
"description": "CWE-122 Heap-based Buffer Overflow",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:17:57.791Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6ca9400d36005ffdca25f80186bea781c7e1dc4c",
"status": "affected",
"version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
"versionType": "git"
},
{
"lessThan": "9f0a9e780f02c02d025a190f1885e1d1d73b87bd",
"status": "affected",
"version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
"versionType": "git"
},
{
"lessThan": "6644565527c4c5f507088b1c9ddf72de47790b68",
"status": "affected",
"version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
"versionType": "git"
},
{
"lessThan": "5867d7e202e09f037cefe77f7af4413c7c0fa088",
"status": "affected",
"version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SEV: Compute the correct max length of the in-GHCB scratch area\n\nWhen setting the length of the GHCB scratch area, and the area is in the\nGHCB shared buffer, set the effective length of the scratch area to the max\npossible size given the start of the guest-provided pointer, and the end of\nthe shared buffer.\n\nThe code was \"fine\" when first introduced, as KVM doesn\u0027t consult the\nlength of the buffer when emulating MMIO, because the passed in @len always\nspecifies the *max* size required. But for PSC requests, the incoming @len\nis just the minimum length (to process the header), and KVM needs to know\nthe full size of the scratch area to avoid buffer overflows (spoiler alert).\n\nOpportunistically rename @len =\u003e @min_len to better reflect its role."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires code running inside an SEV-SNP KVM guest that issues a PSC VMGEXIT via the GHCB protocol; the vulnerable path is reached through the local VM/hypercall interface (SVM_EXIT_VMGEXIT), not via any network-facing protocol.\nAC:L - Once running in an SEV-SNP guest, the attacker fully controls the GHCB scratch GPA, PSC header indices, and entry contents, and can reliably trigger the bug without races or conditions outside their control.\nPR:N - No host privileges are required; a cloud tenant or any party able to run a malicious SEV-SNP guest VM can reach this code without host root or CAP_SYS_ADMIN in the host init namespace.\nUI:N - Exploitation requires no action from a victim user; the malicious guest triggers the vulnerability autonomously during PSC VMGEXIT processing.\nS:C - The flaw is in KVM host-side handling of guest VMGEXIT requests and enables out-of-bounds kernel access that crosses the guest-to-hypervisor security boundary, consistent with a VM escape primitive.\nC:H - The bug causes out-of-bounds reads of PSC entry structures beyond the computed scratch buffer length, which can leak kernel-mapped memory adjacent to the GHCB page.\nI:H - The kernel writes PSC completion data (entry cur_page and hdr.cur_entry) using attacker-controlled indices beyond the actual scratch buffer, enabling out-of-bounds writes exploitable for memory corruption.\nA:H - Out-of-bounds access within the host\u0027s GHCB mapping can corrupt adjacent memory and trigger kernel oopses or panics, and repeated exploitation can deny service to the host and other tenants."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:37:26.628Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6ca9400d36005ffdca25f80186bea781c7e1dc4c"
},
{
"url": "https://git.kernel.org/stable/c/9f0a9e780f02c02d025a190f1885e1d1d73b87bd"
},
{
"url": "https://git.kernel.org/stable/c/6644565527c4c5f507088b1c9ddf72de47790b68"
},
{
"url": "https://git.kernel.org/stable/c/5867d7e202e09f037cefe77f7af4413c7c0fa088"
}
],
"title": "KVM: SEV: Compute the correct max length of the in-GHCB scratch area",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63939",
"datePublished": "2026-07-19T14:55:35.743Z",
"dateReserved": "2026-07-19T07:54:57.022Z",
"dateUpdated": "2026-10-19T20:17:57.791Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93037 (GCVE-0-2026-93037)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/hfi1: Propagate sdma_txinit_ahg() errors
set_txreq_header_ahg() ignores the return value of sdma_txinit_ahg().
If sdma_txinit_ahg() fails, it returns before initializing tx->txreq.
However, set_txreq_header_ahg() ignores the error and returns the AHG
change count, causing the caller to continue processing the request as
though initialization had succeeded.
Propagate sdma_txinit_ahg() failures to the caller and abort request
processing when initialization fails.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 Version: e3304b7cc4f14d365f46d6847a35563ae8b017f7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/user_sdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cb73c2fe6e9cf563c99f22b7c8bca0d5f70d603e",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "122a730675565ff2ad210537c3fc3afb8291d482",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "bf974994150cfd14bfc599748925f4d426e00d90",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "fd6dee13f3857259b6b2ddd28e1ed95fd94ae2f9",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "5b7cefffd15d87c8103865f887cdcf9077d8094b",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "3416db552eb378e54cb2f2ce0db5f0df88654bda",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "ca99431820e8cac19f6a091c04da54cbe8d64f52",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
},
{
"lessThan": "091c6162c022cbdfb64219708a71728cfd1d4600",
"status": "affected",
"version": "e3304b7cc4f14d365f46d6847a35563ae8b017f7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/user_sdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hfi1: Propagate sdma_txinit_ahg() errors\n\nset_txreq_header_ahg() ignores the return value of sdma_txinit_ahg().\n\nIf sdma_txinit_ahg() fails, it returns before initializing tx-\u003etxreq.\nHowever, set_txreq_header_ahg() ignores the error and returns the AHG\nchange count, causing the caller to continue processing the request as\nthough initialization had succeeded.\n\nPropagate sdma_txinit_ahg() failures to the caller and abort request\nprocessing when initialization fails.\n\nFound by Linux Verification Center (linuxtesting.org) with SVACE."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker-controlled bytes are the sdma_req_info/header/iovecs copy_from_user()\u0027d in hfi1_user_sdma_process_request(), reached only from hfi1_write_iter() on the hfi1 user cdev. A remote Omni-Path peer does not supply that request; kernel verbs already check sdma_txinit_ahg() and are not this bug.\nAC:L - On the AHG path (npkts\u003e1 and HFI1_CAP_IS_USET(SDMA_AHG) so ahg_idx\u003e=0), the attacker sets a later packet\u0027s datalen to 0 or info.fragsize\u003eMAX_SDMA_PKT_SIZE so sdma_txinit_ahg() returns -ENODATA/-EMSGSIZE. set_txreq_header_ahg() still returns the AHG index count, and user_sdma_send_pkts() continues with no race.\nPR:L - hfi1_user_devnode() creates /dev/hfi1_N with mode 0666, and hfi1_file_open()/assign_ctxt() perform no capability checks, so an ordinary unprivileged local user can assign a context and writev() the crafted SDMA request.\nUI:N - Exploitation is the attacker\u0027s own open, HFI1_IOCTL_ASSIGN_CTXT, and writev() of a multi-packet user SDMA request; no other user must mount media, open a file, or otherwise interact.\nS:U - The uninitialized user_sdma_txreq.txreq is consumed by make_tx_sdma_desc() and submit_tx() inside the host hfi1 driver; impact is host-kernel memory/DMA corruption, not a guest-to-host, IOMMU, or other authority-boundary escape.\nC:H - user_sdma_send_pkts() still calls hfi1_add_pages_to_sdma_packet() after the failed sdma_txinit_ahg(), and make_tx_sdma_desc() reads/writes through uninitialized tx-\u003edescp. A recycled txreq_cache object whose extended descp was kfree\u0027d in __sdma_txclean() is a use-after-free, enabling kernel info disclosure.\nI:H - make_tx_sdma_desc() writes DMA address and length through that uninitialized/dangling descp, and submit_tx() copies those descriptors into the SDMA ring. That is an arbitrary kernel write and hardware DMA of attacker-influenced descriptors, enabling control-flow hijack.\nA:H - submit_tx() always loads descp-\u003eqw[0] even when num_desc is 0, so a NULL descp from an uninitialized txreq is a kernel NULL-deref oops; garbage num_desc/descriptors also crash or halt the SDMA engine."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:32.386Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cb73c2fe6e9cf563c99f22b7c8bca0d5f70d603e"
},
{
"url": "https://git.kernel.org/stable/c/122a730675565ff2ad210537c3fc3afb8291d482"
},
{
"url": "https://git.kernel.org/stable/c/bf974994150cfd14bfc599748925f4d426e00d90"
},
{
"url": "https://git.kernel.org/stable/c/fd6dee13f3857259b6b2ddd28e1ed95fd94ae2f9"
},
{
"url": "https://git.kernel.org/stable/c/5b7cefffd15d87c8103865f887cdcf9077d8094b"
},
{
"url": "https://git.kernel.org/stable/c/3416db552eb378e54cb2f2ce0db5f0df88654bda"
},
{
"url": "https://git.kernel.org/stable/c/ca99431820e8cac19f6a091c04da54cbe8d64f52"
},
{
"url": "https://git.kernel.org/stable/c/091c6162c022cbdfb64219708a71728cfd1d4600"
}
],
"title": "RDMA/hfi1: Propagate sdma_txinit_ahg() errors",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93037",
"datePublished": "2026-09-17T16:10:31.452Z",
"dateReserved": "2026-09-17T15:57:05.656Z",
"dateUpdated": "2026-10-19T09:04:32.386Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89968 (GCVE-0-2026-89968)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-19 08:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: reject unsolicited H2CData PDUs
nvmet_tcp_handle_h2c_data_pdu() accepts an H2CData PDU after only checking
that its TTAG is a valid in-range command index and that the command's
data buffers are mapped. It never checks that the target has actually
solicited that data by sending an R2T for the command.
A remote host can abuse this. It submits a write command that takes the
R2T path and, before the target transmits the R2T, sends an H2CData PDU
for that command's tag. The data completes the command early, and when
the command then fails synchronously (e.g. a length mismatch caught by
nvmet_check_transfer_len()), it is completed a second time. Each
completion calls nvmet_tcp_queue_response(), so the same command is added
to queue->resp_list twice while it is still linked; the second llist_add()
makes the node point to itself (lentry->next == lentry).
nvmet_tcp_process_resp_list() then walks that self-referential node and
adds the command to resp_send_list twice. With CONFIG_DEBUG_LIST this
trips the "list_add double add" check (kernel BUG); without it the loop
never terminates and the nvmet_tcp workqueue wedges (soft-lockup). It is
remotely triggerable and needs no authentication on an allow_any_host
subsystem.
Track whether an R2T has been transmitted for a command and reject an
H2CData PDU that arrives before it. The flag is cleared on command reuse
(nvmet_tcp_get_cmd() zeroes cmd->flags) and stays set across the multiple
H2CData PDUs of a single solicited transfer.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "02341ee424fb2eed16b5b8a9d247492e49335c21",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "cade124c06f8e738e3a0df285ed2e08953e6bfaa",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "14beef7d4f123fb458fc9844aa74a071871dcca6",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "9fb527103e53fd43a8e802c2eca407869c204f7a",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "2b71f9193e3d3a352920ba367f1a6db345249038",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "cf1484d9a75de6809ef331e16f525aaa41b0e16d",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "1cbed7538946c99e585acefd11c9ba3a0bdbae05",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "db62b35cbca052860c519cbcabe7650708528738",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: reject unsolicited H2CData PDUs\n\nnvmet_tcp_handle_h2c_data_pdu() accepts an H2CData PDU after only checking\nthat its TTAG is a valid in-range command index and that the command\u0027s\ndata buffers are mapped. It never checks that the target has actually\nsolicited that data by sending an R2T for the command.\n\nA remote host can abuse this. It submits a write command that takes the\nR2T path and, before the target transmits the R2T, sends an H2CData PDU\nfor that command\u0027s tag. The data completes the command early, and when\nthe command then fails synchronously (e.g. a length mismatch caught by\nnvmet_check_transfer_len()), it is completed a second time. Each\ncompletion calls nvmet_tcp_queue_response(), so the same command is added\nto queue-\u003eresp_list twice while it is still linked; the second llist_add()\nmakes the node point to itself (lentry-\u003enext == lentry).\n\nnvmet_tcp_process_resp_list() then walks that self-referential node and\nadds the command to resp_send_list twice. With CONFIG_DEBUG_LIST this\ntrips the \"list_add double add\" check (kernel BUG); without it the loop\nnever terminates and the nvmet_tcp workqueue wedges (soft-lockup). It is\nremotely triggerable and needs no authentication on an allow_any_host\nsubsystem.\n\nTrack whether an R2T has been transmitted for a command and reject an\nH2CData PDU that arrives before it. The flag is cleared on command reuse\n(nvmet_tcp_get_cmd() zeroes cmd-\u003eflags) and stays set across the multiple\nH2CData PDUs of a single solicited transfer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nvmet-tcp is an in-kernel NVMe-over-TCP target; after kernel_accept() the receive worker parses CapsuleCmd and H2CData PDUs from a listening TCP portal (typically 4420), so a remote initiator on a cloud or storage node can reach the bug over the network.\nAC:L - The attacker sends a write/Connect CapsuleCmd that queues an R2T, then an H2CData PDU for that tag in the same TCP burst; nvmet_tcp_io_work() receives before it sends, so both PDUs are handled before R2T is transmitted, with no condition outside attacker control.\nPR:N - On the unconnected queue after ICReq, Connect with a non-inline SGL takes the R2T path, H2CData is bound to queue-\u003econnect while nr_cmds is 0, and nvmet_check_transfer_len() runs before host-NQN allow-list or DH-HMAC-CHAP, so no credentials or Linux privileges are required.\nUI:N - Exploitation uses only attacker-sent NVMe/TCP PDUs against an already listening target; no victim action such as mounting a device or opening a file is required.\nS:U - The corrupted resp_list, workqueue hang, and optional list_add BUG occur inside the target host kernel\u0027s NVMe/TCP worker and do not cross a VM, IOMMU, or other security authority.\nC:N - Double llist_add makes the command node self-referential and then livelocks or hits DEBUG_LIST checks; there is no use-after-free, out-of-bounds read, or other primitive that discloses kernel memory.\nI:N - The second llist_add only points the node at itself rather than creating an attacker-controlled write; there is no use-after-free, OOB write, or type confusion that would allow arbitrary kernel modification or code execution.\nA:H - nvmet_tcp_process_resp_list() walks the self-loop forever, wedging WQ_MEM_RECLAIM nvmet_tcp_wq in a soft lockup; CONFIG_DEBUG_LIST/BUG_ON_DATA_CORRUPTION can BUG on list_add double add, and cancel_work_sync() during teardown deadlocks as well."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:55:41.809Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/02341ee424fb2eed16b5b8a9d247492e49335c21"
},
{
"url": "https://git.kernel.org/stable/c/cade124c06f8e738e3a0df285ed2e08953e6bfaa"
},
{
"url": "https://git.kernel.org/stable/c/14beef7d4f123fb458fc9844aa74a071871dcca6"
},
{
"url": "https://git.kernel.org/stable/c/9fb527103e53fd43a8e802c2eca407869c204f7a"
},
{
"url": "https://git.kernel.org/stable/c/2b71f9193e3d3a352920ba367f1a6db345249038"
},
{
"url": "https://git.kernel.org/stable/c/cf1484d9a75de6809ef331e16f525aaa41b0e16d"
},
{
"url": "https://git.kernel.org/stable/c/1cbed7538946c99e585acefd11c9ba3a0bdbae05"
},
{
"url": "https://git.kernel.org/stable/c/db62b35cbca052860c519cbcabe7650708528738"
}
],
"title": "nvmet-tcp: reject unsolicited H2CData PDUs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89968",
"datePublished": "2026-09-16T10:32:48.852Z",
"dateReserved": "2026-09-11T19:38:34.778Z",
"dateUpdated": "2026-10-19T08:55:41.809Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89699 (GCVE-0-2026-89699)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: validate symlink target length in NFSv4 CREATE
nfsd4_decode_create() accepts an unbounded cr_datalen from the wire for
NF4LNK symlink targets, allowing a client to force a kmalloc of up to
the maximum RPC payload size (several MiB) per COMPOUND op that persists
until compound teardown. The VFS rejects oversized targets with
ENAMETOOLONG, but the allocation has already occurred.
Reject cr_datalen == 0 early with nfserr_inval and cr_datalen greater
than NFS4_MAXPATHLEN (PATH_MAX) with nfserr_nametoolong to bound the
allocation.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89699",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:10.914842Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:49.108Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "36011308b3f01ce7dc9954f3cefcbb5291af9f95",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "888dad4b557352cf85be31613407b5ba51ad07d1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8661d3cb38fd148947e57dbc0871fd4d3fa33bbf",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3ef5e7a01a4d74995a65496bc9166d1e980a4355",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b24843ea3de1676b29902457b38507c95a80649b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "895a485cd3758031ef9993c0d53cf19ce8fb4ccc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "45ec115cbfecb4b3cfab7fca6f73d1b60696a25a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "041f57056e5fb9c80adc088269322d2c61074406",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: validate symlink target length in NFSv4 CREATE\n\nnfsd4_decode_create() accepts an unbounded cr_datalen from the wire for\nNF4LNK symlink targets, allowing a client to force a kmalloc of up to\nthe maximum RPC payload size (several MiB) per COMPOUND op that persists\nuntil compound teardown. The VFS rejects oversized targets with\nENAMETOOLONG, but the allocation has already occurred.\n\nReject cr_datalen == 0 early with nfserr_inval and cr_datalen greater\nthan NFS4_MAXPATHLEN (PATH_MAX) with nfserr_nametoolong to bound the\nallocation."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached through the in-kernel NFS server (nfsd) when a remote client sends an NFSv4 COMPOUND containing OP_CREATE of type NF4LNK over TCP/UDP port 2049; nfsd4_decode_create() runs during XDR decode of that compound.\nAC:L - A client fully controls cr_datalen on the wire; one COMPOUND with an NF4LNK target larger than PATH_MAX but within the RPC payload deterministically forces svcxdr_dupstr()/kmalloc of that size, with no race or attacker-uncontrollable condition.\nPR:N - The oversized kmalloc occurs in nfsd4_decode_compound() before SEQUENCE/session checks, PUTFH, fh_verify(), or export flavor enforcement; AUTH_NULL and AUTH_UNIX are accepted at the RPC layer, so an unauthenticated peer that can reach nfsd needs no host credentials.\nUI:N - Exploitation requires only attacker-sent NFSv4 COMPOUND RPCs; no administrator or end-user action on the server is needed beyond nfsd already listening.\nS:U - Impact is confined to kernel memory consumption on the NFS server within the same security authority; there is no VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:N - The defect only copies attacker-supplied symlink-target bytes into a correctly sized kmalloc buffer; there is no out-of-bounds read, use-after-free, or other disclosure primitive.\nI:N - There is no memory corruption or attacker-controlled write; the buffer is sized to cr_datalen and is only a temporary copy that filesystems later reject with ENAMETOOLONG.\nA:H - Each COMPOUND can force a GFP_KERNEL kmalloc of up to the maximum RPC payload (several MiB) on an nfsd thread until compound teardown; flooding concurrent requests across nfsd threads can exhaust kernel memory and OOM or stall the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:12.396Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/36011308b3f01ce7dc9954f3cefcbb5291af9f95"
},
{
"url": "https://git.kernel.org/stable/c/888dad4b557352cf85be31613407b5ba51ad07d1"
},
{
"url": "https://git.kernel.org/stable/c/8661d3cb38fd148947e57dbc0871fd4d3fa33bbf"
},
{
"url": "https://git.kernel.org/stable/c/3ef5e7a01a4d74995a65496bc9166d1e980a4355"
},
{
"url": "https://git.kernel.org/stable/c/b24843ea3de1676b29902457b38507c95a80649b"
},
{
"url": "https://git.kernel.org/stable/c/895a485cd3758031ef9993c0d53cf19ce8fb4ccc"
},
{
"url": "https://git.kernel.org/stable/c/45ec115cbfecb4b3cfab7fca6f73d1b60696a25a"
},
{
"url": "https://git.kernel.org/stable/c/041f57056e5fb9c80adc088269322d2c61074406"
}
],
"title": "nfsd: validate symlink target length in NFSv4 CREATE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89699",
"datePublished": "2026-09-11T19:46:17.293Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:12.396Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74378 (GCVE-0-2026-74378)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix TOCTOU heap overflow in get_srq_wqe
get_srq_wqe() reads wqe->dma.num_sge from the shared receive queue
buffer, which is mapped into userspace. It validates num_sge against
max_sge, but then re-reads the same field to calculate the memcpy
size. A concurrent userspace thread can modify num_sge between
validation and use, causing a heap buffer overflow when copying the
WQE into qp->resp.srq_wqe.
Read num_sge into a local variable and use it for both the bounds
check and the size calculation.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74378",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:53.282881Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:36.455Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c8db0e5ab0b6c540214c46c56aaac7cbcb0967fe",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "e48daa94ad2d406225b73491fc935064716f0ec7",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "3cfa2a3adc51b7c57729961a03446962ff10e3d2",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "cd19a6345e3727adafafa5954b58b13c92e13b80",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "3e07ea9579dc9553d2285c26c2823931358aa3b8",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "02558c86b6b761063e9399e6b939984500327ef1",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "b9800d7953d119bcc068c74587d48e4ba0313629",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "22b8fbded65b8c441b634a185f8da67657df6c50",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Fix TOCTOU heap overflow in get_srq_wqe\n\nget_srq_wqe() reads wqe-\u003edma.num_sge from the shared receive queue\nbuffer, which is mapped into userspace. It validates num_sge against\nmax_sge, but then re-reads the same field to calculate the memcpy\nsize. A concurrent userspace thread can modify num_sge between\nvalidation and use, causing a heap buffer overflow when copying the\nWQE into qp-\u003eresp.srq_wqe.\n\nRead num_sge into a local variable and use it for both the bounds\ncheck and the size calculation."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local process with mmap write access to the SRQ receive queue shared with the kernel; although incoming RoCE/UDP packets trigger get_srq_wqe(), a remote peer cannot modify num_sge in the victim\u0027s userspace-mapped WQE buffer, so the TOCTOU overflow cannot be achieved from the network alone.\nAC:L - The attacker controls both sides of the race: a userspace thread that repeatedly rewrites num_sge in the mmap\u0027d SRQ entry and the thread/process that posts recv WQEs and receives the triggering RoCE Send/Write packet, making the TOCTOU window reliably winnable without external timing luck.\nPR:L - An unprivileged local user with access to /dev/infiniband/uverbs can create an SRQ (mmap\u0027d queue), associate a QP, and post recv buffers via ibverbs; rxe device setup via \"rdma link add type rxe\" is reachable with CAP_NET_ADMIN inside a user namespace (unshare -Urn).\nUI:N - No victim user interaction is required; the attacker operates their own malicious RDMA userspace process and can self-trigger the vulnerable responder path with RoCE request packets once SRQ/QP resources are configured.\nS:U - The heap overflow corrupts kernel memory within the rxe_qp responder context on the same host kernel, enabling local privilege escalation rather than crossing a VM, container, or IOMMU security boundary to impact a different authority.\nC:H - The attacker-controlled memcpy size causes an out-of-bounds copy from the mmap\u0027d SRQ ring buffer and overflows the fixed qp-\u003eresp.srq_wqe kernel buffer, enabling adjacent kernel heap data disclosure and providing primitives that can be developed into arbitrary kernel memory reads.\nI:H - Overflowing qp-\u003eresp.srq_wqe corrupts subsequent fields in rxe_resp_info/rxe_qp (e.g., responder resource pointers and state), giving a kernel heap buffer overflow that can be leveraged for arbitrary kernel memory writes and local privilege escalation.\nA:H - Corrupting responder state inside rxe_qp can cause kernel oops/panic or wedged RDMA processing during packet handling; even failed exploitation attempts can crash the kernel through use of corrupted function pointers and queue state."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T11:58:46.129Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c8db0e5ab0b6c540214c46c56aaac7cbcb0967fe"
},
{
"url": "https://git.kernel.org/stable/c/e48daa94ad2d406225b73491fc935064716f0ec7"
},
{
"url": "https://git.kernel.org/stable/c/3cfa2a3adc51b7c57729961a03446962ff10e3d2"
},
{
"url": "https://git.kernel.org/stable/c/cd19a6345e3727adafafa5954b58b13c92e13b80"
},
{
"url": "https://git.kernel.org/stable/c/3e07ea9579dc9553d2285c26c2823931358aa3b8"
},
{
"url": "https://git.kernel.org/stable/c/02558c86b6b761063e9399e6b939984500327ef1"
},
{
"url": "https://git.kernel.org/stable/c/b9800d7953d119bcc068c74587d48e4ba0313629"
},
{
"url": "https://git.kernel.org/stable/c/22b8fbded65b8c441b634a185f8da67657df6c50"
}
],
"title": "RDMA/rxe: Fix TOCTOU heap overflow in get_srq_wqe",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74378",
"datePublished": "2026-08-15T05:58:56.381Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-10-16T18:55:36.455Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80722 (GCVE-0-2026-80722)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: validate individual TWT params before driver setup
ieee80211_process_rx_twt_action() only partially validates a received
S1G TWT setup frame before queueing it.
An individual agreement can therefore reach ieee80211_s1g_rx_twt_setup()
with twt->length too short for the full struct ieee80211_twt_params.
The individual path passes twt to drv_add_twt_setup(). Both the tracepoint
and the driver callback consume the complete parameters block, not merely
req_type. Do not pass a short individual agreement to the driver.
Broadcast agreements remain unchanged because they are rejected locally
after accessing only req_type.
[edit commit message to not overclaim lack of validation nor
understate driver impact]
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80722",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:20:57.406511Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:35.418Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mac80211/s1g.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "92fcd0f30dc8e51f252589b082d46851d295cc1a",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "09d60d1f72e6598241490eb6c4e97245af895c09",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "ff558072d199c1d641d1561da622e67f780514de",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "ade9e2f0f7f4d3089600ac2af8ef0b91746f923b",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "b558e07708d886acfcf4b0391ed7a8546e81d326",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "47fb04c3826e1f90271d405523043d6708b9072a",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "0502d5077e419427d80f4d46ba95d0067f5fb916",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mac80211/s1g.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: validate individual TWT params before driver setup\n\nieee80211_process_rx_twt_action() only partially validates a received\nS1G TWT setup frame before queueing it.\n\nAn individual agreement can therefore reach ieee80211_s1g_rx_twt_setup()\nwith twt-\u003elength too short for the full struct ieee80211_twt_params.\n\nThe individual path passes twt to drv_add_twt_setup(). Both the tracepoint\nand the driver callback consume the complete parameters block, not merely\nreq_type. Do not pass a short individual agreement to the driver.\nBroadcast agreements remain unchanged because they are rejected locally\nafter accessing only req_type.\n\n[edit commit message to not overclaim lack of validation nor\n understate driver impact]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - Malformed S1G TWT setup action frames reach mac80211 via normal WiFi RX (driver -\u003e ieee80211_rx_h_action -\u003e ieee80211_process_rx_twt_action -\u003e ieee80211_s1g_rx_twt_setup); an adjacent attacker within radio range sends crafted 802.11 management frames to a vulnerable AP.\nAC:L - The attacker fully controls the TWT element length and payload; ieee80211_process_rx_twt_action() only validates two bytes of req_type before queueing, so a short individual agreement reliably reaches drv_add_twt_setup() without races or victim-specific timing.\nPR:N - No Linux privileges on the victim AP are required; exploitation needs only normal 802.11 association as a WiFi client to an S1G AP with twt_responder enabled and a driver implementing add_twt_setup (e.g. MediaTek mt7915/mt7996).\nUI:N - No deliberate victim action is needed beyond operating an S1G AP that accepts associated stations; the attacker directly injects the malformed TWT setup frame and mac80211 processes it automatically on receive.\nS:U - Impact is kernel/driver heap memory corruption on the AP host within the same security authority; it does not cross VM, IOMMU, or sandbox boundaries (standard kernel compromise scope).\nC:H - drv_add_twt_setup(), its tracepoint, and driver callbacks read the full ieee80211_twt_params (twt, min_twt_dur, mantissa, channel) beyond the validated skb bounds, causing out-of-bounds reads of adjacent skb/heap memory that can disclose kernel data.\nI:H - MediaTek add_twt_setup() handlers write twt_agrt fields (req_type, min_twt_dur, twt) past the undersized params block into skb tail/heap memory, providing out-of-bounds write primitives exploitable for further memory corruption or code execution.\nA:H - Out-of-bounds access in mac80211/driver TWT setup can kernel-oops the AP or hang/crash WiFi firmware when corrupted parameters are programmed into hardware TWT state from attacker-controlled short frames."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:38.281Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/92fcd0f30dc8e51f252589b082d46851d295cc1a"
},
{
"url": "https://git.kernel.org/stable/c/09d60d1f72e6598241490eb6c4e97245af895c09"
},
{
"url": "https://git.kernel.org/stable/c/ff558072d199c1d641d1561da622e67f780514de"
},
{
"url": "https://git.kernel.org/stable/c/ade9e2f0f7f4d3089600ac2af8ef0b91746f923b"
},
{
"url": "https://git.kernel.org/stable/c/b558e07708d886acfcf4b0391ed7a8546e81d326"
},
{
"url": "https://git.kernel.org/stable/c/47fb04c3826e1f90271d405523043d6708b9072a"
},
{
"url": "https://git.kernel.org/stable/c/0502d5077e419427d80f4d46ba95d0067f5fb916"
}
],
"title": "wifi: mac80211: validate individual TWT params before driver setup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80722",
"datePublished": "2026-08-28T06:53:17.886Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-10-16T19:26:35.418Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68338 (GCVE-0-2026-68338)
Vulnerability from cvelistv5
Published
2026-08-10 12:03
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/packet: avoid fanout hook re-registration after unregister
packet_set_ring() temporarily detaches a socket from packet delivery while
reconfiguring its ring. It records the previous running state, clears
po->num, unregisters the protocol hook when needed, drops po->bind_lock,
and later restores po->num and re-registers the hook from the saved
was_running value.
That unlocked window can race with NETDEV_UNREGISTER. The notifier can
observe the socket as not running, skip __unregister_prot_hook(), and
invalidate the per-socket binding by setting po->ifindex to -1 and clearing
po->prot_hook.dev. A one-member fanout group can still retain its shared
fanout hook device pointer. When packet_set_ring() resumes, re-registering
solely from the stale was_running state can re-add the fanout hook after
the device has been unregistered.
Treat po->ifindex == -1 as an invalidated binding after reacquiring
po->bind_lock. This is distinct from ifindex 0, the normal
unbound/wildcard state: ifindex -1 marks an existing device binding that
was invalidated when the device was unregistered. Restore po->num as
before, but do not re-register the hook if device unregister already
detached the socket.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc Version: dc99f600698dcac69b8f56dda9a8a00d645c5ffc |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68338",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:16.591778Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:05.428Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "acb40ebfa5c4d62f84339fcbf713f2a9fd033a71",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "c820f4b7f2fa38f8769db0d0cefdd94e2721504d",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "4628efbdc7affd094181f5263e65c1062e31f15f",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "80ec024d53a05c60ad1d08968dcf745f10c1665c",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "0a052e0808e015e68144a9877e6ef42b952c49fa",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "1bc55c29cd85818e9052f17deb287d5a11fb817f",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "a885387dae7986a55bae5c77a15bdd447f64e9b9",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
},
{
"lessThan": "50aff80475abd3533eef4320477037e6fcc6b56e",
"status": "affected",
"version": "dc99f600698dcac69b8f56dda9a8a00d645c5ffc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.1"
},
{
"lessThan": "3.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/packet: avoid fanout hook re-registration after unregister\n\npacket_set_ring() temporarily detaches a socket from packet delivery while\nreconfiguring its ring. It records the previous running state, clears\npo-\u003enum, unregisters the protocol hook when needed, drops po-\u003ebind_lock,\nand later restores po-\u003enum and re-registers the hook from the saved\nwas_running value.\n\nThat unlocked window can race with NETDEV_UNREGISTER. The notifier can\nobserve the socket as not running, skip __unregister_prot_hook(), and\ninvalidate the per-socket binding by setting po-\u003eifindex to -1 and clearing\npo-\u003eprot_hook.dev. A one-member fanout group can still retain its shared\nfanout hook device pointer. When packet_set_ring() resumes, re-registering\nsolely from the stale was_running state can re-add the fanout hook after\nthe device has been unregistered.\n\nTreat po-\u003eifindex == -1 as an invalidated binding after reacquiring\npo-\u003ebind_lock. This is distinct from ifindex 0, the normal\nunbound/wildcard state: ifindex -1 marks an existing device binding that\nwas invalidated when the device was unregistered. Restore po-\u003enum as\nbefore, but do not re-register the hook if device unregister already\ndetached the socket."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is triggered through local syscalls \u2014 creating an AF_PACKET socket, PACKET_FANOUT/bind setsockopt, PACKET_RX_RING setsockopt, and a netlink device unregister \u2014 with no remote packet processing involved.\nAC:L - The attacker controls both sides of the race: it issues the packet_set_ring() reconfiguration and deletes the bound netdev in its own netns, and the unlocked window spans synchronize_net() plus the ring swap, making it wide and reliably winnable.\nPR:L - AF_PACKET requires CAP_NET_RAW and device unregistration CAP_NET_ADMIN, but an unprivileged user obtains both via user+network namespaces (unshare -Urn) and can create and delete veth/dummy devices there.\nUI:N - The attacker performs every step itself \u2014 socket setup, ring reconfiguration and device teardown \u2014 with no action required from any other user.\nS:U - The stale hook registration and resulting corruption stay within the kernel\u0027s own security authority; no hypervisor, IOMMU or other trust boundary is crossed.\nC:H - The fanout packet_type is left linked into a net_device that is being torn down, a dangling registration on soon-to-be-freed memory; such stale-pointer state in the ptype lists can be leveraged for kernel memory disclosure.\nI:H - The dangling list node in the freed net_device\u0027s ptype list yields a list_del write into freed memory when the hook is later removed, a controllable write primitive typical of use-after-free exploitation.\nA:H - The re-added hook makes netdev_run_todo() hit BUG_ON(!list_empty(\u0026dev-\u003eptype_all)) while RTNL is held, oopsing the kernel and permanently wedging all further network configuration \u2014 a repeatable, unprivileged host-wide denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:33:38.308Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/acb40ebfa5c4d62f84339fcbf713f2a9fd033a71"
},
{
"url": "https://git.kernel.org/stable/c/c820f4b7f2fa38f8769db0d0cefdd94e2721504d"
},
{
"url": "https://git.kernel.org/stable/c/4628efbdc7affd094181f5263e65c1062e31f15f"
},
{
"url": "https://git.kernel.org/stable/c/80ec024d53a05c60ad1d08968dcf745f10c1665c"
},
{
"url": "https://git.kernel.org/stable/c/0a052e0808e015e68144a9877e6ef42b952c49fa"
},
{
"url": "https://git.kernel.org/stable/c/1bc55c29cd85818e9052f17deb287d5a11fb817f"
},
{
"url": "https://git.kernel.org/stable/c/a885387dae7986a55bae5c77a15bdd447f64e9b9"
},
{
"url": "https://git.kernel.org/stable/c/50aff80475abd3533eef4320477037e6fcc6b56e"
}
],
"title": "net/packet: avoid fanout hook re-registration after unregister",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68338",
"datePublished": "2026-08-10T12:03:14.549Z",
"dateReserved": "2026-07-30T09:28:09.384Z",
"dateUpdated": "2026-10-19T21:09:05.428Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68158 (GCVE-0-2026-68158)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
libceph: Fix multiplication overflow in decode_new_up_state_weight()
If a message of type CEPH_MSG_OSD_MAP contains a (maliciously) corrupted
osdmap, out-of-bounds memory accesses may occur in
decode_new_up_state_weight(). This happens because the bounds check for
the new_state part is based on calculating its length depending on a len
value read from the incoming message. This calculation may overflow
leading to an incorrect bounds check. Subsequently, out-of-bounds reads
may occur when decoding this part.
This patch switches the multiplication to use check_mul_overflow() to
abort processing the osdmap if an overflow occurred. Therefore,
osdmaps/messages containing large values for len that result in a
multiplication overflow are treated as invalid.
[ idryomov: rename new_state_len -> new_state_item_size, formatting ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 930c532869774ebf8af9efe9484c597f896a7d46 Version: 1196c36fd53c3b1615eb02f986cb727b1dfc1047 Version: bbc3aa6b0e6050b2b2e04a08dd4d6423d576b196 Version: 6b96b2d473701b45df3fea8dd9796b6ec39e6d54 Version: 7405d73cea0d0e6c541f5c534078feeb46188844 Version: 8777c9f654637d56f4c4ca54eb1bc7c609b70085 Version: 6831c98ce0b8a3e88db64aa224372effd0dcc694 Version: 032951d32c13b7564dfba82758260cb7aa1149d2 Version: 14877928f10667a5606383885d004f7185f33718 Version: 3.10.103 ≤ Version: 3.12.63 ≤ Version: 3.14.75 ≤ Version: 3.16.39 ≤ Version: 3.18.39 ≤ Version: 4.1.30 ≤ Version: 4.4.17 ≤ Version: 4.6.6 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68158",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:45:15.268376Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-190",
"description": "CWE-190 Integer Overflow or Wraparound",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:55.112Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ceph/osdmap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2ceee3b77b83052648c40fef965f836fd7699d26",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "e4473751cc37db41f3f7da25d64a23e0c74570f1",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "f6961070c326bd158c38fa48756cde2bd78c4aaa",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "05c90e059269f087becfcce23348496085835c29",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "143ba49ead77ec483c0326f8aaad8649874e99c4",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "1732d89dfcd74f6fde9ce70900d316c4a151c153",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "bee4b5b53e7bff0467fd916cc44c9b190733c6bd",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"lessThan": "98917a499ec7064c14fc56d180a4fd636fc2784c",
"status": "affected",
"version": "930c532869774ebf8af9efe9484c597f896a7d46",
"versionType": "git"
},
{
"status": "affected",
"version": "1196c36fd53c3b1615eb02f986cb727b1dfc1047",
"versionType": "git"
},
{
"status": "affected",
"version": "bbc3aa6b0e6050b2b2e04a08dd4d6423d576b196",
"versionType": "git"
},
{
"status": "affected",
"version": "6b96b2d473701b45df3fea8dd9796b6ec39e6d54",
"versionType": "git"
},
{
"status": "affected",
"version": "7405d73cea0d0e6c541f5c534078feeb46188844",
"versionType": "git"
},
{
"status": "affected",
"version": "8777c9f654637d56f4c4ca54eb1bc7c609b70085",
"versionType": "git"
},
{
"status": "affected",
"version": "6831c98ce0b8a3e88db64aa224372effd0dcc694",
"versionType": "git"
},
{
"status": "affected",
"version": "032951d32c13b7564dfba82758260cb7aa1149d2",
"versionType": "git"
},
{
"status": "affected",
"version": "14877928f10667a5606383885d004f7185f33718",
"versionType": "git"
},
{
"lessThan": "3.11",
"status": "affected",
"version": "3.10.103",
"versionType": "semver"
},
{
"lessThan": "3.13",
"status": "affected",
"version": "3.12.63",
"versionType": "semver"
},
{
"lessThan": "3.15",
"status": "affected",
"version": "3.14.75",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.39",
"versionType": "semver"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.39",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.30",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.17",
"versionType": "semver"
},
{
"lessThan": "4.7",
"status": "affected",
"version": "4.6.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ceph/osdmap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.10.103",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.12.63",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.14.75",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlibceph: Fix multiplication overflow in decode_new_up_state_weight()\n\nIf a message of type CEPH_MSG_OSD_MAP contains a (maliciously) corrupted\nosdmap, out-of-bounds memory accesses may occur in\ndecode_new_up_state_weight(). This happens because the bounds check for\nthe new_state part is based on calculating its length depending on a len\nvalue read from the incoming message. This calculation may overflow\nleading to an incorrect bounds check. Subsequently, out-of-bounds reads\nmay occur when decoding this part.\n\nThis patch switches the multiplication to use check_mul_overflow() to\nabort processing the osdmap if an overflow occurred. Therefore,\nosdmaps/messages containing large values for len that result in a\nmultiplication overflow are treated as invalid.\n\n[ idryomov: rename new_state_len -\u003e new_state_item_size, formatting ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Malformed incremental osdmap data is delivered in CEPH_MSG_OSD_MAP over TCP from a Ceph monitor (mon_dispatch) or OSD (osd_dispatch) to libceph clients (CephFS/RBD), and the overflow is triggered while decoding received network bytes in osdmap_apply_incremental().\nAC:L - A compromised or attacker-controlled monitor/OSD can publish an incremental osdmap with epoch N+1 and a crafted new_state length that wraps the multiply, reliably bypassing bounds checks without races or victim-specific memory layout.\nPR:N - Exploitation requires no privileges on the victim host; a malicious cluster peer or on-path attacker that can deliver forged osdmaps to an already-connected kernel Ceph client needs no local account, capabilities, or user-namespace tricks.\nUI:N - Once a host is a Ceph client, osdmap subscriptions and updates are applied automatically by the kernel; no additional mount, open, or interactive step is needed at exploit time beyond the existing client session.\nS:U - Impact is confined to kernel memory and libceph client state on the Ceph client host (info leak, map corruption, crash, or privilege escalation); it does not cross VM, IOMMU, or sandbox boundaries to another security authority.\nC:H - Integer-overflow bypass lets decode_new_up_state_weight() run bare ceph_decode_32/8 loops past the message end, performing out-of-bounds reads of adjacent kernel heap/slack memory that can disclose pointers and other sensitive data.\nI:H - Misaligned decoding also drives attacker-controlled osd/xorstate/weight values into map-\u003eosd_weight[], map-\u003eosd_state[], and map-\u003eosd_addr[] updates (including memset), corrupting kernel osdmap state in ways usable for further exploitation.\nA:H - Unbounded out-of-bounds reads while parsing osdmaps can fault on unmapped pages and trigger kernel oops/panic; map corruption can also cause persistent client failure, repeatable on each malicious incremental map."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:30:30.014Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2ceee3b77b83052648c40fef965f836fd7699d26"
},
{
"url": "https://git.kernel.org/stable/c/e4473751cc37db41f3f7da25d64a23e0c74570f1"
},
{
"url": "https://git.kernel.org/stable/c/f6961070c326bd158c38fa48756cde2bd78c4aaa"
},
{
"url": "https://git.kernel.org/stable/c/05c90e059269f087becfcce23348496085835c29"
},
{
"url": "https://git.kernel.org/stable/c/143ba49ead77ec483c0326f8aaad8649874e99c4"
},
{
"url": "https://git.kernel.org/stable/c/1732d89dfcd74f6fde9ce70900d316c4a151c153"
},
{
"url": "https://git.kernel.org/stable/c/bee4b5b53e7bff0467fd916cc44c9b190733c6bd"
},
{
"url": "https://git.kernel.org/stable/c/98917a499ec7064c14fc56d180a4fd636fc2784c"
}
],
"title": "libceph: Fix multiplication overflow in decode_new_up_state_weight()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68158",
"datePublished": "2026-08-10T11:59:24.675Z",
"dateReserved": "2026-07-30T09:28:09.371Z",
"dateUpdated": "2026-10-19T20:58:55.112Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89780 (GCVE-0-2026-89780)
Vulnerability from cvelistv5
Published
2026-09-16 08:48
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: qualcomm: rmnet: restore skb->dev on deaggregated frames
rmnet_map_deaggregate() allocates each sub-frame with alloc_skb() and
leaves skb->dev NULL. __rmnet_map_ingress_handler() assigns
skb->dev = ep->egress_dev only on the data path, but a MAP command frame
is dispatched to rmnet_map_command() before that, so rmnet_map_send_ack()
runs netif_tx_lock(skb->dev) on a NULL device. An unprivileged user
reaches this by unsharing a user+net namespace, creating an rmnet link
over a tap device with INGRESS_DEAGGREGATION and INGRESS_MAP_COMMANDS,
and writing an aggregated frame carrying a flow-control command to the
tap fd.
Restore the assignment dropped by 378e25357ac7, so every skb leaving
rmnet_map_deaggregate() has a valid device.
BUG: KASAN: null-ptr-deref in _raw_spin_lock (kernel/locking/spinlock.c:158)
Write of size 4 at addr 00000000000004b4 by task exploit/144
Call Trace:
_raw_spin_lock (kernel/locking/spinlock.c:158)
netif_tx_lock (net/sched/sch_generic.c:497)
rmnet_map_command (drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:67)
rmnet_rx_handler (drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c:125)
__netif_receive_skb_core.constprop.0 (net/core/dev.c:6103)
...
__netif_receive_skb_one_core (net/core/dev.c:6214)
netif_receive_skb (net/core/dev.c:6474)
tun_get_user (drivers/net/tun.c:1966)
tun_chr_write_iter (drivers/net/tun.c:2012)
vfs_write (fs/read_write.c:687)
ksys_write (fs/read_write.c:739)
do_syscall_64 (arch/x86/entry/syscall_64.c:94)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Kernel panic - not syncing: Fatal exception in interrupt
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c Version: 378e25357ac78ad02fbc98bec9b4e3baaa916c5c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5aaa7409c1b4ca4c60d66e2afa99703bf4eb7ddd",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "9b78ab84ddf97c06a8567edb62b6c0fd582f9a62",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "9d18c6c6cd1666b2cb7915cad052e22abf520997",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "4bcef54e4a3355a62d9ad90729fe563435ec76c3",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "b14c22c31d9e30f38ea1693ac06d318f32258f5d",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "7abe769e72c792e5f9eb273813eb3ecd8389854c",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "200460a0793dc6af97d3b36d92ac245350ac26fc",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
},
{
"lessThan": "a66734a1c5e36525ea07e9f4547fddc51e916de3",
"status": "affected",
"version": "378e25357ac78ad02fbc98bec9b4e3baaa916c5c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qualcomm: rmnet: restore skb-\u003edev on deaggregated frames\n\nrmnet_map_deaggregate() allocates each sub-frame with alloc_skb() and\nleaves skb-\u003edev NULL. __rmnet_map_ingress_handler() assigns\nskb-\u003edev = ep-\u003eegress_dev only on the data path, but a MAP command frame\nis dispatched to rmnet_map_command() before that, so rmnet_map_send_ack()\nruns netif_tx_lock(skb-\u003edev) on a NULL device. An unprivileged user\nreaches this by unsharing a user+net namespace, creating an rmnet link\nover a tap device with INGRESS_DEAGGREGATION and INGRESS_MAP_COMMANDS,\nand writing an aggregated frame carrying a flow-control command to the\ntap fd.\n\nRestore the assignment dropped by 378e25357ac7, so every skb leaving\nrmnet_map_deaggregate() has a valid device.\n\n BUG: KASAN: null-ptr-deref in _raw_spin_lock (kernel/locking/spinlock.c:158)\n Write of size 4 at addr 00000000000004b4 by task exploit/144\n Call Trace:\n _raw_spin_lock (kernel/locking/spinlock.c:158)\n netif_tx_lock (net/sched/sch_generic.c:497)\n rmnet_map_command (drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:67)\n rmnet_rx_handler (drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c:125)\n __netif_receive_skb_core.constprop.0 (net/core/dev.c:6103)\n ...\n __netif_receive_skb_one_core (net/core/dev.c:6214)\n netif_receive_skb (net/core/dev.c:6474)\n tun_get_user (drivers/net/tun.c:1966)\n tun_chr_write_iter (drivers/net/tun.c:2012)\n vfs_write (fs/read_write.c:687)\n ksys_write (fs/read_write.c:739)\n do_syscall_64 (arch/x86/entry/syscall_64.c:94)\n entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)\n Kernel panic - not syncing: Fatal exception in interrupt"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:32.479Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5aaa7409c1b4ca4c60d66e2afa99703bf4eb7ddd"
},
{
"url": "https://git.kernel.org/stable/c/9b78ab84ddf97c06a8567edb62b6c0fd582f9a62"
},
{
"url": "https://git.kernel.org/stable/c/9d18c6c6cd1666b2cb7915cad052e22abf520997"
},
{
"url": "https://git.kernel.org/stable/c/4bcef54e4a3355a62d9ad90729fe563435ec76c3"
},
{
"url": "https://git.kernel.org/stable/c/b14c22c31d9e30f38ea1693ac06d318f32258f5d"
},
{
"url": "https://git.kernel.org/stable/c/7abe769e72c792e5f9eb273813eb3ecd8389854c"
},
{
"url": "https://git.kernel.org/stable/c/200460a0793dc6af97d3b36d92ac245350ac26fc"
},
{
"url": "https://git.kernel.org/stable/c/a66734a1c5e36525ea07e9f4547fddc51e916de3"
}
],
"title": "net: qualcomm: rmnet: restore skb-\u003edev on deaggregated frames",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89780",
"datePublished": "2026-09-16T08:48:19.760Z",
"dateReserved": "2026-09-11T19:38:34.765Z",
"dateUpdated": "2026-10-19T08:52:32.479Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74598 (GCVE-0-2026-74598)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: fix Route Information option length validation
rt6_route_rcv() validates the Route Information option (RFC 4191) length
against the prefix length, but both checks are off by one.
rinfo->length is the ND option length in units of 8 octets and it
*includes* the 8-byte option header, so an option carrying N bytes of
prefix has length == 1 + N/8. RFC 4191 section 2.3 requires length 3
when Prefix Length is greater than 64, and 2 or 3 when it is greater
than 0. The code accepts length >= 2 and length >= 1 respectively.
ipv6_addr_prefix() then copies prefix_len/8 bytes out of rinfo->prefix,
so a Router Advertisement with (prefix_len=128, length=2) or
(prefix_len=64, length=1) makes the kernel read up to 8 bytes past the
end of the option. Those bytes end up in the prefix of the route that
gets installed, so they are visible to userspace:
# RA with a Route Information option (prefix_len=128, length=2)
# followed by a source link-layer address option, 01 01 de ad be ef ca fe
$ ip -6 route show
2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra
^^^^^^^^^^^^^^^^^^ the next option, read out of bounds
When the Route Information option is the last one in the packet, those
eight bytes come from the skb tail room instead.
Reject the option lengths RFC 4191 does not allow.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc Version: 70ceb4f53929f73746be72f73707cd9f8753e2fc |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74598",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:53.979806Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:00.288Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/route.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2f6f94eda12430fb41b24b44a71e2ea4e93561d7",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "7eac87396c44a312be457ef41d4c5687883be9a2",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "7309529f257ae18e72112ef9f614edfd6df229bb",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "0b9e02f3bd31c888f2ccdc0ca08e546d6abe9c4d",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "ff3cb05289b8a4ef95fa7ea14c7d34818359edbb",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "3b2231e358d26e3aec5d8040b1fb777af03c5f05",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "da64ed1f346ba84df574d6469fa2e422b2511719",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
},
{
"lessThan": "d1ad8fb2ac6a1afb71dc22d9ae8efb4dda96c824",
"status": "affected",
"version": "70ceb4f53929f73746be72f73707cd9f8753e2fc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/route.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.17"
},
{
"lessThan": "2.6.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: fix Route Information option length validation\n\nrt6_route_rcv() validates the Route Information option (RFC 4191) length\nagainst the prefix length, but both checks are off by one.\n\nrinfo-\u003elength is the ND option length in units of 8 octets and it\n*includes* the 8-byte option header, so an option carrying N bytes of\nprefix has length == 1 + N/8. RFC 4191 section 2.3 requires length 3\nwhen Prefix Length is greater than 64, and 2 or 3 when it is greater\nthan 0. The code accepts length \u003e= 2 and length \u003e= 1 respectively.\n\nipv6_addr_prefix() then copies prefix_len/8 bytes out of rinfo-\u003eprefix,\nso a Router Advertisement with (prefix_len=128, length=2) or\n(prefix_len=64, length=1) makes the kernel read up to 8 bytes past the\nend of the option. Those bytes end up in the prefix of the route that\ngets installed, so they are visible to userspace:\n\n # RA with a Route Information option (prefix_len=128, length=2)\n # followed by a source link-layer address option, 01 01 de ad be ef ca fe\n $ ip -6 route show\n 2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra\n ^^^^^^^^^^^^^^^^^^ the next option, read out of bounds\n\nWhen the Route Information option is the last one in the packet, those\neight bytes come from the skb tail room instead.\n\nReject the option lengths RFC 4191 does not allow."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached from inbound ICMPv6 Router Advertisements on the standard IPv6 receive path (ip6_input\u2192icmpv6_rcv\u2192ndisc_rcv\u2192ndisc_router_discovery\u2192rt6_route_rcv), so a network peer can trigger it on hosts accepting RAs (phones, laptops, IoT, containers on shared L2).\nAC:L - Once the victim accepts non-zero Route Information prefixes, an attacker fully controls prefix_len and option length in forged RAs and can deterministically trigger the out-of-bounds read (up to 8 bytes) without races or uncontrollable memory layout.\nPR:N - Exploitation requires only sending crafted ICMPv6 RAs on the victim\u0027s link; the attacker needs no account, capabilities, or init-namespace root on the target, only the ability to inject ND traffic the host will process.\nUI:N - No victim user action is required beyond normal IPv6 connectivity; RA/Route Information processing runs automatically in the kernel when accept_ra and related sysctls permit it.\nS:U - Impact is confined to kernel IPv6 routing state leaking into the same host\u0027s userspace route table; it does not cross VM, container, or IOMMU security boundaries into a separate authority.\nC:H - ipv6_addr_prefix() performs an out-of-bounds read of up to eight bytes past the Route Information option (from following ND options or skb tailroom), and those kernel bytes are stored in the installed route prefix visible to userspace via netlink or ip -6 route.\nI:N - The bug is a bounded out-of-bounds read into a stack buffer followed by route installation; it does not corrupt kernel memory, enable arbitrary writes, or provide a demonstrated control-flow hijack primitive.\nA:N - The vulnerable path only mis-handles prefix extraction and installs a route with leaked bytes; it does not cause kernel oops, panic, hang, or demonstrated denial of service beyond incorrect route data."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:24.953Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2f6f94eda12430fb41b24b44a71e2ea4e93561d7"
},
{
"url": "https://git.kernel.org/stable/c/7eac87396c44a312be457ef41d4c5687883be9a2"
},
{
"url": "https://git.kernel.org/stable/c/7309529f257ae18e72112ef9f614edfd6df229bb"
},
{
"url": "https://git.kernel.org/stable/c/0b9e02f3bd31c888f2ccdc0ca08e546d6abe9c4d"
},
{
"url": "https://git.kernel.org/stable/c/ff3cb05289b8a4ef95fa7ea14c7d34818359edbb"
},
{
"url": "https://git.kernel.org/stable/c/3b2231e358d26e3aec5d8040b1fb777af03c5f05"
},
{
"url": "https://git.kernel.org/stable/c/da64ed1f346ba84df574d6469fa2e422b2511719"
},
{
"url": "https://git.kernel.org/stable/c/d1ad8fb2ac6a1afb71dc22d9ae8efb4dda96c824"
}
],
"title": "ipv6: fix Route Information option length validation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74598",
"datePublished": "2026-08-22T15:31:47.859Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:06:00.288Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68454 (GCVE-0-2026-68454)
Vulnerability from cvelistv5
Published
2026-08-13 13:59
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: s390: pci: Fix handling of AIF enable without AISB
When a guest seeks to register IRQs without a summary bit specified,
ensure that the associated GAITE then stores 0 for the guest AISB
location instead of virt_to_phys(page_address(NULL)).
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68454",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:23.202156Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:11.404Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/s390/kvm/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f887df91826e72b570c5e9298e66dd929f09edde",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "3ef3190e30601b2688bdc64169b938b8d7f42010",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "d48b9b096d11e31690c0a4988f65f21b64c01b2a",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "df72596278b0e22dac5ef2881e9221a3a2c4ed11",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "124a3769c43713a11a93a821b313e61ad5110cb8",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "3e3aa6da87d30a0064a17b836685cd43c90a3572",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/s390/kvm/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: s390: pci: Fix handling of AIF enable without AISB\n\nWhen a guest seeks to register IRQs without a summary bit specified,\nensure that the associated GAITE then stores 0 for the guest AISB\nlocation instead of virt_to_phys(page_address(NULL))."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable code is reached through the KVM_S390_ZPCI_OP VM ioctl, issued by the userspace VMM on behalf of a guest executing the mpcifc \"register adapter interrupts\" instruction for an assigned zPCI device; no network path exists.\nAC:L - The guest simply registers adapter-event notification with no summary bit (sb == 0), which deterministically stores virt_to_phys(page_address(NULL)) into the GAITE; the subsequent wild access is then triggered at will by device interrupt activity or by deregistering/tearing down the VM.\nPR:L - The attacker needs access to a KVM VM file descriptor with an assigned zPCI device, i.e. control of a guest kernel or of the unprivileged QEMU process; no host root or init-namespace privilege is required.\nUI:N - The guest triggers the register/deregister sequence entirely on its own; no host administrator or other user action is needed.\nS:C - A guest action corrupts host kernel state outside the VM\u0027s security authority \u2014 the GAITE is host-owned and the resulting wild accesses occur in host kernel context, crossing the guest/hypervisor boundary.\nC:H - kvm_s390_pci_aif_disable() turns the bogus physical address into a struct page via phys_to_page() and reads folio metadata from it, an out-of-bounds vmemmap read; the resulting refcount underflow can free memory still in use, yielding a read primitive over host memory belonging to the hypervisor and other guests.\nI:H - aen_host_forward() performs set_bit_inv() on phys_to_virt(garbage) \u2014 an atomic OR write at a wild host kernel address \u2014 and unpin_user_page() decrements the refcount of a fabricated struct page, giving host memory corruption and a premature-free primitive usable for control-flow hijack.\nA:H - The wild atomic write in hard-IRQ context and the bogus struct page dereference reliably produce an addressing exception / kernel panic in the host, taking down the hypervisor and every guest on it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:05:54.455Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f887df91826e72b570c5e9298e66dd929f09edde"
},
{
"url": "https://git.kernel.org/stable/c/3ef3190e30601b2688bdc64169b938b8d7f42010"
},
{
"url": "https://git.kernel.org/stable/c/d48b9b096d11e31690c0a4988f65f21b64c01b2a"
},
{
"url": "https://git.kernel.org/stable/c/df72596278b0e22dac5ef2881e9221a3a2c4ed11"
},
{
"url": "https://git.kernel.org/stable/c/124a3769c43713a11a93a821b313e61ad5110cb8"
},
{
"url": "https://git.kernel.org/stable/c/3e3aa6da87d30a0064a17b836685cd43c90a3572"
}
],
"title": "KVM: s390: pci: Fix handling of AIF enable without AISB",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68454",
"datePublished": "2026-08-13T13:59:57.209Z",
"dateReserved": "2026-07-30T09:28:09.395Z",
"dateUpdated": "2026-10-19T21:09:11.404Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74443 (GCVE-0-2026-74443)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: bound DMA command body size against suffix pointer
vmw_cmd_dma() locates the DMA suffix at
(unsigned long) &cmd->body + header->size - sizeof(*suffix)
without checking that header->size is large enough to contain both
cmd->body and the suffix. An undersized header makes the suffix
pointer underflow back into the previous command in the bounce
buffer. The verifier later writes suffix->maximumOffset, clobbering
verified fields of an already-relocated earlier command -- a TOCTOU
on the device-visible command stream that lets one command rewrite
another's GMR id, surface id, or other authenticated fields.
Reject the command if the body is too small for the suffix to fit.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 Version: 4e4ddd47774313accc86b233d6ca2c6a9037a671 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74443",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:31.688956Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:45.672Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "eb20f418933bea53375843b27b4022c1810be63b",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "fcd1e56e7816b31a1050ccc67df722b20f6bb15d",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "a4a37080a5ac777b59306cfcdf854cc05d7604d4",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "036e16ada95389bdc30f41068af04c1d0872fad0",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "d5d7ada4e1296b00d89fe82b2ca850cc7809d6f7",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "7e40e6120fb232a10b543ffd994e5c6d8f3a2cc6",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "9759da60e38d7b9db44dc92713e4e0391883d221",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
},
{
"lessThan": "f4f1db96bfd68b81053693ba53405b6f510ac16c",
"status": "affected",
"version": "4e4ddd47774313accc86b233d6ca2c6a9037a671",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: bound DMA command body size against suffix pointer\n\nvmw_cmd_dma() locates the DMA suffix at\n\n\t(unsigned long) \u0026cmd-\u003ebody + header-\u003esize - sizeof(*suffix)\n\nwithout checking that header-\u003esize is large enough to contain both\ncmd-\u003ebody and the suffix. An undersized header makes the suffix\npointer underflow back into the previous command in the bounce\nbuffer. The verifier later writes suffix-\u003emaximumOffset, clobbering\nverified fields of an already-relocated earlier command -- a TOCTOU\non the device-visible command stream that lets one command rewrite\nanother\u0027s GMR id, surface id, or other authenticated fields.\n\nReject the command if the body is too small for the suffix to fit."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires issuing DRM_IOCTL_VMW_EXECBUF with a crafted SVGA command batch via /dev/dri/card* or /dev/dri/renderD*, the standard local DRM render-node path for the vmwgfx driver in VMware virtual machines.\nAC:L - The attacker fully controls execbuf command layout and can set an undersized SVGA_3D_CMD_SURFACE_DMA header-\u003esize so the suffix pointer underflows into the prior command; no races, rare configs, or victim-dependent heap layout are required.\nPR:L - VMW_EXECBUF is registered with DRM_RENDER_ALLOW, so any local user with access to the DRM render node (typically membership in the render/video group on VMware guests) can reach vmw_cmd_dma without real root in the init namespace.\nUI:N - No victim interaction is required beyond the attacker opening the DRM device and submitting a malicious execbuf ioctl; exploitation does not depend on another user mounting filesystems or performing other actions.\nS:C - The bug is a TOCTOU on the device-visible SVGA command stream: verifier writes clobber already-checked fields (GMR id, surface id, DMA bounds) in the bounce buffer before submission to the VMware virtual GPU, bypassing guest/host isolation enforced by command authentication.\nC:H - Rewriting authenticated GMR/surface identifiers or inflating maximumOffset can authorize SVGA surface DMA reads (including SVGA3D_READ_HOST_VRAM) beyond validated guest buffer bounds, yielding arbitrary guest memory disclosure and plausible host VRAM reads via the virtual device backend.\nI:H - Clobbering verified command fields lets a later command rewrite another\u0027s GMR id, surface id, or DMA limit so the hypervisor executes unauthorized SVGA3D_WRITE_HOST_VRAM or guest GMR DMA, enabling arbitrary memory write and code-execution primitives typical of kernel heap corruption.\nA:H - Corrupting the bounce-buffer command stream before FIFO submission can panic the guest kernel (invalid SVGA commands/resources) and enables repeatable denial of service; memory corruption in the verifier path is independently rated High per kernel CVSS guidance."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:35.874Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/eb20f418933bea53375843b27b4022c1810be63b"
},
{
"url": "https://git.kernel.org/stable/c/fcd1e56e7816b31a1050ccc67df722b20f6bb15d"
},
{
"url": "https://git.kernel.org/stable/c/a4a37080a5ac777b59306cfcdf854cc05d7604d4"
},
{
"url": "https://git.kernel.org/stable/c/036e16ada95389bdc30f41068af04c1d0872fad0"
},
{
"url": "https://git.kernel.org/stable/c/d5d7ada4e1296b00d89fe82b2ca850cc7809d6f7"
},
{
"url": "https://git.kernel.org/stable/c/7e40e6120fb232a10b543ffd994e5c6d8f3a2cc6"
},
{
"url": "https://git.kernel.org/stable/c/9759da60e38d7b9db44dc92713e4e0391883d221"
},
{
"url": "https://git.kernel.org/stable/c/f4f1db96bfd68b81053693ba53405b6f510ac16c"
}
],
"title": "drm/vmwgfx: bound DMA command body size against suffix pointer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74443",
"datePublished": "2026-08-15T12:26:50.826Z",
"dateReserved": "2026-08-15T05:44:03.898Z",
"dateUpdated": "2026-10-16T19:05:45.672Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89684 (GCVE-0-2026-89684)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix cpntf publish race in nfs4_init_cp_state
nfs4_alloc_init_cpntf_state() published the new cpntf entry into the
s2s_cp_stateids IDR (with cs_type set) in one s2s_cp_lock section, then
took the lock again to list_add() it onto p_stid->sc_cp_list. In the gap
the entry is reachable by so_id but cp_list is still {NULL,NULL} from
kzalloc. A racing OFFLOAD_CANCEL (so_id is echoed to the client as
cnr_stateid, so any NFSv4.2 client can drive it) reaches
manage_cpntf_state() -> _free_cpntf_state_locked() and does list_del() on
the zeroed list_head, oopsing the server.
Fold the cs_type assignment and the list_add() into the same critical
section as idr_alloc_cyclic(), so a concurrent lookup either misses the
entry or sees a fully linked cp_list. INIT_LIST_HEAD() the entry after
allocation and switch _free_cpntf_state_locked() to list_del_init() so a
stale unlink is a no-op. nfs4_init_copy_state() passes NULL p_stid and
skips the list_add, preserving NFS4_COPY_STID semantics.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "63e18fc65587fd3f7b4c6d70e96d32fc41d82ba3",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "6ac469a274e3c7d87fc46ba46d83b95009680407",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "8eeca993357a0bc35aaefebfd7462ac7b0a21d9a",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "bfeac42d9074e539bacd1898dd8c14b7f5776620",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "21d6c5957f5ca97d7352e60f55ea412beb9419f5",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "a631a26a8777bb235eabd478bbbaf26a4db750bf",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "c7270f62e7a05a2ee68aa2b74262b658a14463bd",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "be3a5c1d857b0dcbc11796cea603ef25834f75b2",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix cpntf publish race in nfs4_init_cp_state\n\nnfs4_alloc_init_cpntf_state() published the new cpntf entry into the\ns2s_cp_stateids IDR (with cs_type set) in one s2s_cp_lock section, then\ntook the lock again to list_add() it onto p_stid-\u003esc_cp_list. In the gap\nthe entry is reachable by so_id but cp_list is still {NULL,NULL} from\nkzalloc. A racing OFFLOAD_CANCEL (so_id is echoed to the client as\ncnr_stateid, so any NFSv4.2 client can drive it) reaches\nmanage_cpntf_state() -\u003e _free_cpntf_state_locked() and does list_del() on\nthe zeroed list_head, oopsing the server.\n\nFold the cs_type assignment and the list_add() into the same critical\nsection as idr_alloc_cyclic(), so a concurrent lookup either misses the\nentry or sees a fully linked cp_list. INIT_LIST_HEAD() the entry after\nallocation and switch _free_cpntf_state_locked() to list_del_init() so a\nstale unlink is a no-op. nfs4_init_copy_state() passes NULL p_stid and\nskips the list_add, preserving NFS4_COPY_STID semantics."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in nfsd NFSv4.2 COPY_NOTIFY/OFFLOAD_CANCEL (nfsd4_copy_notify, nfs4_alloc_init_cpntf_state, manage_cpntf_state). Compounds reach nfsd4_proc_compound via svc_process on TCP/2049, so a remote NFS client triggers the published cpntf IDR entry over the network.\nAC:L - The attacker drives both sides: COPY_NOTIFY publishes the cpntf into s2s_cp_stateids while a concurrent OFFLOAD_CANCEL uses the leaked s2s_cp_cl_id and cyclic so_id to list_del the still-zeroed cp_list. The window is retryable on multiple session slots with no victim-controlled state.\nPR:N - Default AUTH_SYS/AUTH_NULL nfsd exports do no cryptographic authentication. Any host allowed by the export ACL can EXCHANGE_ID/CREATE_SESSION, OPEN a readable file, and issue COPY_NOTIFY and OFFLOAD_CANCEL; no local account or capability on the NFS server is required.\nUI:N - The attacking NFS client sends COPY_NOTIFY and the concurrent OFFLOAD_CANCEL itself; no victim user or administrator action on the NFS server is required at attack time.\nS:U - list_del of the uninitialized cp_list oopses an nfsd worker in the host kernel copy-notify tables. Impact stays in that kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:N - The race is list_del on a kzalloc\u0027d nfs4_cpntf_state.cp_list still {NULL,NULL}, a NULL-pointer dereference in __list_del. It oopses without reading kernel memory or providing an information-disclosure primitive.\nI:N - The only write is next-\u003eprev/prev-\u003enext through NULL list pointers from kzalloc; a remote NFS client cannot map the NULL page, so this is not a kernel write or control-flow hijack primitive.\nA:H - list_del on the zeroed list_head oopses or panics the nfsd thread (and can leak s2s_cp_lock). The attacker can repeat the concurrent COMPOUND sequence to deny NFS service and take down the server."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:57.622Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/63e18fc65587fd3f7b4c6d70e96d32fc41d82ba3"
},
{
"url": "https://git.kernel.org/stable/c/6ac469a274e3c7d87fc46ba46d83b95009680407"
},
{
"url": "https://git.kernel.org/stable/c/8eeca993357a0bc35aaefebfd7462ac7b0a21d9a"
},
{
"url": "https://git.kernel.org/stable/c/bfeac42d9074e539bacd1898dd8c14b7f5776620"
},
{
"url": "https://git.kernel.org/stable/c/21d6c5957f5ca97d7352e60f55ea412beb9419f5"
},
{
"url": "https://git.kernel.org/stable/c/a631a26a8777bb235eabd478bbbaf26a4db750bf"
},
{
"url": "https://git.kernel.org/stable/c/c7270f62e7a05a2ee68aa2b74262b658a14463bd"
},
{
"url": "https://git.kernel.org/stable/c/be3a5c1d857b0dcbc11796cea603ef25834f75b2"
}
],
"title": "nfsd: fix cpntf publish race in nfs4_init_cp_state",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89684",
"datePublished": "2026-09-11T19:46:06.374Z",
"dateReserved": "2026-09-11T19:38:34.748Z",
"dateUpdated": "2026-10-19T08:50:57.622Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63963 (GCVE-0-2026-63963)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-10-21 12:42
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: tcpm: validate VDO count in Discover Identity ACK handlers
Properly validate the count passed from a device when calling
svdm_consume_identity() or svdm_consume_identity_sop_prime() as the
device-controlled value could index off of the static arrays, which
could leak data.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/usb/typec/tcpm/tcpm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6bacd22e1eae77abf089bbdc016270200a8dc83b",
"status": "affected",
"version": "f0690a25a140b853b1842fa80faf828601bb47e8",
"versionType": "git"
},
{
"lessThan": "569f7971542eb10025d8a0989b83f28a29d8ba20",
"status": "affected",
"version": "f0690a25a140b853b1842fa80faf828601bb47e8",
"versionType": "git"
},
{
"lessThan": "f9d787fbe83127105e42088cca40e5118db0d810",
"status": "affected",
"version": "f0690a25a140b853b1842fa80faf828601bb47e8",
"versionType": "git"
},
{
"lessThan": "ed8649f3822e211d025bcab5158af6f8a38c8705",
"status": "affected",
"version": "f0690a25a140b853b1842fa80faf828601bb47e8",
"versionType": "git"
},
{
"lessThan": "8fbc349e8383125dd2d8de1c1e926279d398ab17",
"status": "affected",
"version": "f0690a25a140b853b1842fa80faf828601bb47e8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/usb/typec/tcpm/tcpm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: typec: tcpm: validate VDO count in Discover Identity ACK handlers\n\nProperly validate the count passed from a device when calling\nsvdm_consume_identity() or svdm_consume_identity_sop_prime() as the\ndevice-controlled value could index off of the static arrays, which\ncould leak data."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:42:46.982Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6bacd22e1eae77abf089bbdc016270200a8dc83b"
},
{
"url": "https://git.kernel.org/stable/c/569f7971542eb10025d8a0989b83f28a29d8ba20"
},
{
"url": "https://git.kernel.org/stable/c/f9d787fbe83127105e42088cca40e5118db0d810"
},
{
"url": "https://git.kernel.org/stable/c/ed8649f3822e211d025bcab5158af6f8a38c8705"
},
{
"url": "https://git.kernel.org/stable/c/8fbc349e8383125dd2d8de1c1e926279d398ab17"
}
],
"title": "usb: typec: tcpm: validate VDO count in Discover Identity ACK handlers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63963",
"datePublished": "2026-07-19T14:55:52.388Z",
"dateReserved": "2026-07-19T07:54:57.024Z",
"dateUpdated": "2026-10-21T12:42:46.982Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-81001 (GCVE-0-2026-81001)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
slip: fix use-after-free in sl_sync()
slip_devs[] stores bare net_device pointers and takes no reference on
them. sl_sync() and sl_alloc() walk that table from slip_open() under
rtnl_lock(), while an entry is dropped by sl_free_netdev(), which
sl_setup() installs as dev->priv_destructor.
priv_destructor is called from netdev_run_todo(), which deliberately
runs with the RTNL semaphore released so that it can sleep while waiting
for the device refcount to drop:
/* Snapshot list, allow later requests */
list_replace_init(&net_todo_list, &list);
__rtnl_unlock();
...
if (dev->priv_destructor)
dev->priv_destructor(dev); /* slip_devs[i] = NULL */
if (dev->needs_free_netdev)
free_netdev(dev);
...
/* Free network device */
kobject_put(&dev->dev.kobj);
So rtnl_lock() does not serialise slip_open() against the teardown at
all. sl_sync() can load slip_devs[i] while the entry is still published
and dereference it after netdev_run_todo() has run the destructor and
released the device:
CPU0 (slip_open) CPU1 (slip_close)
unregister_netdev()
rtnl_unlock()
netdev_run_todo()
__rtnl_unlock()
rtnl_lock()
sl_sync()
dev = slip_devs[i]
priv_destructor(dev)
slip_devs[i] = NULL
kobject_put(&dev->dev.kobj)
/* dev is freed */
sl = netdev_priv(dev)
if (sl->tty || sl->leased) /* use-after-free */
BUG: KASAN: use-after-free in sl_sync drivers/net/slip/slip.c:730 [inline]
BUG: KASAN: use-after-free in slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806
Read of size 1 at addr ffff8880712dac71 by task syz-executor.2/6506
CPU: 2 PID: 6506 Comm: syz-executor.2 Not tainted 6.1.134-syzkaller-00260-g0c8fc3469765 #0
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
Call Trace:
sl_sync drivers/net/slip/slip.c:730 [inline]
slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806
tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433
tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564
tiocsetd drivers/tty/tty_io.c:2428 [inline]
tty_ioctl+0x5f0/0x1530 drivers/tty/tty_io.c:2712
Allocated by task 6502:
alloc_netdev_mqs+0x98/0xfe0 net/core/dev.c:10719
sl_alloc drivers/net/slip/slip.c:756 [inline]
slip_open+0x36d/0x1210 drivers/net/slip/slip.c:817
tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433
tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564
Freed by task 6497:
device_release+0xa2/0x240 drivers/base/core.c:2507
kobject_put+0x179/0x280 lib/kobject.c:729
netdev_run_todo+0x6c8/0xef0 net/core/dev.c:10509
slip_close+0x166/0x1c0 drivers/net/slip/slip.c:906
tty_ldisc_close+0x113/0x1a0 drivers/tty/tty_ldisc.c:456
tty_ldisc_kill+0x94/0x160 drivers/tty/tty_ldisc.c:614
tty_ldisc_release+0xe3/0x2b0 drivers/tty/tty_ldisc.c:782
tty_release+0xbcc/0xe70 drivers/tty/tty_io.c:1860
Commit e58c19124189 ("slip: Fix use-after-free Read in slip_open") fixed
a different source of stale entries - a device left in slip_devs[] after
slip_open() freed it on the registration error path - and does not
address this race, which is why the report survives it.
Drop the entry from ndo_uninit instead. unregister_netdevice() calls
ndo_uninit under RTNL, before the device is queued to netdev_run_todo(),
so an entry that sl_sync() can still see while holding RTNL belongs to a
device that cannot be freed until RTNL is dropped. sl_free_netdev()
stays only for the slip_open() error path, where register_netdevice()
may have failed before ndo_init and ndo_uninit is then not called
either. Both running for the same device is harmless: the
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 Version: 5342b77c4123ba39f911d92a813295fb3bb21f69 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-81001",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:06.585249Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:38.316Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/slip/slip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "045e307ac21fbd735b789d8817b21be4d8ead054",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "87398cdec8bdf84096a8af4dbccdb04f1972f32c",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "e93ace1f46177a4f7b5a8e5996606cdf77e1e890",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "70e20456bcbf7f3ae145bb96e5548f827a37c640",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "a235b20972bbd98ca1fb127d6269434edc607f19",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "486577db807891d0f964fdf13c1640c7f54b0ad1",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "d6f25e5bd777b05880da8673daf74a8419480545",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
},
{
"lessThan": "2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d",
"status": "affected",
"version": "5342b77c4123ba39f911d92a813295fb3bb21f69",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/slip/slip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.32"
},
{
"lessThan": "2.6.32",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.32",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nslip: fix use-after-free in sl_sync()\n\nslip_devs[] stores bare net_device pointers and takes no reference on\nthem. sl_sync() and sl_alloc() walk that table from slip_open() under\nrtnl_lock(), while an entry is dropped by sl_free_netdev(), which\nsl_setup() installs as dev-\u003epriv_destructor.\n\npriv_destructor is called from netdev_run_todo(), which deliberately\nruns with the RTNL semaphore released so that it can sleep while waiting\nfor the device refcount to drop:\n\n\t/* Snapshot list, allow later requests */\n\tlist_replace_init(\u0026net_todo_list, \u0026list);\n\n\t__rtnl_unlock();\n\t...\n\t\tif (dev-\u003epriv_destructor)\n\t\t\tdev-\u003epriv_destructor(dev);\t/* slip_devs[i] = NULL */\n\t\tif (dev-\u003eneeds_free_netdev)\n\t\t\tfree_netdev(dev);\n\t\t...\n\t\t/* Free network device */\n\t\tkobject_put(\u0026dev-\u003edev.kobj);\n\nSo rtnl_lock() does not serialise slip_open() against the teardown at\nall. sl_sync() can load slip_devs[i] while the entry is still published\nand dereference it after netdev_run_todo() has run the destructor and\nreleased the device:\n\n CPU0 (slip_open) CPU1 (slip_close)\n unregister_netdev()\n rtnl_unlock()\n netdev_run_todo()\n __rtnl_unlock()\n rtnl_lock()\n sl_sync()\n dev = slip_devs[i]\n priv_destructor(dev)\n slip_devs[i] = NULL\n kobject_put(\u0026dev-\u003edev.kobj)\n /* dev is freed */\n sl = netdev_priv(dev)\n if (sl-\u003etty || sl-\u003eleased) /* use-after-free */\n\n BUG: KASAN: use-after-free in sl_sync drivers/net/slip/slip.c:730 [inline]\n BUG: KASAN: use-after-free in slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806\n Read of size 1 at addr ffff8880712dac71 by task syz-executor.2/6506\n\n CPU: 2 PID: 6506 Comm: syz-executor.2 Not tainted 6.1.134-syzkaller-00260-g0c8fc3469765 #0\n Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014\n Call Trace:\n sl_sync drivers/net/slip/slip.c:730 [inline]\n slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806\n tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433\n tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564\n tiocsetd drivers/tty/tty_io.c:2428 [inline]\n tty_ioctl+0x5f0/0x1530 drivers/tty/tty_io.c:2712\n\n Allocated by task 6502:\n alloc_netdev_mqs+0x98/0xfe0 net/core/dev.c:10719\n sl_alloc drivers/net/slip/slip.c:756 [inline]\n slip_open+0x36d/0x1210 drivers/net/slip/slip.c:817\n tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433\n tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564\n\n Freed by task 6497:\n device_release+0xa2/0x240 drivers/base/core.c:2507\n kobject_put+0x179/0x280 lib/kobject.c:729\n netdev_run_todo+0x6c8/0xef0 net/core/dev.c:10509\n slip_close+0x166/0x1c0 drivers/net/slip/slip.c:906\n tty_ldisc_close+0x113/0x1a0 drivers/tty/tty_ldisc.c:456\n tty_ldisc_kill+0x94/0x160 drivers/tty/tty_ldisc.c:614\n tty_ldisc_release+0xe3/0x2b0 drivers/tty/tty_ldisc.c:782\n tty_release+0xbcc/0xe70 drivers/tty/tty_io.c:1860\n\nCommit e58c19124189 (\"slip: Fix use-after-free Read in slip_open\") fixed\na different source of stale entries - a device left in slip_devs[] after\nslip_open() freed it on the registration error path - and does not\naddress this race, which is why the report survives it.\n\nDrop the entry from ndo_uninit instead. unregister_netdevice() calls\nndo_uninit under RTNL, before the device is queued to netdev_run_todo(),\nso an entry that sl_sync() can still see while holding RTNL belongs to a\ndevice that cannot be freed until RTNL is dropped. sl_free_netdev()\nstays only for the slip_open() error path, where register_netdevice()\nmay have failed before ndo_init and ndo_uninit is then not called\neither. Both running for the same device is harmless: the\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only via local TTY syscalls: open(\"/dev/ptmx\") then ioctl(TIOCSETD, N_SLIP) into tty_ioctl\u2192tiocsetd\u2192tty_set_ldisc\u2192slip_open\u2192sl_sync, raced with close()\u2192slip_close\u2192unregister_netdev. sl_sync() is not on the packet-receive path, so the vector is Local rather than Network or Physical.\nAC:L - The attacker controls both sides of the race, looping open(ptmx)+TIOCSETD(N_SLIP)+close() on several threads as in the syzkaller reproducer. netdev_run_todo() drops RTNL during attacker-initiated teardown, so winning the window does not depend on victim state or other uninfluenceable timing.\nPR:L - slip_open() requires capable(CAP_NET_ADMIN), which checks init_user_ns and is not granted by unshare -Urn. CAP_NET_ADMIN in the initial user namespace is still routinely delegated to non-root container and network workloads (Docker/K8s --cap-add=NET_ADMIN, CNI/VPN sidecars) without full host root, so privileges required are Low.\nUI:N - The attacker performs every step\u2014opening PTYs, attaching N_SLIP, and closing fds\u2014in its own processes. No separate victim user or administrator action is required at exploit time.\nS:U - The UAF corrupts a host-kernel net_device from alloc_netdev() and remains inside that kernel\u2019s security authority. Impact is standard local privilege escalation, not a VM escape or IOMMU/DMA boundary bypass.\nC:H - sl_sync() dereferences a freed net_device and its embedded struct slip (netdev_priv). Per kernel CNA guidance a use-after-free lets the attacker control the freed object via heap spray, yielding an arbitrary kernel read primitive.\nI:H - After the UAF load, sl_sync() may call dev_close() on the freed or reused net_device, exercising netdev_ops and related kernel state. That is a use-after-free of an object with function pointers, enabling arbitrary writes and control-flow hijacking.\nA:H - Use-after-free of the SLIP net_device causes a kernel oops or panic even when not fully exploited; KASAN reported a slab-use-after-free in sl_sync() on the syzkaller reproducer."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:25.639Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/045e307ac21fbd735b789d8817b21be4d8ead054"
},
{
"url": "https://git.kernel.org/stable/c/87398cdec8bdf84096a8af4dbccdb04f1972f32c"
},
{
"url": "https://git.kernel.org/stable/c/e93ace1f46177a4f7b5a8e5996606cdf77e1e890"
},
{
"url": "https://git.kernel.org/stable/c/70e20456bcbf7f3ae145bb96e5548f827a37c640"
},
{
"url": "https://git.kernel.org/stable/c/a235b20972bbd98ca1fb127d6269434edc607f19"
},
{
"url": "https://git.kernel.org/stable/c/486577db807891d0f964fdf13c1640c7f54b0ad1"
},
{
"url": "https://git.kernel.org/stable/c/d6f25e5bd777b05880da8673daf74a8419480545"
},
{
"url": "https://git.kernel.org/stable/c/2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d"
}
],
"title": "slip: fix use-after-free in sl_sync()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-81001",
"datePublished": "2026-09-11T19:42:54.846Z",
"dateReserved": "2026-08-26T14:34:25.812Z",
"dateUpdated": "2026-10-19T08:46:25.639Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64507 (GCVE-0-2026-64507)
Vulnerability from cvelistv5
Published
2026-07-25 08:52
Modified
2026-08-19 16:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/bugs: Enable IBPB flush on BPF JIT allocation
Enable hardening against JIT spraying when Spectre-v2 mitigations are in
use. Specifically, issue an IBPB flush on BPF JIT memory reuse. Skip
enabling the IBPB flush if the BPF dispatcher is already using a retpoline
sequence.
This hardening applies only when BPF-JIT is in use. Guard the enabling
under CONFIG_BPF_JIT so that bugs.c still builds with CONFIG_BPF_JIT=n.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 Version: 57631054fae6dcc9c892ae6310b58bbb6f6e5048 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/nospec-branch.h",
"arch/x86/kernel/cpu/bugs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "25dbcd31781e2bc3cd63d873af1fcd06f863a126",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
},
{
"lessThan": "cb27f3bf915cc0f20fc0c48da9059304e39ebd35",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
},
{
"lessThan": "9354248fc1c33a844ca1872761f6668b393e8c37",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
},
{
"lessThan": "8a4c8af9ae67eb072d90d1b339f14d27a82bd2a1",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
},
{
"lessThan": "52440e15d9628f8f239373c0f2e5e8f92feea2df",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
},
{
"lessThan": "a3af84b0fa00ead01fcd0e28b5d773ff25990a0d",
"status": "affected",
"version": "57631054fae6dcc9c892ae6310b58bbb6f6e5048",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/nospec-branch.h",
"arch/x86/kernel/cpu/bugs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/bugs: Enable IBPB flush on BPF JIT allocation\n\nEnable hardening against JIT spraying when Spectre-v2 mitigations are in\nuse. Specifically, issue an IBPB flush on BPF JIT memory reuse. Skip\nenabling the IBPB flush if the BPF dispatcher is already using a retpoline\nsequence.\n\nThis hardening applies only when BPF-JIT is in use. Guard the enabling\nunder CONFIG_BPF_JIT so that bugs.c still builds with CONFIG_BPF_JIT=n."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:28:18.513Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/25dbcd31781e2bc3cd63d873af1fcd06f863a126"
},
{
"url": "https://git.kernel.org/stable/c/cb27f3bf915cc0f20fc0c48da9059304e39ebd35"
},
{
"url": "https://git.kernel.org/stable/c/9354248fc1c33a844ca1872761f6668b393e8c37"
},
{
"url": "https://git.kernel.org/stable/c/8a4c8af9ae67eb072d90d1b339f14d27a82bd2a1"
},
{
"url": "https://git.kernel.org/stable/c/52440e15d9628f8f239373c0f2e5e8f92feea2df"
},
{
"url": "https://git.kernel.org/stable/c/a3af84b0fa00ead01fcd0e28b5d773ff25990a0d"
}
],
"title": "x86/bugs: Enable IBPB flush on BPF JIT allocation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64507",
"datePublished": "2026-07-25T08:52:01.008Z",
"dateReserved": "2026-07-19T15:36:31.793Z",
"dateUpdated": "2026-08-19T16:28:18.513Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74278 (GCVE-0-2026-74278)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: seq: Fix kernel heap address leak in bounce_error_event()
The comment above bounce_error_event() documents that user clients
should receive SNDRV_SEQ_EVENT_BOUNCE with the original event embedded
as variable-length data, while kernel clients should receive
SNDRV_SEQ_EVENT_KERNEL_ERROR with a quoted kernel pointer.
However, the implementation unconditionally uses
SNDRV_SEQ_EVENT_KERNEL_ERROR with data.quote.event set to the raw
struct snd_seq_event pointer for all clients. When a bounce error
event is delivered to a USER_CLIENT via snd_seq_read(), the kernel
heap address in data.quote.event is exposed to userspace through
copy_to_user() in the fixed-length branch.
This is a distinct leak path from the one addressed by commit
705dd6dcbc0e ("ALSA: seq: Clear variable event pointer on read"),
which sanitizes data.ext.ptr in the variable-length branch of
snd_seq_read(). The bounce_error_event() leak uses fixed-length
events that take the else branch where no sanitization occurs.
Differentiate the bounce event by client type. For USER_CLIENT,
send SNDRV_SEQ_EVENT_BOUNCE with SNDRV_SEQ_EVENT_LENGTH_VARIABLE
and data.ext pointing to the original event. The variable-length
path in snd_seq_event_dup() copies the event data into chained
cells, and snd_seq_expand_var_event() copies only the content --
never the pointer -- to userspace. For KERNEL_CLIENT, keep the
existing SNDRV_SEQ_EVENT_KERNEL_ERROR behavior with the quoted
pointer.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/seq/seq_clientmgr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "eae296065ede41a24040e6a7c909ec970f78b4eb",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "93d260ce43a81df579c98bee92b91316df9c1c57",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "dae23c545eb5a2be3b27a82fd0f611894fb8ab69",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0527a56cb327021cb73167cfddf0e49efa043500",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "efc86691e4d8083d9e380ea95042c2cf679f65fd",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/seq/seq_clientmgr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: seq: Fix kernel heap address leak in bounce_error_event()\n\nThe comment above bounce_error_event() documents that user clients\nshould receive SNDRV_SEQ_EVENT_BOUNCE with the original event embedded\nas variable-length data, while kernel clients should receive\nSNDRV_SEQ_EVENT_KERNEL_ERROR with a quoted kernel pointer.\n\nHowever, the implementation unconditionally uses\nSNDRV_SEQ_EVENT_KERNEL_ERROR with data.quote.event set to the raw\nstruct snd_seq_event pointer for all clients. When a bounce error\nevent is delivered to a USER_CLIENT via snd_seq_read(), the kernel\nheap address in data.quote.event is exposed to userspace through\ncopy_to_user() in the fixed-length branch.\n\nThis is a distinct leak path from the one addressed by commit\n705dd6dcbc0e (\"ALSA: seq: Clear variable event pointer on read\"),\nwhich sanitizes data.ext.ptr in the variable-length branch of\nsnd_seq_read(). The bounce_error_event() leak uses fixed-length\nevents that take the else branch where no sanitization occurs.\n\nDifferentiate the bounce event by client type. For USER_CLIENT,\nsend SNDRV_SEQ_EVENT_BOUNCE with SNDRV_SEQ_EVENT_LENGTH_VARIABLE\nand data.ext pointing to the original event. The variable-length\npath in snd_seq_event_dup() copies the event data into chained\ncells, and snd_seq_expand_var_event() copies only the content --\nnever the pointer -- to userspace. For KERNEL_CLIENT, keep the\nexisting SNDRV_SEQ_EVENT_KERNEL_ERROR behavior with the quoted\npointer."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:16.258Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/eae296065ede41a24040e6a7c909ec970f78b4eb"
},
{
"url": "https://git.kernel.org/stable/c/93d260ce43a81df579c98bee92b91316df9c1c57"
},
{
"url": "https://git.kernel.org/stable/c/dae23c545eb5a2be3b27a82fd0f611894fb8ab69"
},
{
"url": "https://git.kernel.org/stable/c/0527a56cb327021cb73167cfddf0e49efa043500"
},
{
"url": "https://git.kernel.org/stable/c/efc86691e4d8083d9e380ea95042c2cf679f65fd"
}
],
"title": "ALSA: seq: Fix kernel heap address leak in bounce_error_event()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74278",
"datePublished": "2026-08-15T05:57:49.475Z",
"dateReserved": "2026-08-15T05:44:03.880Z",
"dateUpdated": "2026-10-21T12:45:16.258Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80739 (GCVE-0-2026-80739)
Vulnerability from cvelistv5
Published
2026-09-03 08:21
Modified
2026-09-03 08:21
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock
In case __mlx5e_add_fdb_flow() fails in lower levels, the flow is
deleted via mlx5e_tc_del_flow(), and mlx5e_tc_del_flow() is acquiring
ESW devcom lock without condition. In addition, in case of peer_flow,
__mlx5e_add_fdb_flow() is called while holding ESW devcom comp lock.
This results in an AA deadlock.
To fix this, introduce a new PEER flag that is set on flows created as
peer flows (the duplicate flows on peer devices), and check it in
mlx5e_tc_del_flow() before acquiring ESW devcom lock.
Lockdep splat:
============================================
WARNING: possible recursive locking detected
============================================
Possible unsafe locking scenario:
CPU0
----
lock(&comp->lock_key#2);
lock(&comp->lock_key#2);
*** DEADLOCK ***
Call Trace:
<TASK>
dump_stack_lvl+0x69/0xa0
print_deadlock_bug.cold+0xbd/0xca
__lock_acquire+0x1671/0x2ec0
lock_acquire+0x10e/0x2e0
down_read+0x95/0x430
mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core]
mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core]
mlx5e_flow_put+0x99/0x100 [mlx5_core]
__mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core]
mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core]
mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core]
mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core]
tc_setup_cb_add+0x1dc/0x470
fl_change+0x2f4d/0x626d [cls_flower]
tc_new_tfilter+0x79b/0x2310
rtnetlink_rcv_msg+0x778/0xad0
do_syscall_64+0x70/0x960
entry_SYSCALL_64_after_hwframe+0x4b/0x53
</TASK>
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h",
"drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "607adbda01053abf5f93e322fe39325da8828cb8",
"status": "affected",
"version": "04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d",
"versionType": "git"
},
{
"lessThan": "585df8643081e6f616579bc52cd49ac823a57c82",
"status": "affected",
"version": "04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d",
"versionType": "git"
},
{
"lessThan": "ff9e7d5e3500be389ce7a0e46db3a77149830bc9",
"status": "affected",
"version": "04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d",
"versionType": "git"
},
{
"lessThan": "7165fe321c61ec138850c02f030f274797761f5f",
"status": "affected",
"version": "04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d",
"versionType": "git"
},
{
"lessThan": "6ddfba2ea98db21b001e0e5c472499156224650c",
"status": "affected",
"version": "04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h",
"drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: TC, Check if flow is PEER before acquiring devcom lock\n\nIn case __mlx5e_add_fdb_flow() fails in lower levels, the flow is\ndeleted via mlx5e_tc_del_flow(), and mlx5e_tc_del_flow() is acquiring\nESW devcom lock without condition. In addition, in case of peer_flow,\n__mlx5e_add_fdb_flow() is called while holding ESW devcom comp lock.\nThis results in an AA deadlock.\n\nTo fix this, introduce a new PEER flag that is set on flows created as\npeer flows (the duplicate flows on peer devices), and check it in\nmlx5e_tc_del_flow() before acquiring ESW devcom lock.\n\nLockdep splat:\n============================================\nWARNING: possible recursive locking detected\n============================================\n Possible unsafe locking scenario:\n CPU0\n ----\n lock(\u0026comp-\u003elock_key#2);\n lock(\u0026comp-\u003elock_key#2);\n *** DEADLOCK ***\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x69/0xa0\n print_deadlock_bug.cold+0xbd/0xca\n __lock_acquire+0x1671/0x2ec0\n lock_acquire+0x10e/0x2e0\n down_read+0x95/0x430\n mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core]\n mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core]\n mlx5e_flow_put+0x99/0x100 [mlx5_core]\n __mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core]\n mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core]\n mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core]\n mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core]\n tc_setup_cb_add+0x1dc/0x470\n fl_change+0x2f4d/0x626d [cls_flower]\n tc_new_tfilter+0x79b/0x2310\n rtnetlink_rcv_msg+0x778/0xad0\n do_syscall_64+0x70/0x960\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \u003c/TASK\u003e"
}
],
"providerMetadata": {
"dateUpdated": "2026-09-03T08:21:53.739Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/607adbda01053abf5f93e322fe39325da8828cb8"
},
{
"url": "https://git.kernel.org/stable/c/585df8643081e6f616579bc52cd49ac823a57c82"
},
{
"url": "https://git.kernel.org/stable/c/ff9e7d5e3500be389ce7a0e46db3a77149830bc9"
},
{
"url": "https://git.kernel.org/stable/c/7165fe321c61ec138850c02f030f274797761f5f"
},
{
"url": "https://git.kernel.org/stable/c/6ddfba2ea98db21b001e0e5c472499156224650c"
}
],
"title": "net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80739",
"datePublished": "2026-09-03T08:21:53.739Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-09-03T08:21:53.739Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80793 (GCVE-0-2026-80793)
Vulnerability from cvelistv5
Published
2026-09-04 15:13
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: reject undersized MTUs in ip_do_fragment()
ip_do_fragment() subtracts the IPv4 header length from the effective
MTU and passes the resulting payload MTU to ip_frag_next().
If the effective MTU is smaller than hlen + 8, ip_frag_next() rounds
the fragment payload length down to zero. The fragmentation state then
never makes forward progress: state->left, state->ptr and state->offset
stay unchanged while ip_do_fragment() keeps allocating and transmitting
header-only fragments until the softlockup detector fires.
This is reproducible with a route installed using "mtu lock 20", but it
is also reproducible without route MTU lock, for example by forwarding a
packet to a device whose MTU is 20.
Fix it in ip_do_fragment() by rejecting mtu < hlen + 8 with -EMSGSIZE,
matching the existing IPv6 fragmentation check.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/ip_output.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a716a64a4ba68cd46f2745fba2b1099fe8e0aa59",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "515b6816ba0c12d8415c88e5f41e6ec029e35cfa",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "74ce7389f8f562d39015f59a00ef7ad6acd37803",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b0ea911453ce7210e8200a07a94d2458bd1e6430",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "36e0741833bd823866f8cb9f112f37cea1a70b60",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d9d1a676b033acabf8e5645f730486d1f8204a3f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3556beb8ca86677af2aca5bfbed6f8e790fccc83",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "c8a74adccaf028223054633b532593101dfcc581",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "c0726f0caf8c6b3208552949e17d23634a2f3129",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/ip_output.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: reject undersized MTUs in ip_do_fragment()\n\nip_do_fragment() subtracts the IPv4 header length from the effective\nMTU and passes the resulting payload MTU to ip_frag_next().\n\nIf the effective MTU is smaller than hlen + 8, ip_frag_next() rounds\nthe fragment payload length down to zero. The fragmentation state then\nnever makes forward progress: state-\u003eleft, state-\u003eptr and state-\u003eoffset\nstay unchanged while ip_do_fragment() keeps allocating and transmitting\nheader-only fragments until the softlockup detector fires.\n\nThis is reproducible with a route installed using \"mtu lock 20\", but it\nis also reproducible without route MTU lock, for example by forwarding a\npacket to a device whose MTU is 20.\n\nFix it in ip_do_fragment() by rejecting mtu \u003c hlen + 8 with -EMSGSIZE,\nmatching the existing IPv6 fragmentation check."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:46.499Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a716a64a4ba68cd46f2745fba2b1099fe8e0aa59"
},
{
"url": "https://git.kernel.org/stable/c/515b6816ba0c12d8415c88e5f41e6ec029e35cfa"
},
{
"url": "https://git.kernel.org/stable/c/74ce7389f8f562d39015f59a00ef7ad6acd37803"
},
{
"url": "https://git.kernel.org/stable/c/b0ea911453ce7210e8200a07a94d2458bd1e6430"
},
{
"url": "https://git.kernel.org/stable/c/36e0741833bd823866f8cb9f112f37cea1a70b60"
},
{
"url": "https://git.kernel.org/stable/c/d9d1a676b033acabf8e5645f730486d1f8204a3f"
},
{
"url": "https://git.kernel.org/stable/c/3556beb8ca86677af2aca5bfbed6f8e790fccc83"
},
{
"url": "https://git.kernel.org/stable/c/c8a74adccaf028223054633b532593101dfcc581"
},
{
"url": "https://git.kernel.org/stable/c/c0726f0caf8c6b3208552949e17d23634a2f3129"
}
],
"title": "ipv4: reject undersized MTUs in ip_do_fragment()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80793",
"datePublished": "2026-09-04T15:13:05.814Z",
"dateReserved": "2026-08-26T14:34:25.793Z",
"dateUpdated": "2026-10-19T08:43:46.499Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64320 (GCVE-0-2026-64320)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page
nvmet_execute_disc_get_log_page() validates only the dword alignment
of the host-supplied Log Page Offset (lpo). The 64-bit offset is then
added to a small kzalloc'd buffer that holds the discovery log page
and the result is passed straight to nvmet_copy_to_sgl(), which
memcpy()s data_len bytes out to the host with no source-side bound
check:
u64 offset = nvmet_get_log_page_offset(req->cmd); /* 64-bit host */
size_t data_len = nvmet_get_log_page_len(req->cmd); /* 32-bit host */
...
if (offset & 0x3) { ... } /* only check */
...
alloc_len = sizeof(*hdr) + entry_size * discovery_log_entries(req);
buffer = kzalloc(alloc_len, GFP_KERNEL);
...
status = nvmet_copy_to_sgl(req, 0, buffer + offset, data_len);
The Discovery controller is unauthenticated -- nvmet_host_allowed()
returns true unconditionally for the discovery subsystem -- so the call
is reachable pre-authentication by any TCP/RDMA/FC peer that can reach
the nvmet target. With a discovery log page of ~1 KiB, an attacker
requesting up to 4 KiB starting at offset == alloc_len reads the next
slab page out and gets its content returned over the fabric (an
empirical run on a default nvmet-tcp loopback target leaked 81
canonical kernel pointers in one Get Log Page response). Pointing the
offset at unmapped kernel memory faults the in-kernel memcpy and
crashes (or panics, on panic_on_oops=1) the target host instead.
The attacker-controlled source-side offset pattern
"nvmet_copy_to_sgl(req, 0, buffer + ATTACKER_OFFSET, ...)" is unique
to nvmet_execute_disc_get_log_page in the entire nvmet codebase: every
other Get Log Page handler in admin-cmd.c either ignores lpo (and
silently starts every response at offset 0) or tracks a local
destination offset with a fixed source pointer.
Validate the host-supplied offset against the log page size, cap the
copy length to what is actually available, and zero-fill any remainder
of the host transfer buffer. The zero-fill matches the existing
short-response pattern in nvmet_execute_get_log_changed_ns()
(admin-cmd.c) and prevents leaking transport SGL contents when the
host asks for more bytes than the log page contains.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64320",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:39:04.867020Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:23.729Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/discovery.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8ae9bb92fc9a712a8d32da9c5fd657101f9b260b",
"status": "affected",
"version": "a07b4970f464f13640e28e16dad6cfa33647cc99",
"versionType": "git"
},
{
"lessThan": "33b974eb626154ae9348f2bac7de84cb2a3d9dd4",
"status": "affected",
"version": "a07b4970f464f13640e28e16dad6cfa33647cc99",
"versionType": "git"
},
{
"lessThan": "56c021a0869260d04c4b65d1471936aaf9177114",
"status": "affected",
"version": "a07b4970f464f13640e28e16dad6cfa33647cc99",
"versionType": "git"
},
{
"lessThan": "a29b316b9bbfd269f323ab4ba9906a894025680f",
"status": "affected",
"version": "a07b4970f464f13640e28e16dad6cfa33647cc99",
"versionType": "git"
},
{
"lessThan": "53cd102a7a56079b11b897835bd9b94c14e6322c",
"status": "affected",
"version": "a07b4970f464f13640e28e16dad6cfa33647cc99",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/discovery.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page\n\nnvmet_execute_disc_get_log_page() validates only the dword alignment\nof the host-supplied Log Page Offset (lpo). The 64-bit offset is then\nadded to a small kzalloc\u0027d buffer that holds the discovery log page\nand the result is passed straight to nvmet_copy_to_sgl(), which\nmemcpy()s data_len bytes out to the host with no source-side bound\ncheck:\n\n u64 offset = nvmet_get_log_page_offset(req-\u003ecmd); /* 64-bit host */\n size_t data_len = nvmet_get_log_page_len(req-\u003ecmd); /* 32-bit host */\n ...\n if (offset \u0026 0x3) { ... } /* only check */\n ...\n alloc_len = sizeof(*hdr) + entry_size * discovery_log_entries(req);\n buffer = kzalloc(alloc_len, GFP_KERNEL);\n ...\n status = nvmet_copy_to_sgl(req, 0, buffer + offset, data_len);\n\nThe Discovery controller is unauthenticated -- nvmet_host_allowed()\nreturns true unconditionally for the discovery subsystem -- so the call\nis reachable pre-authentication by any TCP/RDMA/FC peer that can reach\nthe nvmet target. With a discovery log page of ~1 KiB, an attacker\nrequesting up to 4 KiB starting at offset == alloc_len reads the next\nslab page out and gets its content returned over the fabric (an\nempirical run on a default nvmet-tcp loopback target leaked 81\ncanonical kernel pointers in one Get Log Page response). Pointing the\noffset at unmapped kernel memory faults the in-kernel memcpy and\ncrashes (or panics, on panic_on_oops=1) the target host instead.\n\nThe attacker-controlled source-side offset pattern\n\"nvmet_copy_to_sgl(req, 0, buffer + ATTACKER_OFFSET, ...)\" is unique\nto nvmet_execute_disc_get_log_page in the entire nvmet codebase: every\nother Get Log Page handler in admin-cmd.c either ignores lpo (and\nsilently starts every response at offset 0) or tracks a local\ndestination offset with a fixed source pointer.\n\nValidate the host-supplied offset against the log page size, cap the\ncopy length to what is actually available, and zero-fill any remainder\nof the host transfer buffer. The zero-fill matches the existing\nshort-response pattern in nvmet_execute_get_log_changed_ns()\n(admin-cmd.c) and prevents leaking transport SGL contents when the\nhost asks for more bytes than the log page contains."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable discovery command is remotely reachable through routable NVMe/TCP, as well as NVMe/RDMA and FC transports.\nAC:L - The attacker controls the protocol sequence, transfer length, and aligned 64-bit offset, with no race or condition outside their control.\nPR:N - The discovery subsystem accepts every Host NQN and explicitly skips DH-HMAC-CHAP authentication, making the command reachable pre-authentication.\nUI:N - No victim action is required after the NVMe-oF target port is available.\nS:U - The disclosure and crash affect the vulnerable target kernel within the same security authority.\nC:H - The unbounded offset permits repeated multi-kilobyte kernel heap disclosures; testing cited by the fix exposed 81 canonical kernel pointers in one response.\nI:N - The primitive reads target memory into transport response pages but provides no attacker-selected write to target memory.\nA:H - An offset resolving to unmapped or noncanonical memory faults the in-kernel memcpy, causing an oops or target-host panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:15.624Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8ae9bb92fc9a712a8d32da9c5fd657101f9b260b"
},
{
"url": "https://git.kernel.org/stable/c/33b974eb626154ae9348f2bac7de84cb2a3d9dd4"
},
{
"url": "https://git.kernel.org/stable/c/56c021a0869260d04c4b65d1471936aaf9177114"
},
{
"url": "https://git.kernel.org/stable/c/a29b316b9bbfd269f323ab4ba9906a894025680f"
},
{
"url": "https://git.kernel.org/stable/c/53cd102a7a56079b11b897835bd9b94c14e6322c"
}
],
"title": "nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64320",
"datePublished": "2026-07-25T08:49:48.908Z",
"dateReserved": "2026-07-19T15:36:31.780Z",
"dateUpdated": "2026-10-21T12:43:15.624Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72219 (GCVE-0-2026-72219)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-17 05:10
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
lockd: Plug nlm_file leak when nlm_do_fopen() fails
A client can repeatedly drive nlm_do_fopen() failures by presenting
file handles that the underlying export rejects. After kzalloc_obj()
succeeds in nlm_lookup_file(), the freshly allocated nlm_file is not
yet inserted into nlm_files[]. The nlm_do_fopen() failure path jumps
to out_unlock, which releases nlm_file_mutex and returns without
freeing the allocation, so each failure leaks one nlm_file.
Route the failure through out_free so kfree() runs before the
function returns.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e580323ac0b51ad10ec2e181d1f777479b7983e7 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 5.10.220 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bca74fff138429f3d5802865f38fc883d53a4f1a",
"status": "affected",
"version": "e580323ac0b51ad10ec2e181d1f777479b7983e7",
"versionType": "git"
},
{
"lessThan": "d7c677feb3aa1f42b1026d75a8ea61338b51e4fb",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "39f59bf67231ed2eb0cdf6337194360e964b609a",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "ddfbd816273b4e9c9b836f5b8773664c6f40f807",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "1403f1221a35a6caf959bb7bf005741f17263c66",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "1161c4b5bd0048c8148e919f818a33cff3623ef0",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "3f2dc01b9cb516d4727a3b9263ee58c71ca00ba9",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "f16a1513452edb532fec81e591c64c320866719c",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.220",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.220",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlockd: Plug nlm_file leak when nlm_do_fopen() fails\n\nA client can repeatedly drive nlm_do_fopen() failures by presenting\nfile handles that the underlying export rejects. After kzalloc_obj()\nsucceeds in nlm_lookup_file(), the freshly allocated nlm_file is not\nyet inserted into nlm_files[]. The nlm_do_fopen() failure path jumps\nto out_unlock, which releases nlm_file_mutex and returns without\nfreeing the allocation, so each failure leaks one nlm_file.\n\nRoute the failure through out_free so kfree() runs before the\nfunction returns."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:10:34.296Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bca74fff138429f3d5802865f38fc883d53a4f1a"
},
{
"url": "https://git.kernel.org/stable/c/d7c677feb3aa1f42b1026d75a8ea61338b51e4fb"
},
{
"url": "https://git.kernel.org/stable/c/39f59bf67231ed2eb0cdf6337194360e964b609a"
},
{
"url": "https://git.kernel.org/stable/c/ddfbd816273b4e9c9b836f5b8773664c6f40f807"
},
{
"url": "https://git.kernel.org/stable/c/1403f1221a35a6caf959bb7bf005741f17263c66"
},
{
"url": "https://git.kernel.org/stable/c/1161c4b5bd0048c8148e919f818a33cff3623ef0"
},
{
"url": "https://git.kernel.org/stable/c/3f2dc01b9cb516d4727a3b9263ee58c71ca00ba9"
},
{
"url": "https://git.kernel.org/stable/c/f16a1513452edb532fec81e591c64c320866719c"
}
],
"title": "lockd: Plug nlm_file leak when nlm_do_fopen() fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72219",
"datePublished": "2026-08-15T05:54:13.067Z",
"dateReserved": "2026-08-09T03:40:39.913Z",
"dateUpdated": "2026-08-17T05:10:34.296Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64542 (GCVE-0-2026-64542)
Vulnerability from cvelistv5
Published
2026-07-27 20:10
Modified
2026-08-19 16:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: ndisc: fix NULL deref in accept_untracked_na()
accept_untracked_na() re-fetches the inet6_dev with __in6_dev_get(dev)
and dereferences idev->cnf.accept_untracked_na without a NULL check,
even though its only caller ndisc_recv_na() already fetched and
NULL-checked idev for the same device.
Both reads of dev->ip6_ptr run in the same RCU read-side critical
section, but a concurrent addrconf_ifdown() can clear dev->ip6_ptr
between them: lowering the MTU below IPV6_MIN_MTU calls addrconf_ifdown()
without the synchronize_net() that orders the unregister path, so the
re-fetch returns NULL and oopses:
BUG: KASAN: null-ptr-deref in ndisc_recv_na (net/ipv6/ndisc.c:974)
Read of size 4 at addr 0000000000000364
Call Trace:
<IRQ>
ndisc_recv_na (net/ipv6/ndisc.c:974)
icmpv6_rcv (net/ipv6/icmp.c:1193)
ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479)
ip6_input_finish (net/ipv6/ip6_input.c:534)
ip6_input (net/ipv6/ip6_input.c:545)
ip6_mc_input (net/ipv6/ip6_input.c:635)
ipv6_rcv (net/ipv6/ip6_input.c:351)
</IRQ>
It is reachable by an unprivileged user via a network namespace.
Pass the caller's already validated idev instead of re-fetching it; the
idev stays alive for the whole RCU critical section, so it is safe even
after dev->ip6_ptr has been cleared.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 Version: aaa5f515b16b6b3e137779ffb4c9558bb58c1e75 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ndisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e5ba3017e46f275ad347e762e8eecacec5efa41d",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
},
{
"lessThan": "160d3f0d7a556ceae505dcab521a37057b4ce28f",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
},
{
"lessThan": "62c719203cb521b64fab74da94a81bdde5c18808",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
},
{
"lessThan": "a6450f7cfae57b382cbaf66a577765c9a88b3c58",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
},
{
"lessThan": "63d1c23764de2309cedbb779c75188d257a09d9b",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
},
{
"lessThan": "d186e942365acece7c56d39da05dd63bf95b280a",
"status": "affected",
"version": "aaa5f515b16b6b3e137779ffb4c9558bb58c1e75",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ndisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: ndisc: fix NULL deref in accept_untracked_na()\n\naccept_untracked_na() re-fetches the inet6_dev with __in6_dev_get(dev)\nand dereferences idev-\u003ecnf.accept_untracked_na without a NULL check,\neven though its only caller ndisc_recv_na() already fetched and\nNULL-checked idev for the same device.\n\nBoth reads of dev-\u003eip6_ptr run in the same RCU read-side critical\nsection, but a concurrent addrconf_ifdown() can clear dev-\u003eip6_ptr\nbetween them: lowering the MTU below IPV6_MIN_MTU calls addrconf_ifdown()\nwithout the synchronize_net() that orders the unregister path, so the\nre-fetch returns NULL and oopses:\n\n BUG: KASAN: null-ptr-deref in ndisc_recv_na (net/ipv6/ndisc.c:974)\n Read of size 4 at addr 0000000000000364\n Call Trace:\n \u003cIRQ\u003e\n ndisc_recv_na (net/ipv6/ndisc.c:974)\n icmpv6_rcv (net/ipv6/icmp.c:1193)\n ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479)\n ip6_input_finish (net/ipv6/ip6_input.c:534)\n ip6_input (net/ipv6/ip6_input.c:545)\n ip6_mc_input (net/ipv6/ip6_input.c:635)\n ipv6_rcv (net/ipv6/ip6_input.c:351)\n \u003c/IRQ\u003e\n\nIt is reachable by an unprivileged user via a network namespace.\n\nPass the caller\u0027s already validated idev instead of re-fetching it; the\nidev stays alive for the whole RCU critical section, so it is safe even\nafter dev-\u003eip6_ptr has been cleared."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:28:25.885Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e5ba3017e46f275ad347e762e8eecacec5efa41d"
},
{
"url": "https://git.kernel.org/stable/c/160d3f0d7a556ceae505dcab521a37057b4ce28f"
},
{
"url": "https://git.kernel.org/stable/c/62c719203cb521b64fab74da94a81bdde5c18808"
},
{
"url": "https://git.kernel.org/stable/c/a6450f7cfae57b382cbaf66a577765c9a88b3c58"
},
{
"url": "https://git.kernel.org/stable/c/63d1c23764de2309cedbb779c75188d257a09d9b"
},
{
"url": "https://git.kernel.org/stable/c/d186e942365acece7c56d39da05dd63bf95b280a"
}
],
"title": "ipv6: ndisc: fix NULL deref in accept_untracked_na()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64542",
"datePublished": "2026-07-27T20:10:34.994Z",
"dateReserved": "2026-07-19T15:36:31.795Z",
"dateUpdated": "2026-08-19T16:28:25.885Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80521 (GCVE-0-2026-80521)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-03 10:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
af_unix: Unlink scc_entry in unix_del_edge().
Kyle Zeng reported that GC could free a dead SCC partially.
The scenario is as follows:
1) Create two SCCs:
X -. A <-> B
^--'
2) Run the following concurrently:
2-1) send() sk-B to sk-B from sk-X
2-2) close() both A and B
At 2-1), there is a small window where unix_add_edges()
publishes a new edge (B <-> B) to GC but its skb is not queued
by skb_queue_tail().
If 2-2) completes before skb_queue_tail() and GC is triggered,
it judges A <-> B as dead, but B is not freed because GC cannot
collect the not-yet-queued skb holding the B <-> B edge.
X -. A <-> B -. This edge is visible
^--' ^..' but skb is not
This itself is not a problem since the next GC run will judge
B as dead as well and free it finally.
X -. A <.> B -.
^--' ^--'
However, X's SCC forces the next GC to call unix_walk_scc_fast(),
and it iterates over A through B's scc_entry.
Let's unlink scc_entry before freeing the vertex in unix_del_edge().
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5dfd283f4651d04dbb70ceb9ae5c4a30eda3c52a Version: de7921631ff323369aa63a4324695ab54ea4047e Version: 4090fa373f0e763c43610853d2774b5979915959 Version: 4090fa373f0e763c43610853d2774b5979915959 Version: 4090fa373f0e763c43610853d2774b5979915959 Version: 4090fa373f0e763c43610853d2774b5979915959 Version: 6.1.141 ≤ Version: 6.6.93 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/unix/garbage.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2b6c2842692d08e7acaf32d1eb47f95def35f3fe",
"status": "affected",
"version": "5dfd283f4651d04dbb70ceb9ae5c4a30eda3c52a",
"versionType": "git"
},
{
"lessThan": "6fda5c51b8e43a8440f76e65c89d9f95ddb2ef33",
"status": "affected",
"version": "de7921631ff323369aa63a4324695ab54ea4047e",
"versionType": "git"
},
{
"lessThan": "1293fd69a50d188a5788b08ba3741a3e86be1608",
"status": "affected",
"version": "4090fa373f0e763c43610853d2774b5979915959",
"versionType": "git"
},
{
"lessThan": "fe198b077864feafd4aa4b33b1a5ce26f50195a2",
"status": "affected",
"version": "4090fa373f0e763c43610853d2774b5979915959",
"versionType": "git"
},
{
"lessThan": "e3702470ced94fad74d71e2232f022d2eb752a6d",
"status": "affected",
"version": "4090fa373f0e763c43610853d2774b5979915959",
"versionType": "git"
},
{
"lessThan": "594d905195024b228c962627ae5ae7c17bd582a4",
"status": "affected",
"version": "4090fa373f0e763c43610853d2774b5979915959",
"versionType": "git"
},
{
"lessThan": "6.1.189",
"status": "affected",
"version": "6.1.141",
"versionType": "semver"
},
{
"lessThan": "6.6.158",
"status": "affected",
"version": "6.6.93",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/unix/garbage.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "6.1.141",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "6.6.93",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\naf_unix: Unlink scc_entry in unix_del_edge().\n\nKyle Zeng reported that GC could free a dead SCC partially.\n\nThe scenario is as follows:\n\n 1) Create two SCCs:\n\n X -. A \u003c-\u003e B\n ^--\u0027\n\n 2) Run the following concurrently:\n\n 2-1) send() sk-B to sk-B from sk-X\n 2-2) close() both A and B\n\nAt 2-1), there is a small window where unix_add_edges()\npublishes a new edge (B \u003c-\u003e B) to GC but its skb is not queued\nby skb_queue_tail().\n\nIf 2-2) completes before skb_queue_tail() and GC is triggered,\nit judges A \u003c-\u003e B as dead, but B is not freed because GC cannot\ncollect the not-yet-queued skb holding the B \u003c-\u003e B edge.\n\n X -. A \u003c-\u003e B -. This edge is visible\n ^--\u0027 ^..\u0027 but skb is not\n\nThis itself is not a problem since the next GC run will judge\nB as dead as well and free it finally.\n\n X -. A \u003c.\u003e B -.\n ^--\u0027 ^--\u0027\n\nHowever, X\u0027s SCC forces the next GC to call unix_walk_scc_fast(),\nand it iterates over A through B\u0027s scc_entry.\n\nLet\u0027s unlink scc_entry before freeing the vertex in unix_del_edge()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is only reachable through local AF_UNIX syscalls (socket/sendmsg with SCM_RIGHTS and close) that drive unix_add_edges(), unix_del_edge(), and unix_gc(); AF_UNIX is host-local IPC with no remote packet, Bluetooth, WiFi, or physical bus entry path.\nAC:L - Exploitation requires racing sendmsg() (scm_stat_add/unix_add_edges before skb_queue_tail) against concurrent close() that triggers GC; the attacker controls both threads, can pin CPUs, and can retry until the window is hit, so success does not depend on conditions outside attacker control.\nPR:L - An unprivileged local user can create AF_UNIX sockets, pass socket file descriptors via SCM_RIGHTS to form inflight reference cycles, and close sockets to schedule unix_gc(); no real-root capabilities, special namespaces, or non-default kernel configuration are required.\nUI:N - The attacker sets up the cyclic inflight graph, performs the concurrent self-send and close operations, and forces garbage collection from its own processes; no separate victim user action or cooperating peer is needed beyond the attacker\u0027s own sockets.\nS:U - The use-after-free corrupts kernel heap/list state during AF_UNIX garbage collection within the same kernel security authority; exploitation yields standard local privilege escalation rather than crossing a VM, IOMMU, or inter-tenant sandbox boundary.\nC:H - Freed struct unix_vertex objects remain linked through stale scc_entry; unix_walk_scc_fast(), unix_scc_dead(), and unix_collect_skb() dereference freed vertex-\u003eedges and predecessor socket receive queues, giving a slab UAF read primitive controllable through heap grooming.\nI:H - The same UAF enables reclaiming freed vertices and influencing GC list iteration and skb_queue_splice_init() during unix_collect_skb(), providing memory corruption primitives suitable for arbitrary kernel writes, control-flow hijack, and local privilege escalation.\nA:H - Iterating or collecting through a freed vertex reliably triggers kernel oops/panic (KASAN slab-use-after-free), and corrupt GC graph state can crash the host or deny service to local workloads even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:56:06.656Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2b6c2842692d08e7acaf32d1eb47f95def35f3fe"
},
{
"url": "https://git.kernel.org/stable/c/6fda5c51b8e43a8440f76e65c89d9f95ddb2ef33"
},
{
"url": "https://git.kernel.org/stable/c/1293fd69a50d188a5788b08ba3741a3e86be1608"
},
{
"url": "https://git.kernel.org/stable/c/fe198b077864feafd4aa4b33b1a5ce26f50195a2"
},
{
"url": "https://git.kernel.org/stable/c/e3702470ced94fad74d71e2232f022d2eb752a6d"
},
{
"url": "https://git.kernel.org/stable/c/594d905195024b228c962627ae5ae7c17bd582a4"
}
],
"title": "af_unix: Unlink scc_entry in unix_del_edge().",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80521",
"datePublished": "2026-08-26T14:37:02.589Z",
"dateReserved": "2026-08-26T14:34:25.763Z",
"dateUpdated": "2026-10-03T10:56:06.656Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68253 (GCVE-0-2026-68253)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/i915/hdcp: check streams[] bounds before overflow
The data->streams[] overflow check is done after the buffer overflow has
already happened. Move the overflow check before the write.
Side note, emitting a warning splat with a backtrace might be overkill
here, but prefer not changing the behaviour other than not doing the
overrun.
Discovered using AI-assisted static analysis confirmed by Intel Product
Security.
(cherry picked from commit 9284ab3b6e776c315883ac2611283d263c9460fd)
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 Version: e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68253",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:10.410821Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:58.090Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/display/intel_hdcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "336cf6d80d41457442b659e7ba7a7badc0ffe79d",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "389079bf04e6f0c6f10f5b879f6d7a9cf80f0567",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "84351f12390349ba010920fc247e1a0b12e41eb3",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "2106fb490b2c6003e23ad6ff36ce823a2170e138",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "3d2ef8d389495e7889c6062d8bddc46d2a5fbdef",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "984085c5b53572e2e03fd5fc4817e86ef1effc6e",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
},
{
"lessThan": "bbb15a6b042d02e5508a02b4847e02d2579ee7bc",
"status": "affected",
"version": "e03187e12cae57c09b521b6f7dd7c7f9aa2b62e9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/display/intel_hdcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.12"
},
{
"lessThan": "5.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/i915/hdcp: check streams[] bounds before overflow\n\nThe data-\u003estreams[] overflow check is done after the buffer overflow has\nalready happened. Move the overflow check before the write.\n\nSide note, emitting a warning splat with a backtrace might be overkill\nhere, but prefer not changing the behaviour other than not doing the\noverrun.\n\nDiscovered using AI-assisted static analysis confirmed by Intel Product\nSecurity.\n\n(cherry picked from commit 9284ab3b6e776c315883ac2611283d263c9460fd)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The overflow is reached through a local DRM atomic modeset ioctl on /dev/dri/cardN that sets the \"Content Protection\" connector property, driving intel_hdcp_enable() -\u003e intel_hdcp_prepare_streams(); no network or remote path exists to the i915 display HDCP code.\nAC:L - Any DP MST topology with more connected MST connectors on one digital port than the device has pipes (a common dock/hub/daisy-chain setup, and easily arranged by anyone with access to the machine\u0027s display outputs) makes every HDCP enable request overflow the buffer deterministically, with no race or memory-layout condition to win.\nPR:L - The attacker only needs access to the DRM device node as DRM master, which an ordinary user in a local graphical session (video/render group, logind seat) has; no CAP_SYS_ADMIN or root is required to request HDCP content protection on an MST connector.\nUI:N - The attacker performs the atomic commit that requests content protection themselves; no action by another user is needed, and on a system already running a compositor with HDCP desired the overflow occurs automatically on the modeset.\nS:U - The corruption is confined to kernel heap memory within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The out-of-bounds write corrupts adjacent objects in a small kmalloc slab, and such heap corruption is a standard primitive for pivoting to arbitrary kernel memory disclosure by overwriting neighbouring pointers or length fields.\nI:H - This is a heap out-of-bounds write past a kzalloc\u0027d streams[] buffer sized to INTEL_NUM_PIPES, with attacker-influenced VCPI values and an attacker-controlled overflow length determined by the MST topology, giving corruption of adjacent slab objects that can be leveraged for control-flow hijack.\nA:H - Overwriting adjacent slab allocations reliably produces slab corruption, oops, or panic, and the path can be re-triggered on every HDCP enable/modeset, so the system can be crashed repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:11.002Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/336cf6d80d41457442b659e7ba7a7badc0ffe79d"
},
{
"url": "https://git.kernel.org/stable/c/389079bf04e6f0c6f10f5b879f6d7a9cf80f0567"
},
{
"url": "https://git.kernel.org/stable/c/84351f12390349ba010920fc247e1a0b12e41eb3"
},
{
"url": "https://git.kernel.org/stable/c/2106fb490b2c6003e23ad6ff36ce823a2170e138"
},
{
"url": "https://git.kernel.org/stable/c/3d2ef8d389495e7889c6062d8bddc46d2a5fbdef"
},
{
"url": "https://git.kernel.org/stable/c/984085c5b53572e2e03fd5fc4817e86ef1effc6e"
},
{
"url": "https://git.kernel.org/stable/c/bbb15a6b042d02e5508a02b4847e02d2579ee7bc"
}
],
"title": "drm/i915/hdcp: check streams[] bounds before overflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68253",
"datePublished": "2026-08-10T12:01:19.402Z",
"dateReserved": "2026-07-30T09:28:09.377Z",
"dateUpdated": "2026-10-19T20:58:58.090Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74735 (GCVE-0-2026-74735)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
l2tp: fix tunnel and session refcount leak on seq_file release
In pppol2tp_proc_open() and l2tp_dfs_seq_open(), iteration state
(pd->tunnel and pd->session) is kept in seq_file private data to allow
iteration across multiple read() system calls.
However, if userspace closes /proc/net/pppol2tp or /sys/kernel/debug/l2tp/tunnels
before reading to end-of-file (EOF), any tunnel or session reference stored in
pd->tunnel / pd->session is left un-dropped when seq_file private data is freed.
Fix this by dropping any remaining pd->tunnel and pd->session references in
pppol2tp_proc_release() and l2tp_dfs_seq_release() when closing the file.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 Version: 0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 Version: 0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 Version: 0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 Version: 0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 Version: f6104e9ae04462523c372928b1173766a771ef95 Version: 7f8e401f9e612df2a95c1ef76217c00181389bb5 Version: c712ed63e9b33d9a282fbd92ce25c64918c3129f Version: 9a8863e8a8def9d88583cd9c60db38a008e6b8cf Version: 3.16.60 ≤ Version: 4.16.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/l2tp/l2tp_debugfs.c",
"net/l2tp/l2tp_ppp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bd897e414451fb34dfdf08b31899180e5ab7149b",
"status": "affected",
"version": "0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443",
"versionType": "git"
},
{
"lessThan": "bdf83613781956cc39798ed08321f74ab0467f4d",
"status": "affected",
"version": "0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443",
"versionType": "git"
},
{
"lessThan": "8c4fde01bcf91f22b9c7ded8c3e14addd7ddd500",
"status": "affected",
"version": "0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443",
"versionType": "git"
},
{
"lessThan": "ebe2774e956482dd3c70b8991f6f7654356339e6",
"status": "affected",
"version": "0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443",
"versionType": "git"
},
{
"lessThan": "9006c116dd111d457bf5d074990210f70a4ad2c8",
"status": "affected",
"version": "0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443",
"versionType": "git"
},
{
"status": "affected",
"version": "f6104e9ae04462523c372928b1173766a771ef95",
"versionType": "git"
},
{
"status": "affected",
"version": "7f8e401f9e612df2a95c1ef76217c00181389bb5",
"versionType": "git"
},
{
"status": "affected",
"version": "c712ed63e9b33d9a282fbd92ce25c64918c3129f",
"versionType": "git"
},
{
"status": "affected",
"version": "9a8863e8a8def9d88583cd9c60db38a008e6b8cf",
"versionType": "git"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.60",
"versionType": "semver"
},
{
"lessThan": "4.17",
"status": "affected",
"version": "4.16.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/l2tp/l2tp_debugfs.c",
"net/l2tp/l2tp_ppp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.60",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.16.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.60",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.16.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nl2tp: fix tunnel and session refcount leak on seq_file release\n\nIn pppol2tp_proc_open() and l2tp_dfs_seq_open(), iteration state\n(pd-\u003etunnel and pd-\u003esession) is kept in seq_file private data to allow\niteration across multiple read() system calls.\n\nHowever, if userspace closes /proc/net/pppol2tp or /sys/kernel/debug/l2tp/tunnels\nbefore reading to end-of-file (EOF), any tunnel or session reference stored in\npd-\u003etunnel / pd-\u003esession is left un-dropped when seq_file private data is freed.\n\nFix this by dropping any remaining pd-\u003etunnel and pd-\u003esession references in\npppol2tp_proc_release() and l2tp_dfs_seq_release() when closing the file."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:21.709Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bd897e414451fb34dfdf08b31899180e5ab7149b"
},
{
"url": "https://git.kernel.org/stable/c/bdf83613781956cc39798ed08321f74ab0467f4d"
},
{
"url": "https://git.kernel.org/stable/c/8c4fde01bcf91f22b9c7ded8c3e14addd7ddd500"
},
{
"url": "https://git.kernel.org/stable/c/ebe2774e956482dd3c70b8991f6f7654356339e6"
},
{
"url": "https://git.kernel.org/stable/c/9006c116dd111d457bf5d074990210f70a4ad2c8"
}
],
"title": "l2tp: fix tunnel and session refcount leak on seq_file release",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74735",
"datePublished": "2026-08-26T14:36:49.352Z",
"dateReserved": "2026-08-15T05:44:03.930Z",
"dateUpdated": "2026-10-21T12:46:21.709Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89673 (GCVE-0-2026-89673)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-24 14:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix XDR padding calculation in ff_encode_getdeviceinfo
nfsd4_ff_encode_getdeviceinfo() computes the da_addr_body reservation
as 16 + netid_len + addr_len, but the subsequent xdr_encode_opaque()
calls emit 8 + round_up(netid_len, 4) + round_up(addr_len, 4) bytes.
The mismatch means the declared da_addr_body length exceeds the actual
encoded data by 2-8 bytes on every flexfile GETDEVICEINFO reply,
leaking stale reply-page content to the client and mis-aligning the
subsequent version list decode.
Use xdr_align_size() for each string length to match what
xdr_encode_opaque() actually writes.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3f1a2b0b2d575f39ff0bedb5411822fe7446a805 Version: 19a648a07572c70fbe16faf0fafaf3dce9fd998a Version: 6d08bd22fa2941a4d5ef45ed115dd00e484a93d7 Version: 6372e2ee629894433fe6107d7048536a3280a284 Version: 6372e2ee629894433fe6107d7048536a3280a284 Version: 6372e2ee629894433fe6107d7048536a3280a284 Version: 6372e2ee629894433fe6107d7048536a3280a284 Version: 6372e2ee629894433fe6107d7048536a3280a284 Version: 82e36f0c287769a0430268739a71dbd56df0e679 Version: 6370e66a71c4869247f8f406c2a8b2c43df8998f Version: 16282aeca44bfac0d1ac3be6cd1a719d6ff3d749 Version: efcae97fa425ca6db9d126e37daccf2d7225cb09 Version: 64c959d59c24c661bd5338e4e6f1f703d7c309a1 Version: 5.10.195 ≤ Version: 5.15.132 ≤ Version: 6.1.53 ≤ Version: 4.14.326 ≤ Version: 4.19.295 ≤ Version: 5.4.257 ≤ Version: 6.4.16 ≤ Version: 6.5.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/flexfilelayoutxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "356decf074b82bac5564568203c12426dcea3470",
"status": "affected",
"version": "3f1a2b0b2d575f39ff0bedb5411822fe7446a805",
"versionType": "git"
},
{
"lessThan": "15460c8e6c9bc92cda8f68bc419ac082300ab3d6",
"status": "affected",
"version": "19a648a07572c70fbe16faf0fafaf3dce9fd998a",
"versionType": "git"
},
{
"lessThan": "9be67a6be48ddf2ebaa98c0df671690b8f9666e7",
"status": "affected",
"version": "6d08bd22fa2941a4d5ef45ed115dd00e484a93d7",
"versionType": "git"
},
{
"lessThan": "88bce7e326c368d7df15126ccac537e54bebd467",
"status": "affected",
"version": "6372e2ee629894433fe6107d7048536a3280a284",
"versionType": "git"
},
{
"lessThan": "74015b7be806ad9e21d46f7bd2831df280c6c783",
"status": "affected",
"version": "6372e2ee629894433fe6107d7048536a3280a284",
"versionType": "git"
},
{
"lessThan": "41ebca28e17f84293650598f86bd69532ec1a8e0",
"status": "affected",
"version": "6372e2ee629894433fe6107d7048536a3280a284",
"versionType": "git"
},
{
"lessThan": "62e5949f0dd5ec837af144860ff908369df4c7c9",
"status": "affected",
"version": "6372e2ee629894433fe6107d7048536a3280a284",
"versionType": "git"
},
{
"lessThan": "8b989aaec85e1293a871d602590c951fe44b8647",
"status": "affected",
"version": "6372e2ee629894433fe6107d7048536a3280a284",
"versionType": "git"
},
{
"status": "affected",
"version": "82e36f0c287769a0430268739a71dbd56df0e679",
"versionType": "git"
},
{
"status": "affected",
"version": "6370e66a71c4869247f8f406c2a8b2c43df8998f",
"versionType": "git"
},
{
"status": "affected",
"version": "16282aeca44bfac0d1ac3be6cd1a719d6ff3d749",
"versionType": "git"
},
{
"status": "affected",
"version": "efcae97fa425ca6db9d126e37daccf2d7225cb09",
"versionType": "git"
},
{
"status": "affected",
"version": "64c959d59c24c661bd5338e4e6f1f703d7c309a1",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "5.10.195",
"versionType": "semver"
},
{
"lessThan": "5.15.221",
"status": "affected",
"version": "5.15.132",
"versionType": "semver"
},
{
"lessThan": "6.1.188",
"status": "affected",
"version": "6.1.53",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.326",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.295",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.257",
"versionType": "semver"
},
{
"lessThan": "6.5",
"status": "affected",
"version": "6.4.16",
"versionType": "semver"
},
{
"lessThan": "6.6",
"status": "affected",
"version": "6.5.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/flexfilelayoutxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10.195",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.15.132",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "6.1.53",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.326",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.295",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.257",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix XDR padding calculation in ff_encode_getdeviceinfo\n\nnfsd4_ff_encode_getdeviceinfo() computes the da_addr_body reservation\nas 16 + netid_len + addr_len, but the subsequent xdr_encode_opaque()\ncalls emit 8 + round_up(netid_len, 4) + round_up(addr_len, 4) bytes.\nThe mismatch means the declared da_addr_body length exceeds the actual\nencoded data by 2-8 bytes on every flexfile GETDEVICEINFO reply,\nleaking stale reply-page content to the client and mis-aligning the\nsubsequent version list decode.\n\nUse xdr_align_size() for each string length to match what\nxdr_encode_opaque() actually writes."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-24T14:15:11.211Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/356decf074b82bac5564568203c12426dcea3470"
},
{
"url": "https://git.kernel.org/stable/c/15460c8e6c9bc92cda8f68bc419ac082300ab3d6"
},
{
"url": "https://git.kernel.org/stable/c/9be67a6be48ddf2ebaa98c0df671690b8f9666e7"
},
{
"url": "https://git.kernel.org/stable/c/88bce7e326c368d7df15126ccac537e54bebd467"
},
{
"url": "https://git.kernel.org/stable/c/74015b7be806ad9e21d46f7bd2831df280c6c783"
},
{
"url": "https://git.kernel.org/stable/c/41ebca28e17f84293650598f86bd69532ec1a8e0"
},
{
"url": "https://git.kernel.org/stable/c/62e5949f0dd5ec837af144860ff908369df4c7c9"
},
{
"url": "https://git.kernel.org/stable/c/8b989aaec85e1293a871d602590c951fe44b8647"
}
],
"title": "nfsd: fix XDR padding calculation in ff_encode_getdeviceinfo",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89673",
"datePublished": "2026-09-11T19:45:58.149Z",
"dateReserved": "2026-09-11T19:38:34.746Z",
"dateUpdated": "2026-10-24T14:15:11.211Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89547 (GCVE-0-2026-89547)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: Check svc pool percpu counter allocation
__svc_create() initializes three per-pool percpu_counter stats and
ignores every return value. On SMP, percpu_counter_init() fails when
__alloc_percpu_gfp() cannot satisfy the allocation, leaving the failed
counter with fbc->counters == NULL and its embedded raw_spinlock_t,
list_head, and count never initialized. __svc_create() returns the
half-constructed svc_serv to nfsd, lockd, or the NFS callback service
anyway.
Once that service is live, the hot-path increments in
svc_xprt_enqueue(), svc_handle_xprt(), and
svc_pool_wake_idle_thread() reach a counter whose backing pointer is
NULL. The pointer is a per-cpu offset, so the access does not fault:
it resolves to offset zero of the current CPU's per-cpu area and
silently corrupts whatever variable lives there. A
/proc/fs/nfsd/pool_stats read walks the same NULL per-cpu storage and
returns garbage, and on CONFIG_DEBUG_SPINLOCK or lockdep it splats on
the never-initialized lock.
Creating the broken service requires a percpu allocation failure during
RPC server startup, so it is reachable only by a local administrator
under memory pressure or fault injection; a remote peer cannot induce
the bad state on its own.
Check each percpu_counter_init() return value in __svc_create() and
fail when an allocation fails, unwinding the counters already set up
in the current pool and in every pool initialized before it. A
discrete percpu_counter_destroy() per counter at teardown frees each
per-cpu allocation exactly once.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/svc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "57ac7d899409b0a9b768cf417e3bb86bcca3d4c6",
"status": "affected",
"version": "ccf08bed6e7a80519569456edd2ea21b7b1701c6",
"versionType": "git"
},
{
"lessThan": "3a2b7649de76376a69f1d3ed2a539fb15907cd4d",
"status": "affected",
"version": "ccf08bed6e7a80519569456edd2ea21b7b1701c6",
"versionType": "git"
},
{
"lessThan": "bd1ef2cfb44d72b7aa6943e87b206eb0e30fbd0c",
"status": "affected",
"version": "ccf08bed6e7a80519569456edd2ea21b7b1701c6",
"versionType": "git"
},
{
"lessThan": "b541a15046976e481618726cc23db0fb22d576db",
"status": "affected",
"version": "ccf08bed6e7a80519569456edd2ea21b7b1701c6",
"versionType": "git"
},
{
"lessThan": "43e11e164704dde975c9edb370de1a06bec67270",
"status": "affected",
"version": "ccf08bed6e7a80519569456edd2ea21b7b1701c6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/svc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: Check svc pool percpu counter allocation\n\n__svc_create() initializes three per-pool percpu_counter stats and\nignores every return value. On SMP, percpu_counter_init() fails when\n__alloc_percpu_gfp() cannot satisfy the allocation, leaving the failed\ncounter with fbc-\u003ecounters == NULL and its embedded raw_spinlock_t,\nlist_head, and count never initialized. __svc_create() returns the\nhalf-constructed svc_serv to nfsd, lockd, or the NFS callback service\nanyway.\n\nOnce that service is live, the hot-path increments in\nsvc_xprt_enqueue(), svc_handle_xprt(), and\nsvc_pool_wake_idle_thread() reach a counter whose backing pointer is\nNULL. The pointer is a per-cpu offset, so the access does not fault:\nit resolves to offset zero of the current CPU\u0027s per-cpu area and\nsilently corrupts whatever variable lives there. A\n/proc/fs/nfsd/pool_stats read walks the same NULL per-cpu storage and\nreturns garbage, and on CONFIG_DEBUG_SPINLOCK or lockdep it splats on\nthe never-initialized lock.\n\nCreating the broken service requires a percpu allocation failure during\nRPC server startup, so it is reachable only by a local administrator\nunder memory pressure or fault injection; a remote peer cannot induce\nthe bad state on its own.\n\nCheck each percpu_counter_init() return value in __svc_create() and\nfail when an allocation fails, unwinding the counters already set up\nin the current pool and in every pool initialized before it. A\ndiscrete percpu_counter_destroy() per counter at teardown frees each\nper-cpu allocation exactly once."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - After nfsd, lockd, or the NFS-callback SUNRPC service is created with a failed pool percpu_counter, svc_xprt_enqueue(), svc_handle_xprt(), and svc_pool_wake_idle_thread() increment those counters on the packet-receive hot path, so a remote NFS/NLM/callback peer triggers the corruption by sending RPC traffic (typically TCP/2049).\nAC:H - The broken service exists only if percpu_counter_init() fails inside __svc_create() during RPC server startup; that tiny per-CPU allocation failure requires memory pressure or fault injection that a remote peer cannot induce, so success depends on a startup condition the attacker cannot control.\nPR:N - svc_xprt_enqueue() and svc_handle_xprt() run when a SUNRPC transport has received data, before RPC authentication, so an unauthenticated network client needs no host account or capabilities to deliver the traffic that hits the NULL counters.\nUI:N - Exploitation is inbound RPC to an already-running nfsd, lockd, or NFS callback listener; no administrator or end-user action such as mounting a filesystem or opening a file is required at exploit time.\nS:U - Per-CPU corruption, pool_stats disclosure, and any resulting oops stay inside the host kernel\u0027s SUNRPC/nfsd authority and do not cross a VM, IOMMU, or other security boundary.\nC:H - A NULL fbc-\u003ecounters pointer is treated as a per-CPU offset, so increments and percpu_counter_sum_positive() read offset 0 of each CPU\u0027s per-CPU area; world-readable nfsd pool_stats returns those values, giving a kernel-memory disclosure primitive from the same corruption.\nI:H - percpu_counter_inc() cmpxchg-increments and the batch-fold path later zeroes the s32 at per-CPU offset 0 via __this_cpu_sub(), silently corrupting whatever kernel per-CPU variable lives there and yielding a write primitive against that storage rather than a contained stats-only update.\nA:H - The never-initialized counter lock/lockdep map can splat under CONFIG_DEBUG_SPINLOCK or lockdep, and corrupting the CPU\u0027s per-CPU area can oops or panic the host, so the bug is a kernel crash/DoS even when not fully exploited."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:38.898Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/57ac7d899409b0a9b768cf417e3bb86bcca3d4c6"
},
{
"url": "https://git.kernel.org/stable/c/3a2b7649de76376a69f1d3ed2a539fb15907cd4d"
},
{
"url": "https://git.kernel.org/stable/c/bd1ef2cfb44d72b7aa6943e87b206eb0e30fbd0c"
},
{
"url": "https://git.kernel.org/stable/c/b541a15046976e481618726cc23db0fb22d576db"
},
{
"url": "https://git.kernel.org/stable/c/43e11e164704dde975c9edb370de1a06bec67270"
}
],
"title": "SUNRPC: Check svc pool percpu counter allocation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89547",
"datePublished": "2026-09-11T19:44:22.644Z",
"dateReserved": "2026-09-11T19:38:34.722Z",
"dateUpdated": "2026-10-19T08:48:38.898Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89704 (GCVE-0-2026-89704)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: sample writeback error cursor before async COPY loop
_nfsd_copy_file_range() samples dst->f_wb_err into "since"
after the copy loop, then uses it to detect writeback errors
via filemap_check_wb_err() once vfs_fsync_range() returns.
Because the nfsd_file cache reuses a single struct file
across requests targeting the same inode, a concurrent
COMMIT or stable WRITE on dst advances dst->f_wb_err to the
current mapping->wb_err via file_check_and_advance_wb_err()
during its own vfs_fsync_range(). If that advancement lands
between the writeback error appearing in mapping->wb_err
and the COPY worker sampling "since", the worker captures
the already-advanced cursor, errseq_check() sees cur ==
since and returns zero, and NFSD4_COPY_F_COMMITTED is set
even though writeback failed. CB_OFFLOAD then encodes
wr_stable_how = FILE_SYNC4, the client treats the copied
data as durable, and the failure becomes silent data loss.
Sample since once at the start of the function. The cursor
then reflects state in effect before this COPY issues any
writes, and filemap_check_wb_err() detects any error that
occurs during the copy regardless of which thread first
observes it. This matches the pattern used by
nfsd_vfs_write() and nfsd4_clone_file_range().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f14816f2f928c560d28ba344af689f56efcd6f55 Version: 3145fe0ebb16e1715ad541a301bc6675c8375fcd Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb Version: 5.10.124 ≤ Version: 5.15.49 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "435e4246c7dfff2fbd76dfdbf91975d5d9f788c9",
"status": "affected",
"version": "f14816f2f928c560d28ba344af689f56efcd6f55",
"versionType": "git"
},
{
"lessThan": "9f539a1c0791f907eb4e6d04b43178d9962e2def",
"status": "affected",
"version": "3145fe0ebb16e1715ad541a301bc6675c8375fcd",
"versionType": "git"
},
{
"lessThan": "4728504c021656128a07f4693af80ed4a5fcc863",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "322422d66d1a04434a0dcc0c9d3a4c4b3f225117",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "52b2db7a72e19ac2686fa4b2a52406661e7bf9e2",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "8277d4a11ae2cb5495842be558fd946032c24363",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "a1cbafe756cd5e6ab0e099062f37da7a5b081169",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "20a67a7d18221af736f124770c2c5e859b479046",
"status": "affected",
"version": "555dbf1a9aac6d3150c8b52fa35f768a692f4eeb",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "5.10.124",
"versionType": "semver"
},
{
"lessThan": "5.15.221",
"status": "affected",
"version": "5.15.49",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10.124",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.15.49",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: sample writeback error cursor before async COPY loop\n\n_nfsd_copy_file_range() samples dst-\u003ef_wb_err into \"since\"\nafter the copy loop, then uses it to detect writeback errors\nvia filemap_check_wb_err() once vfs_fsync_range() returns.\nBecause the nfsd_file cache reuses a single struct file\nacross requests targeting the same inode, a concurrent\nCOMMIT or stable WRITE on dst advances dst-\u003ef_wb_err to the\ncurrent mapping-\u003ewb_err via file_check_and_advance_wb_err()\nduring its own vfs_fsync_range(). If that advancement lands\nbetween the writeback error appearing in mapping-\u003ewb_err\nand the COPY worker sampling \"since\", the worker captures\nthe already-advanced cursor, errseq_check() sees cur ==\nsince and returns zero, and NFSD4_COPY_F_COMMITTED is set\neven though writeback failed. CB_OFFLOAD then encodes\nwr_stable_how = FILE_SYNC4, the client treats the copied\ndata as durable, and the failure becomes silent data loss.\n\nSample since once at the start of the function. The cursor\nthen reflects state in effect before this COPY issues any\nwrites, and filemap_check_wb_err() detects any error that\noccurs during the copy regardless of which thread first\nobserves it. This matches the pattern used by\nnfsd_vfs_write() and nfsd4_clone_file_range()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - NFSv4.2 COPY is handled by in-kernel nfsd over TCP/UDP 2049; a remote client reaches _nfsd_copy_file_range() via COMPOUND SEQUENCE/PUTFH/OPEN/COPY with no local access on the server.\nAC:L - The attacker issues async COPY and a concurrent COMMIT or stable WRITE on the same destination inode, which share one nfsd_file/struct file, and can force writeback errors via ENOSPC or quota and retry; both sides of the race are attacker-controlled.\nPR:N - Typical nfsd exports use AUTH_SYS or AUTH_NULL with IP-based ACLs, so a network peer can spoof a UID, create an NFSv4.2 session, OPEN source and dest files, and issue COPY without a local account or capability on the NFS server.\nUI:N - The attacker sends the COPY and COMMIT RPCs themselves against an already-exported writable filesystem; no administrator or victim user action is required at exploit time.\nS:U - The missed writeback error only affects durability reporting and file data on the host running nfsd and does not cross a VM, IOMMU, or sandbox boundary.\nC:N - This is a silent durability-reporting failure, not memory disclosure; there is no out-of-bounds read, use-after-free, or kernel pointer leak.\nI:H - When a concurrent COMMIT advances dst-\u003ef_wb_err before COPY samples it, CB_OFFLOAD encodes wr_stable_how=FILE_SYNC4 despite failed writeback, so clients treat the copied range as durable and the data is silently lost after crash or cache eviction.\nA:N - The flaw does not oops, panic, deadlock, or hang nfsd; the server keeps running, and lost durability is an integrity failure rather than a kernel or NFS-service crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:17.323Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/435e4246c7dfff2fbd76dfdbf91975d5d9f788c9"
},
{
"url": "https://git.kernel.org/stable/c/9f539a1c0791f907eb4e6d04b43178d9962e2def"
},
{
"url": "https://git.kernel.org/stable/c/4728504c021656128a07f4693af80ed4a5fcc863"
},
{
"url": "https://git.kernel.org/stable/c/322422d66d1a04434a0dcc0c9d3a4c4b3f225117"
},
{
"url": "https://git.kernel.org/stable/c/52b2db7a72e19ac2686fa4b2a52406661e7bf9e2"
},
{
"url": "https://git.kernel.org/stable/c/8277d4a11ae2cb5495842be558fd946032c24363"
},
{
"url": "https://git.kernel.org/stable/c/a1cbafe756cd5e6ab0e099062f37da7a5b081169"
},
{
"url": "https://git.kernel.org/stable/c/20a67a7d18221af736f124770c2c5e859b479046"
}
],
"title": "nfsd: sample writeback error cursor before async COPY loop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89704",
"datePublished": "2026-09-11T19:46:21.039Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:17.323Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90003 (GCVE-0-2026-90003)
Vulnerability from cvelistv5
Published
2026-09-16 10:33
Modified
2026-10-19 08:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
futex: Prevent rcuwait use-after-free during requeue PI
On PREEMPT_RT, FUTEX_CMP_REQUEUE_PI can trigger a KASAN report
(slab-out-of-bounds) in futex_requeue_pi_complete() invocation of
rcuwait_wake_up().
The futex_q used by futex_wait_requeue_pi() is allocated on the waiter's
stack. An early wakeup can race with a PI requeue as follows:
waiter requeue task
------ ------------
futex_wait_requeue_pi()
futex_do_wait()
schedule()
futex_requeue
futex_proxy_trylock_atomic()
futex_requeue_pi_prepare()
Q_REQUEUE_PI_NONE -> Q_REQUEUE_PI_IN_PROGRESS
* timeout/ signal wakes waiter *
futex_requeue_pi_wakeup_sync()
Q_REQUEUE_PI_IN_PROGRESS -> Q_REQUEUE_PI_WAIT
requeue_pi_wake_futex
futex_requeue_pi_complete()
cmpxchg Q_REQUEUE_PI_WAIT -> Q_REQUEUE_PI_LOCKED
rcuwait_wait_event()
if (atomic_read(&q->requeue_state) != Q_REQUEUE_PI_WAIT)
break /* no schedule() */
/* q.pi_state->owner == current */
futex_private_hash_put()
/* return from syscall */
rcuwait_wake_up(&q->requeue_wait)
/* q is gone */
futex_requeue_pi_complete() publishes Q_REQUEUE_PI_LOCKED before
calling rcuwait_wake_up(). The waiter observes this state in
rcuwait_wait_event() before invoking schedule() in rcuwait_wait_event().
Here, the waiter is free leave the syscall before requeue task can
complete the wake.
To address this race skip rcuwait_wake_up() in the Q_REQUEUE_PI_LOCKED
case.
This state is only published by requeue_pi_wake_futex(), which saves
q->task before futex_requeue_pi_complete() and wakes the waiter via
wake_up_state().
This wake is intended to wake the waiter from its futex_do_wait() sleep.
If the waiter is still sleeping there, it can not get into the
Q_REQUEUE_PI_WAIT state (and require this removed wake).
Should the waiter be woken up from futex_do_wait() by other means (as in
this example) and sleep in futex_requeue_pi_wakeup_sync() then the
wake_up_state() from requeue_pi_wake_futex() will wake it, too.
Should the waiter task terminate before wake_up_state() had a chance to
wake the task then the task pointer does not become invalid because the
futex_hash_bucket::lock is held and the task pointer is RCU protected.
[bigeasy: Updated comment and commit message]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 Version: 07d91ef510fb16a2e0ca7453222105835b7ba3b8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/futex/requeue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "220ee9e04ca3b7f014c000264aa6c884f036c86e",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
},
{
"lessThan": "81aadbd09bf1dcd3238212f336ba699503557ae8",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
},
{
"lessThan": "244f301759fd34b1dd0b4192ce44f8ef224e027d",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
},
{
"lessThan": "7d1559126d86be6e4f6a85663dfbfe85caa47e37",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
},
{
"lessThan": "e4a4ccfa470f910b747b3ee8d18670ed8ac8a236",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
},
{
"lessThan": "a3b8d46fe401cba3a5c46dea610e6eb3dc15370e",
"status": "affected",
"version": "07d91ef510fb16a2e0ca7453222105835b7ba3b8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/futex/requeue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfutex: Prevent rcuwait use-after-free during requeue PI\n\nOn PREEMPT_RT, FUTEX_CMP_REQUEUE_PI can trigger a KASAN report\n(slab-out-of-bounds) in futex_requeue_pi_complete() invocation of\nrcuwait_wake_up().\n\nThe futex_q used by futex_wait_requeue_pi() is allocated on the waiter\u0027s\nstack. An early wakeup can race with a PI requeue as follows:\n\n waiter requeue task\n ------ ------------\nfutex_wait_requeue_pi()\n futex_do_wait()\n schedule()\n futex_requeue\n futex_proxy_trylock_atomic()\n futex_requeue_pi_prepare()\n Q_REQUEUE_PI_NONE -\u003e Q_REQUEUE_PI_IN_PROGRESS\n* timeout/ signal wakes waiter *\n futex_requeue_pi_wakeup_sync()\n Q_REQUEUE_PI_IN_PROGRESS -\u003e Q_REQUEUE_PI_WAIT\n requeue_pi_wake_futex\n futex_requeue_pi_complete()\n cmpxchg Q_REQUEUE_PI_WAIT -\u003e Q_REQUEUE_PI_LOCKED\n rcuwait_wait_event()\n if (atomic_read(\u0026q-\u003erequeue_state) != Q_REQUEUE_PI_WAIT)\n break /* no schedule() */\n\n /* q.pi_state-\u003eowner == current */\n futex_private_hash_put()\n /* return from syscall */\n rcuwait_wake_up(\u0026q-\u003erequeue_wait)\n /* q is gone */\n\nfutex_requeue_pi_complete() publishes Q_REQUEUE_PI_LOCKED before\ncalling rcuwait_wake_up(). The waiter observes this state in\nrcuwait_wait_event() before invoking schedule() in rcuwait_wait_event().\nHere, the waiter is free leave the syscall before requeue task can\ncomplete the wake.\n\nTo address this race skip rcuwait_wake_up() in the Q_REQUEUE_PI_LOCKED\ncase.\nThis state is only published by requeue_pi_wake_futex(), which saves\nq-\u003etask before futex_requeue_pi_complete() and wakes the waiter via\nwake_up_state().\n\nThis wake is intended to wake the waiter from its futex_do_wait() sleep.\nIf the waiter is still sleeping there, it can not get into the\nQ_REQUEUE_PI_WAIT state (and require this removed wake).\nShould the waiter be woken up from futex_do_wait() by other means (as in\nthis example) and sleep in futex_requeue_pi_wakeup_sync() then the\nwake_up_state() from requeue_pi_wake_futex() will wake it, too.\nShould the waiter task terminate before wake_up_state() had a chance to\nwake the task then the task pointer does not become invalid because the\nfutex_hash_bucket::lock is held and the task pointer is RCU protected.\n\n[bigeasy: Updated comment and commit message]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through the local futex(2) syscalls FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI into kernel/futex/requeue.c; there is no network, Bluetooth, or physical-device path.\nAC:L - The attacker controls both sides of the race: a waiter thread using FUTEX_WAIT_REQUEUE_PI with an attacker-chosen timeout or signal, and a concurrent FUTEX_CMP_REQUEUE_PI from another thread, and can retry with CPU pinning until the waiter returns before rcuwait_wake_up() on PREEMPT_RT.\nPR:L - Any unprivileged local user can invoke futex() with FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI; do_futex() and futex_requeue() perform no capability or credential checks, CONFIG_FUTEX_PI is default-y, and the path is reachable from containers without elevated privileges.\nUI:N - The attacker\u0027s own threads perform the wait, timeout or signal, and PI requeue; no victim action such as mounting a filesystem or opening a file is required.\nS:U - The use-after-free corrupts kernel memory (the waiter\u0027s stack-allocated futex_q and a type-confused task_struct) within the same kernel security authority; this is a standard local privilege-escalation issue, not a VM, IOMMU, or hypervisor escape.\nC:H - This is a use-after-free of the waiter\u0027s stack-allocated futex_q.requeue_wait; rcuwait_wake_up() reads a stale, attacker-refilled task_struct pointer and dereferences it in try_to_wake_up(), enabling arbitrary kernel-memory disclosure.\nI:H - The stale futex_q lives on the attacker\u0027s own kernel stack, which a following syscall can refill with controlled bytes, so rcuwait_wake_up() passes an attacker-chosen pointer into try_to_wake_up(), which writes task state and makes indirect scheduler calls, enabling privilege escalation.\nA:H - In the unexploited case, rcuwait_wake_up() dereferences a wild pointer from reused stack memory and causes a kernel oops or panic; any use-after-free of this kind is a High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:56:17.256Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/220ee9e04ca3b7f014c000264aa6c884f036c86e"
},
{
"url": "https://git.kernel.org/stable/c/81aadbd09bf1dcd3238212f336ba699503557ae8"
},
{
"url": "https://git.kernel.org/stable/c/244f301759fd34b1dd0b4192ce44f8ef224e027d"
},
{
"url": "https://git.kernel.org/stable/c/7d1559126d86be6e4f6a85663dfbfe85caa47e37"
},
{
"url": "https://git.kernel.org/stable/c/e4a4ccfa470f910b747b3ee8d18670ed8ac8a236"
},
{
"url": "https://git.kernel.org/stable/c/a3b8d46fe401cba3a5c46dea610e6eb3dc15370e"
}
],
"title": "futex: Prevent rcuwait use-after-free during requeue PI",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90003",
"datePublished": "2026-09-16T10:33:13.420Z",
"dateReserved": "2026-09-11T19:38:34.780Z",
"dateUpdated": "2026-10-19T08:56:17.256Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72256 (GCVE-0-2026-72256)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-17 05:11
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_cluster: reject template conntracks in hash match
xt_cluster_mt() treats any non-NULL nf_ct_get() result as a fully
initialized conntrack and passes it to xt_cluster_hash().
This causes a state confusion bug when the raw table CT target attaches
a template conntrack to skb->_nfct before normal conntrack processing.
Templates carry IPS_TEMPLATE status but do not have a valid tuple for
hashing yet, so xt_cluster_hash() can hit its WARN_ON() path on the
zeroed l3num field.
Reject template conntracks before hashing them. This matches existing
netfilter handling for template objects and avoids hashing incomplete
conntrack state.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 Version: 0269ea4937343536ec7e85649932bc8c9686ea78 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_cluster.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4558bd7b47c7be82dffd837f27be8ea3ecee557d",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "d5f9d050b0b267227c1f02f11021872c7768a9cc",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "4cb8b5f586e41c187942291cc0938006077fa79e",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "fac2fdac3baad9ffd12b3b0bba4374d4b3585d54",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "13ea4f86cf738c74be2146886ac261988a631e62",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "07f9ddbf5e799c24a3a52ec9bd7b729a6f6d69d5",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "5b2d4f0010018a7aa3495aa1dbf1b7a34011e7aa",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
},
{
"lessThan": "5feba91006ec92da57acc1cc2e34df623b98541e",
"status": "affected",
"version": "0269ea4937343536ec7e85649932bc8c9686ea78",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_cluster.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.30"
},
{
"lessThan": "2.6.30",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.30",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_cluster: reject template conntracks in hash match\n\nxt_cluster_mt() treats any non-NULL nf_ct_get() result as a fully\ninitialized conntrack and passes it to xt_cluster_hash().\n\nThis causes a state confusion bug when the raw table CT target attaches\na template conntrack to skb-\u003e_nfct before normal conntrack processing.\nTemplates carry IPS_TEMPLATE status but do not have a valid tuple for\nhashing yet, so xt_cluster_hash() can hit its WARN_ON() path on the\nzeroed l3num field.\n\nReject template conntracks before hashing them. This matches existing\nnetfilter handling for template objects and avoids hashing incomplete\nconntrack state."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:11:14.683Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4558bd7b47c7be82dffd837f27be8ea3ecee557d"
},
{
"url": "https://git.kernel.org/stable/c/d5f9d050b0b267227c1f02f11021872c7768a9cc"
},
{
"url": "https://git.kernel.org/stable/c/4cb8b5f586e41c187942291cc0938006077fa79e"
},
{
"url": "https://git.kernel.org/stable/c/fac2fdac3baad9ffd12b3b0bba4374d4b3585d54"
},
{
"url": "https://git.kernel.org/stable/c/13ea4f86cf738c74be2146886ac261988a631e62"
},
{
"url": "https://git.kernel.org/stable/c/07f9ddbf5e799c24a3a52ec9bd7b729a6f6d69d5"
},
{
"url": "https://git.kernel.org/stable/c/5b2d4f0010018a7aa3495aa1dbf1b7a34011e7aa"
},
{
"url": "https://git.kernel.org/stable/c/5feba91006ec92da57acc1cc2e34df623b98541e"
}
],
"title": "netfilter: xt_cluster: reject template conntracks in hash match",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72256",
"datePublished": "2026-08-15T05:54:43.706Z",
"dateReserved": "2026-08-09T03:40:39.915Z",
"dateUpdated": "2026-08-17T05:11:14.683Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64210 (GCVE-0-2026-64210)
Vulnerability from cvelistv5
Published
2026-07-24 15:23
Modified
2026-10-19 20:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5e: xsk: Fix unlocked writing to ICOSQ
During napi poll, when the affinity changes and there's still XSK work
to be done, we trigger an ICOSQ interrupt on the new CPU. However, this
triggering on the ICOSQ is done unprotected.
There are 2 such races:
A) mlx5e_trigger_irq() is called while mlx5e_xsk_alloc_rx_mpwqe() is
running from a different CPU due to affinity change. This can happen
because IRQ triggering is done after napi_complete_done(). At this point
the NAPI can be scheduled on a different CPU. Like this:
CPU A (old affinity, NAPI tail) CPU B (new affinity, fresh NAPI)
------------------------------- --------------------------------
napi_complete_done() clears SCHED
mlx5e_cq_arm(...)
napi_schedule_prep() sets SCHED
mlx5e_napi_poll()
mlx5e_xsk_alloc_rx_mpwqe()
mlx5e_icosq_sync_lock() // noop
memcpy 640 B UMR body
advance sq->pc by 10
mlx5e_trigger_irq(&c->icosq)
wqe_info[pi] = {NOP, 1}
mlx5e_post_nop() advances sq->pc
B) mlx5e_trigger_irq() is called on the ICOSQ when
mlx5e_trigger_napi_icosq() is running.
The obvious fix would be to lock the ICOSQ. But ICOSQ has an optimized
locking scheme that doesn't work for this scenario. Kick the async ICOSQ
instead which is always locked.
This issue was noticed in the wild with the following splat:
netdevice: ge-0-0-1: Bad OP in ICOSQ CQE: 0xd
WARNING: drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:826 [...]
[...]
Call Trace:
<IRQ>
mlx5e_napi_poll+0x11d/0x7f0 [mlx5_core]
__napi_poll+0x30/0x200
? skb_defer_free_flush+0x9c/0xc0
net_rx_action+0x2fe/0x3f0
handle_softirqs+0xd8/0x340
__irq_exit_rcu+0xbc/0xe0
common_interrupt+0x85/0xa0
</IRQ>
<TASK>
asm_common_interrupt+0x26/0x40
[...]
---[ end trace 0000000000000000 ]---
mlx5_core 0000:08:00.0 ge-0-0-1: Error cqe on cqn 0x548, ci 0x2022, qn 0x8f4,
opcode 0xd, syndrome 0x2, vendor syndrome 0x68
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030: 00 00 00 00 01 00 68 02 01 00 08 f4 de 14 59 d2
WQE DUMP: WQ size 16384 WQ cur size 0, WQE index 0x1e14, len: 64
00000000: 00 00 00 01 d9 ed 80 02 00 00 00 01 d9 ed 90 02
00000010: 00 00 00 01 d9 ed a0 02 00 00 00 01 d9 ed b0 02
00000020: 00 00 00 01 d9 ed c0 02 00 00 00 01 d9 ed d0 02
00000030: 00 00 00 01 d9 ed e0 02 00 00 00 01 d9 ed f0 02
mlx5_core 0000:08:00.0 ge-0-0-1: Error cqe on cqn 0x548, ci 0x2023, qn 0x8f4,
opcode 0xd, syndrome 0x5, vendor syndrome 0xf9
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030: 00 00 00 00 01 00 f9 05 01 00 08 f4 de 15 cf d2
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: db05815b36cbd486c86fd002dfa81c9af6245e25 Version: db05815b36cbd486c86fd002dfa81c9af6245e25 Version: db05815b36cbd486c86fd002dfa81c9af6245e25 Version: db05815b36cbd486c86fd002dfa81c9af6245e25 Version: db05815b36cbd486c86fd002dfa81c9af6245e25 Version: db05815b36cbd486c86fd002dfa81c9af6245e25 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64210",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:37:31.264702Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:28:15.405Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0c8f331485656d5937d56a488016b944a038fe2f",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
},
{
"lessThan": "f3d8c2fd591bb603b069e151881a317e26a3f478",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
},
{
"lessThan": "f37adef34eb7ebe29a534d20ccadd72bd7ff664e",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
},
{
"lessThan": "54a97ef1025236cc1bc54d79c7ae2eb8027ce4b8",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
},
{
"lessThan": "8d3b91e7d81000d295cd914d4d9d6f860252e2bf",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
},
{
"lessThan": "c326f9c68921e2f14dfcecb2f6b4216313d50248",
"status": "affected",
"version": "db05815b36cbd486c86fd002dfa81c9af6245e25",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: xsk: Fix unlocked writing to ICOSQ\n\nDuring napi poll, when the affinity changes and there\u0027s still XSK work\nto be done, we trigger an ICOSQ interrupt on the new CPU. However, this\ntriggering on the ICOSQ is done unprotected.\n\nThere are 2 such races:\n\nA) mlx5e_trigger_irq() is called while mlx5e_xsk_alloc_rx_mpwqe() is\nrunning from a different CPU due to affinity change. This can happen\nbecause IRQ triggering is done after napi_complete_done(). At this point\nthe NAPI can be scheduled on a different CPU. Like this:\n\n CPU A (old affinity, NAPI tail) CPU B (new affinity, fresh NAPI)\n ------------------------------- --------------------------------\n napi_complete_done() clears SCHED\n mlx5e_cq_arm(...)\n napi_schedule_prep() sets SCHED\n mlx5e_napi_poll()\n mlx5e_xsk_alloc_rx_mpwqe()\n mlx5e_icosq_sync_lock() // noop\n memcpy 640 B UMR body\n advance sq-\u003epc by 10\n mlx5e_trigger_irq(\u0026c-\u003eicosq)\n wqe_info[pi] = {NOP, 1}\n mlx5e_post_nop() advances sq-\u003epc\n\nB) mlx5e_trigger_irq() is called on the ICOSQ when\nmlx5e_trigger_napi_icosq() is running.\n\nThe obvious fix would be to lock the ICOSQ. But ICOSQ has an optimized\nlocking scheme that doesn\u0027t work for this scenario. Kick the async ICOSQ\ninstead which is always locked.\n\nThis issue was noticed in the wild with the following splat:\n\n netdevice: ge-0-0-1: Bad OP in ICOSQ CQE: 0xd\n WARNING: drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:826 [...]\n [...]\n Call Trace:\n \u003cIRQ\u003e\n mlx5e_napi_poll+0x11d/0x7f0 [mlx5_core]\n __napi_poll+0x30/0x200\n ? skb_defer_free_flush+0x9c/0xc0\n net_rx_action+0x2fe/0x3f0\n handle_softirqs+0xd8/0x340\n __irq_exit_rcu+0xbc/0xe0\n common_interrupt+0x85/0xa0\n \u003c/IRQ\u003e\n \u003cTASK\u003e\n asm_common_interrupt+0x26/0x40\n [...]\n ---[ end trace 0000000000000000 ]---\n mlx5_core 0000:08:00.0 ge-0-0-1: Error cqe on cqn 0x548, ci 0x2022, qn 0x8f4,\n opcode 0xd, syndrome 0x2, vendor syndrome 0x68\n 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000030: 00 00 00 00 01 00 68 02 01 00 08 f4 de 14 59 d2\n WQE DUMP: WQ size 16384 WQ cur size 0, WQE index 0x1e14, len: 64\n 00000000: 00 00 00 01 d9 ed 80 02 00 00 00 01 d9 ed 90 02\n 00000010: 00 00 00 01 d9 ed a0 02 00 00 00 01 d9 ed b0 02\n 00000020: 00 00 00 01 d9 ed c0 02 00 00 00 01 d9 ed d0 02\n 00000030: 00 00 00 01 d9 ed e0 02 00 00 00 01 d9 ed f0 02\n mlx5_core 0000:08:00.0 ge-0-0-1: Error cqe on cqn 0x548, ci 0x2023, qn 0x8f4,\n opcode 0xd, syndrome 0x5, vendor syndrome 0xf9\n 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 00000030: 00 00 00 00 01 00 f9 05 01 00 08 f4 de 15 cf d2"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - On an internet-facing mlx5 interface using zero-copy AF_XDP, unauthenticated packets drive NIC completions into mlx5e_napi_poll and can keep XSK work busy while another NAPI run starts. AF_XDP/XDP setup is a victim-side deployment prerequisite.\nAC:L - Sustained traffic in a multicore busy-polling or IRQ-balanced deployment can repeatedly produce overlapping NAPI runs after napi_complete_done(). The attacker can retry until the shared-ICOSQ producer and descriptor race is hit.\nPR:N - The remote sender needs no account, authentication, or capability. CAP_NET_RAW and CAP_NET_ADMIN are required only by the victim-side process or administrator configuring AF_XDP/XDP.\nUI:N - After the network service is configured, packets automatically trigger the completion, NAPI, XSK refill, and ICOSQ paths without user action.\nS:U - The corrupted ICOSQ and affected receive queues remain within the host kernel and mlx5 device security authority, without crossing a VM, IOMMU, or other scope boundary.\nC:N - The race corrupts kernel-constructed queue descriptors and producer metadata but provides no path that returns host memory to the attacker or supplies an arbitrary-read primitive.\nI:N - The competing writes contain only kernel-constructed NOP and registered UMR data; no attacker-selected host address or persistent protected-data modification is established.\nA:H - The race can produce malformed ICOSQ work requests, error CQEs, queue shutdown and recovery, or an oops from inconsistent software metadata. Repeated triggering can keep the receive path and associated network service unavailable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T11:58:37.544Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0c8f331485656d5937d56a488016b944a038fe2f"
},
{
"url": "https://git.kernel.org/stable/c/f3d8c2fd591bb603b069e151881a317e26a3f478"
},
{
"url": "https://git.kernel.org/stable/c/f37adef34eb7ebe29a534d20ccadd72bd7ff664e"
},
{
"url": "https://git.kernel.org/stable/c/54a97ef1025236cc1bc54d79c7ae2eb8027ce4b8"
},
{
"url": "https://git.kernel.org/stable/c/8d3b91e7d81000d295cd914d4d9d6f860252e2bf"
},
{
"url": "https://git.kernel.org/stable/c/c326f9c68921e2f14dfcecb2f6b4216313d50248"
}
],
"title": "net/mlx5e: xsk: Fix unlocked writing to ICOSQ",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64210",
"datePublished": "2026-07-24T15:23:01.328Z",
"dateReserved": "2026-07-19T15:36:31.769Z",
"dateUpdated": "2026-10-19T20:28:15.405Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74638 (GCVE-0-2026-74638)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-25 05:23
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/v3d: Serialize the scheduler timeout handlers
V3D exposes several independent hardware queues (BIN, RENDER, TFU and
CSD) but has only a single, global reset. A timeout on any one queue
therefore has to stop, reset and restart the schedulers of every other
queue as well. That makes concurrent timeout handlers unsafe.
`reset_lock` was never able to make them safe, as a driver-side lock can
only cover the driver's &drm_sched_backend_ops.timedout_job callback.
The scheduler handles the timed out job and its pending list around that
callback, outside of the driver's control, so a global reset triggered
by one queue can still interfere with another queue that is in the
middle of handling a timeout of its own.
Consequently, if a reset happens in the CSD queue while a CL-intensive
application is running, the global reset stops and restarts the CL
queue's scheduler while that queue is handling a timeout of its own. As
drm_sched_stop() and drm_sched_start() subtract and add the credits of
every job sitting on the pending list of the scheduler they are called
on, and as the CL queue's handler concurrently takes its job off that
same list and puts it back, the stop and the start no longer see the
same set of jobs. The CL queue is left with more credits in flight than
its limit:
[ 327.302739] ------------[ cut here ]------------
[ 327.302744] WARNING: CPU: 2 PID: 43 at drivers/gpu/drm/scheduler/sched_main.c:102 drm_sched_run_job_work+0x238/0x4d0 [gpu_sched]
[ 327.302884] CPU: 2 UID: 0 PID: 43 Comm: kworker/u16:1 Not tainted 6.18.39-v8-16k+ #3 PREEMPT
[ 327.302889] Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT)
[ 327.302893] Workqueue: v3d_bin drm_sched_run_job_work [gpu_sched]
[ 327.302984] Call trace:
[ 327.302987] drm_sched_run_job_work+0x238/0x4d0 [gpu_sched] (P)
[ 327.302997] process_scheduled_works+0x180/0x3d0
[ 327.303010] worker_thread+0x268/0x3e8
[ 327.303016] kthread+0x140/0x250
[ 327.303022] ret_from_fork+0x10/0x20
[ 327.303031] ---[ end trace 0000000000000000 ]---
From that point on, the credit count of the CL queue is broken, causing
a complete GPU hang and UI freeze.
The DRM scheduler already provides a mechanism to serialize the timeout
handlers of different schedulers: an ordered workqueue passed as
drm_sched_init()'s @timeout_wq parameter. By default, each scheduler
queues its timeout work on the system workqueue, which runs the handlers
concurrently. Give all of the queues a shared ordered workqueue instead,
as recommended by the DRM scheduler documentation for hardware that has
distinct queues but resets globally.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 35e4079bf1a2570abffce6ababa631afcf8ea0e5 Version: 35e4079bf1a2570abffce6ababa631afcf8ea0e5 Version: 35e4079bf1a2570abffce6ababa631afcf8ea0e5 Version: 5235b56b7e5449d990d21d78723b1a5e7bb5738e Version: 12125f7d9c15e6d8ac91d10373b2db2f17dcf767 Version: a5f162727b91e480656da1876247a91f651f76de Version: 422a8b10ba42097a704d6909ada2956f880246f2 Version: 6.1.139 ≤ Version: 6.6.91 ≤ Version: 6.12.29 ≤ Version: 6.14.7 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/v3d/v3d_drv.h",
"drivers/gpu/drm/v3d/v3d_sched.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5884851a096d8afcdf91f0e542bac193035183a6",
"status": "affected",
"version": "35e4079bf1a2570abffce6ababa631afcf8ea0e5",
"versionType": "git"
},
{
"lessThan": "c22a45817b9c92aa0391db60e2ed467c7e6027d7",
"status": "affected",
"version": "35e4079bf1a2570abffce6ababa631afcf8ea0e5",
"versionType": "git"
},
{
"lessThan": "4da94744707b27a3ae1197bdd7127da4505dc5b1",
"status": "affected",
"version": "35e4079bf1a2570abffce6ababa631afcf8ea0e5",
"versionType": "git"
},
{
"status": "affected",
"version": "5235b56b7e5449d990d21d78723b1a5e7bb5738e",
"versionType": "git"
},
{
"status": "affected",
"version": "12125f7d9c15e6d8ac91d10373b2db2f17dcf767",
"versionType": "git"
},
{
"status": "affected",
"version": "a5f162727b91e480656da1876247a91f651f76de",
"versionType": "git"
},
{
"status": "affected",
"version": "422a8b10ba42097a704d6909ada2956f880246f2",
"versionType": "git"
},
{
"lessThan": "6.2",
"status": "affected",
"version": "6.1.139",
"versionType": "semver"
},
{
"lessThan": "6.7",
"status": "affected",
"version": "6.6.91",
"versionType": "semver"
},
{
"lessThan": "6.13",
"status": "affected",
"version": "6.12.29",
"versionType": "semver"
},
{
"lessThan": "6.15",
"status": "affected",
"version": "6.14.7",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/v3d/v3d_drv.h",
"drivers/gpu/drm/v3d/v3d_sched.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.139",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.6.91",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.12.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.14.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/v3d: Serialize the scheduler timeout handlers\n\nV3D exposes several independent hardware queues (BIN, RENDER, TFU and\nCSD) but has only a single, global reset. A timeout on any one queue\ntherefore has to stop, reset and restart the schedulers of every other\nqueue as well. That makes concurrent timeout handlers unsafe.\n\n`reset_lock` was never able to make them safe, as a driver-side lock can\nonly cover the driver\u0027s \u0026drm_sched_backend_ops.timedout_job callback.\nThe scheduler handles the timed out job and its pending list around that\ncallback, outside of the driver\u0027s control, so a global reset triggered\nby one queue can still interfere with another queue that is in the\nmiddle of handling a timeout of its own.\n\nConsequently, if a reset happens in the CSD queue while a CL-intensive\napplication is running, the global reset stops and restarts the CL\nqueue\u0027s scheduler while that queue is handling a timeout of its own. As\ndrm_sched_stop() and drm_sched_start() subtract and add the credits of\nevery job sitting on the pending list of the scheduler they are called\non, and as the CL queue\u0027s handler concurrently takes its job off that\nsame list and puts it back, the stop and the start no longer see the\nsame set of jobs. The CL queue is left with more credits in flight than\nits limit:\n\n[ 327.302739] ------------[ cut here ]------------\n[ 327.302744] WARNING: CPU: 2 PID: 43 at drivers/gpu/drm/scheduler/sched_main.c:102 drm_sched_run_job_work+0x238/0x4d0 [gpu_sched]\n[ 327.302884] CPU: 2 UID: 0 PID: 43 Comm: kworker/u16:1 Not tainted 6.18.39-v8-16k+ #3 PREEMPT\n[ 327.302889] Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT)\n[ 327.302893] Workqueue: v3d_bin drm_sched_run_job_work [gpu_sched]\n[ 327.302984] Call trace:\n[ 327.302987] drm_sched_run_job_work+0x238/0x4d0 [gpu_sched] (P)\n[ 327.302997] process_scheduled_works+0x180/0x3d0\n[ 327.303010] worker_thread+0x268/0x3e8\n[ 327.303016] kthread+0x140/0x250\n[ 327.303022] ret_from_fork+0x10/0x20\n[ 327.303031] ---[ end trace 0000000000000000 ]---\n\nFrom that point on, the credit count of the CL queue is broken, causing\na complete GPU hang and UI freeze.\n\nThe DRM scheduler already provides a mechanism to serialize the timeout\nhandlers of different schedulers: an ordered workqueue passed as\ndrm_sched_init()\u0027s @timeout_wq parameter. By default, each scheduler\nqueues its timeout work on the system workqueue, which runs the handlers\nconcurrently. Give all of the queues a shared ordered workqueue instead,\nas recommended by the DRM scheduler documentation for hardware that has\ndistinct queues but resets globally."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:23:13.123Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5884851a096d8afcdf91f0e542bac193035183a6"
},
{
"url": "https://git.kernel.org/stable/c/c22a45817b9c92aa0391db60e2ed467c7e6027d7"
},
{
"url": "https://git.kernel.org/stable/c/4da94744707b27a3ae1197bdd7127da4505dc5b1"
}
],
"title": "drm/v3d: Serialize the scheduler timeout handlers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74638",
"datePublished": "2026-08-22T15:32:17.509Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-08-25T05:23:13.123Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74595 (GCVE-0-2026-74595)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fscrypt: use the mount idmap for the owner check in fscrypt_ioctl_set_policy()
fscrypt_ioctl_set_policy() calls inode_owner_or_capable() with
&nop_mnt_idmap before allowing an encryption policy to be set, instead
of the idmap of the mount the ioctl was issued on.
fscrypt is used by filesystems that support idmapped mounts (e.g. ext4,
f2fs), so on such a mount this compares the caller's fsuid against the
unmapped on-disk owner rather than the mapped owner: the actual owner
can be wrongly denied with -EACCES and an unrelated caller wrongly
allowed. Use file_mnt_idmap(filp) instead.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 Version: 14f3db5542e62bcf6fe088a09760ac52d55306c5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74595",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:44.374854Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.849Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/crypto/policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "174633a468817a49bd474bcfc9067c84e54efe68",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "0baeb730044981f5ec5fb7d62a3763835ea606f6",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "33b7e810ce09955aa02f3b632455cf5e7ac990a9",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "6a67c460b12315033268dce597546984fe5739e7",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "653e888a24c87b8bbeab44d7e558a1c1a3641088",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "98516ba8b817f34e86bdd7a5b7a383cff75c3ddf",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
},
{
"lessThan": "cf6c993c0feca7984797e634deba3c80342e199a",
"status": "affected",
"version": "14f3db5542e62bcf6fe088a09760ac52d55306c5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/crypto/policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.12"
},
{
"lessThan": "5.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfscrypt: use the mount idmap for the owner check in fscrypt_ioctl_set_policy()\n\nfscrypt_ioctl_set_policy() calls inode_owner_or_capable() with\n\u0026nop_mnt_idmap before allowing an encryption policy to be set, instead\nof the idmap of the mount the ioctl was issued on.\n\nfscrypt is used by filesystems that support idmapped mounts (e.g. ext4,\nf2fs), so on such a mount this compares the caller\u0027s fsuid against the\nunmapped on-disk owner rather than the mapped owner: the actual owner\ncan be wrongly denied with -EACCES and an unrelated caller wrongly\nallowed. Use file_mnt_idmap(filp) instead."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local process to open a directory on an idmapped ext4/f2fs filesystem and issue FS_IOC_SET_ENCRYPTION_POLICY via ioctl(); there is no network, adjacent-radio, or physical-device attack path to the vulnerable fscrypt_ioctl_set_policy() check.\nAC:L - On idmapped mounts the UID mismatch is structural, not random: any local user whose fsuid equals the inode\u0027s unmapped on-disk owner can open an empty victim directory, add their own fscrypt key, and trigger the ioctl without races or attacker-uncontrollable memory layout.\nPR:L - Only basic local user privileges are needed; the attacker must be able to open the target directory and call FS_IOC_ADD_ENCRYPTION_KEY plus FS_IOC_SET_ENCRYPTION_POLICY, with no real-root or init-namespace capability required beyond normal DAC permissions on the path.\nUI:N - Exploitation requires no action by the victim; the attacker alone issues the ioctl on an empty directory they can open, and the authorization bypass occurs entirely within the attacker\u0027s own syscall sequence.\nS:U - This is an incorrect inode_owner_or_capable() authorization check in the kernel fscrypt ioctl path on idmapped mounts; impact stays within the same kernel security authority and does not constitute VM escape, hypervisor bypass, or IOMMU boundary crossing.\nC:H - A wrongly authorized attacker can bind a victim\u0027s empty directory to an attacker-controlled fscrypt master key, then decrypt any sensitive files the victim later creates there, giving broad read access to victim data rather than a small bounded leak.\nI:H - The ioctl persistently modifies filesystem encryption policy and on-disk fscrypt context for a directory the attacker does not own, granting unauthorized control over a critical security property of victim data at rest.\nA:H - The bug both wrongly denies legitimate directory owners with -EACCES and lets attackers encrypt a victim\u0027s empty directory with an attacker-held key, preventing the real owner from using or recovering that directory and its future contents."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:22.483Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/174633a468817a49bd474bcfc9067c84e54efe68"
},
{
"url": "https://git.kernel.org/stable/c/0baeb730044981f5ec5fb7d62a3763835ea606f6"
},
{
"url": "https://git.kernel.org/stable/c/33b7e810ce09955aa02f3b632455cf5e7ac990a9"
},
{
"url": "https://git.kernel.org/stable/c/6a67c460b12315033268dce597546984fe5739e7"
},
{
"url": "https://git.kernel.org/stable/c/653e888a24c87b8bbeab44d7e558a1c1a3641088"
},
{
"url": "https://git.kernel.org/stable/c/98516ba8b817f34e86bdd7a5b7a383cff75c3ddf"
},
{
"url": "https://git.kernel.org/stable/c/cf6c993c0feca7984797e634deba3c80342e199a"
}
],
"title": "fscrypt: use the mount idmap for the owner check in fscrypt_ioctl_set_policy()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74595",
"datePublished": "2026-08-22T15:31:45.649Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:05:59.849Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92500 (GCVE-0-2026-92500)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: use fsdata to track inline data write state and fix race
Instead of checking the live inode state (ext4_has_inline_data(inode)
and ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) in the
write_end handlers, use the fsdata parameter of the address space
operations to explicitly pass down the state in which write_begin
prepared the write.
A concurrent thread (such as ext4_page_mkwrite()) can convert the
inline data to an extent between write_begin and write_end. If this
happens, the write_end handlers would previously miss the inline
write_end path and fall through to extent-based write_end logic.
However, since block buffers were never allocated in write_begin,
this resulted in NULL pointer dereferences or data loss because
folio_buffers(folio) was NULL.
Define EXT4_WRITE_DATA_INLINE (4) as a bit flag (Bit 2), treating
fsdata as bitwise flags rather than mutually exclusive enums to keep
states of the write path independent. Communicate this state via
fsdata:
1) ext4_write_begin() and ext4_da_write_begin() set the
EXT4_WRITE_DATA_INLINE bit in *fsdata via bitwise OR when an inline
write is successfully prepared.
2) On entry, ext4_write_begin() clears the EXT4_WRITE_DATA_INLINE bit
to safely handle VFS retries (where generic_perform_write() bypasses
the fsdata initialization on its retry jump).
3) The write_end handlers perform a bitwise AND to check if the
EXT4_WRITE_DATA_INLINE bit is set and invoke the inline write_end
helper accordingly.
Furthermore, during a buffered write, ext4_write_inline_data_end()
acquires the xattr lock after preparing the write. If a concurrent
page fault (ext4_page_mkwrite()) converts the inline data to an extent
after the write_end handlers check the state but before
ext4_write_inline_data_end() acquires the xattr write lock, the
subsequent check will trigger a kernel panic via
BUG_ON(!ext4_has_inline_data(inode)).
To keep git history working and bisectability clean, replace the
BUG_ON check in ext4_write_inline_data_end() with a graceful error-
handling retry path in this same commit. If the inline data is cleared
after locking the xattr, we safely release all resources (releasing
iloc.bh, unlocking/putting the folio, stopping the active journal
transaction handle) and return 0 (VFS retry) to let the generic write
path retry the operation safely.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/ext4.h",
"fs/ext4/inline.c",
"fs/ext4/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bd8d74bd46d09905164255b8635fa58b45f41068",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "439aedfd7ae868d1d7b4930afe66091cb979cd5c",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "7edbb323bab2b2a609016014caafdb651c898249",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/ext4.h",
"fs/ext4/inline.c",
"fs/ext4/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.8"
},
{
"lessThan": "3.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: use fsdata to track inline data write state and fix race\n\nInstead of checking the live inode state (ext4_has_inline_data(inode)\nand ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) in the\nwrite_end handlers, use the fsdata parameter of the address space\noperations to explicitly pass down the state in which write_begin\nprepared the write.\n\nA concurrent thread (such as ext4_page_mkwrite()) can convert the\ninline data to an extent between write_begin and write_end. If this\nhappens, the write_end handlers would previously miss the inline\nwrite_end path and fall through to extent-based write_end logic.\nHowever, since block buffers were never allocated in write_begin,\nthis resulted in NULL pointer dereferences or data loss because\nfolio_buffers(folio) was NULL.\n\nDefine EXT4_WRITE_DATA_INLINE (4) as a bit flag (Bit 2), treating\nfsdata as bitwise flags rather than mutually exclusive enums to keep\nstates of the write path independent. Communicate this state via\nfsdata:\n1) ext4_write_begin() and ext4_da_write_begin() set the\n EXT4_WRITE_DATA_INLINE bit in *fsdata via bitwise OR when an inline\n write is successfully prepared.\n2) On entry, ext4_write_begin() clears the EXT4_WRITE_DATA_INLINE bit\n to safely handle VFS retries (where generic_perform_write() bypasses\n the fsdata initialization on its retry jump).\n3) The write_end handlers perform a bitwise AND to check if the\n EXT4_WRITE_DATA_INLINE bit is set and invoke the inline write_end\n helper accordingly.\n\nFurthermore, during a buffered write, ext4_write_inline_data_end()\nacquires the xattr lock after preparing the write. If a concurrent\npage fault (ext4_page_mkwrite()) converts the inline data to an extent\nafter the write_end handlers check the state but before\next4_write_inline_data_end() acquires the xattr write lock, the\nsubsequent check will trigger a kernel panic via\nBUG_ON(!ext4_has_inline_data(inode)).\n\nTo keep git history working and bisectability clean, replace the\nBUG_ON check in ext4_write_inline_data_end() with a graceful error-\nhandling retry path in this same commit. If the inline data is cleared\nafter locking the xattr, we safely release all resources (releasing\niloc.bh, unlocking/putting the folio, stopping the active journal\ntransaction handle) and return 0 (VFS retry) to let the generic write\npath retry the operation safely."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:06.284Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bd8d74bd46d09905164255b8635fa58b45f41068"
},
{
"url": "https://git.kernel.org/stable/c/439aedfd7ae868d1d7b4930afe66091cb979cd5c"
},
{
"url": "https://git.kernel.org/stable/c/7edbb323bab2b2a609016014caafdb651c898249"
}
],
"title": "ext4: use fsdata to track inline data write state and fix race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92500",
"datePublished": "2026-09-17T16:10:14.073Z",
"dateReserved": "2026-09-16T12:21:13.871Z",
"dateUpdated": "2026-10-19T09:04:06.284Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90414 (GCVE-0-2026-90414)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/isert: reject PDUs declaring more data than was received
isert_recv_done() hands each received PDU to the opcode handlers without
ever looking at wc->byte_len, the number of bytes the HCA actually placed
in the receive descriptor. The handlers then copy that many bytes - the
data-segment length the initiator declared in the BHS
(ntoh24(hdr->dlength), via the derived unsol_data_len / imm_data_len) -
out of the fixed-size descriptor:
isert_handle_iscsi_dataout():
sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),
unsol_data_len);
isert_handle_scsi_cmd():
sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents,
isert_get_data(rx_desc), imm_data_len);
Because the declared length is never checked against wc->byte_len, an
initiator can declare a data segment larger than the bytes it actually
sent (and larger than the descriptor) and cause an out-of-bounds read of
the receive buffer.
Nothing upstream of isert closes this door:
- __iscsit_check_dataout_hdr() bounds the inbound payload against
conn_ops->MaxXmitDataSegmentLength (MXDSL) - a transmit parameter,
used here for the inbound check.
- iscsi_set_connection_parameters() sets
ops->MaxXmitDataSegmentLength = ops->TargetRecvDataSegmentLength;
and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in
iscsi_check_acceptor_state(), so the value the initiator declares is
adopted verbatim (type range 512..16777215). The initiator effectively
raises its own ceiling.
- isert never clamps the negotiated value to its own fixed receive
descriptor (ISER_RX_SIZE, 9216 bytes), so the target core's bound and
the descriptor size are unrelated.
The imm_data_len == data_len path is more than an over-read: it aliases
the receive descriptor via sg_set_buf() and passes it to the backend as
the data source for the SCSI WRITE, so an over-declared length causes heap
contents past the descriptor to be written through the backend to the
backing store. The backend is the victim of the oversized scatterlist
isert hands it, not the cause; no read-back of the written bytes was
demonstrated.
Trigger: after login completes (full feature phase), an initiator that has
declared a large TargetRecvDataSegmentLength and a FirstBurstLength that
permits unsolicited/immediate data sends a PDU whose declared data-segment
length exceeds what was received. With KASAN:
BUG: KASAN: slab-out-of-bounds in sg_copy_buffer+0x150/0x1c0
Read of size 4096 at addr ffff888109720800 by task kworker/1:0H/25
Workqueue: ib-comp-wq ib_cq_poll_work
Call Trace:
sg_copy_buffer+0x150/0x1c0
isert_recv_done+0xba6/0x2390
__ib_process_cq+0xe1/0x390
ib_cq_poll_work+0x46/0x150
isert_recv_done+0xba6 resolves to isert_handle_iscsi_dataout()
(ib_isert.c:1160), inlined through isert_rx_opcode().
Validate wc->byte_len against the framing in isert_recv_done() before the
PDU reaches any handler, and reinstate the connection if it is short.
Because the test compares without subtracting the header length, it also
rejects PDUs shorter than the iSER and iSCSI headers, which would otherwise
be parsed out of stale descriptor contents. The login handler rejects PDUs
shorter than ISER_HEADERS_LEN (commit 29e7b925ae6d ("IB/isert: Reject login
PDUs shorter than ISER_HEADERS_LEN")) but does not bound the declared
length either; that is fixed in the next patch. The data handlers had no
length check at all.
isert reads the data segment from a fixed offset: isert_get_data()
returns the iSER header plus ISER_HEADERS_LEN and makes no adjustment for
an AHS. The bytes the handlers touch are therefore exactly
[ISER_HEADERS_LEN, ISER_HEADERS_LEN + dlength), and comparing that sum
against wc->byte_len bounds precisely the region that is read. An AHS
term would only make the test stricter without bounding anything furth
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b4706722ed3ea72882b3c986a19b4a1ba66384c4",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "bc58e9d3dc560220c57b8bdfc12af0cff1c8a43d",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "274b1ad7e78338710864c4b4235bb1ce7e7107f9",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "2a6b8f88fb7ee51714a1922a039225bdcaf12855",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "39da0b7e1f530347d284cebcfc5b5afa90a173bf",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "cf36fa5357a2fb25776a568d13a3653da7d99bcb",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "352dc85324b29f5c85876f2666f3158b645e3f18",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "957f92ea4022fb6af4618271615a2a21a7b5bef9",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/isert: reject PDUs declaring more data than was received\n\nisert_recv_done() hands each received PDU to the opcode handlers without\never looking at wc-\u003ebyte_len, the number of bytes the HCA actually placed\nin the receive descriptor. The handlers then copy that many bytes - the\ndata-segment length the initiator declared in the BHS\n(ntoh24(hdr-\u003edlength), via the derived unsol_data_len / imm_data_len) -\nout of the fixed-size descriptor:\n\n isert_handle_iscsi_dataout():\n sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),\n unsol_data_len);\n isert_handle_scsi_cmd():\n sg_copy_from_buffer(cmd-\u003ese_cmd.t_data_sg, sg_nents,\n isert_get_data(rx_desc), imm_data_len);\n\nBecause the declared length is never checked against wc-\u003ebyte_len, an\ninitiator can declare a data segment larger than the bytes it actually\nsent (and larger than the descriptor) and cause an out-of-bounds read of\nthe receive buffer.\n\nNothing upstream of isert closes this door:\n\n - __iscsit_check_dataout_hdr() bounds the inbound payload against\n conn_ops-\u003eMaxXmitDataSegmentLength (MXDSL) - a transmit parameter,\n used here for the inbound check.\n - iscsi_set_connection_parameters() sets\n ops-\u003eMaxXmitDataSegmentLength = ops-\u003eTargetRecvDataSegmentLength;\n and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in\n iscsi_check_acceptor_state(), so the value the initiator declares is\n adopted verbatim (type range 512..16777215). The initiator effectively\n raises its own ceiling.\n - isert never clamps the negotiated value to its own fixed receive\n descriptor (ISER_RX_SIZE, 9216 bytes), so the target core\u0027s bound and\n the descriptor size are unrelated.\n\nThe imm_data_len == data_len path is more than an over-read: it aliases\nthe receive descriptor via sg_set_buf() and passes it to the backend as\nthe data source for the SCSI WRITE, so an over-declared length causes heap\ncontents past the descriptor to be written through the backend to the\nbacking store. The backend is the victim of the oversized scatterlist\nisert hands it, not the cause; no read-back of the written bytes was\ndemonstrated.\n\nTrigger: after login completes (full feature phase), an initiator that has\ndeclared a large TargetRecvDataSegmentLength and a FirstBurstLength that\npermits unsolicited/immediate data sends a PDU whose declared data-segment\nlength exceeds what was received. With KASAN:\n\n BUG: KASAN: slab-out-of-bounds in sg_copy_buffer+0x150/0x1c0\n Read of size 4096 at addr ffff888109720800 by task kworker/1:0H/25\n Workqueue: ib-comp-wq ib_cq_poll_work\n Call Trace:\n sg_copy_buffer+0x150/0x1c0\n isert_recv_done+0xba6/0x2390\n __ib_process_cq+0xe1/0x390\n ib_cq_poll_work+0x46/0x150\n\nisert_recv_done+0xba6 resolves to isert_handle_iscsi_dataout()\n(ib_isert.c:1160), inlined through isert_rx_opcode().\n\nValidate wc-\u003ebyte_len against the framing in isert_recv_done() before the\nPDU reaches any handler, and reinstate the connection if it is short.\nBecause the test compares without subtracting the header length, it also\nrejects PDUs shorter than the iSER and iSCSI headers, which would otherwise\nbe parsed out of stale descriptor contents. The login handler rejects PDUs\nshorter than ISER_HEADERS_LEN (commit 29e7b925ae6d (\"IB/isert: Reject login\nPDUs shorter than ISER_HEADERS_LEN\")) but does not bound the declared\nlength either; that is fixed in the next patch. The data handlers had no\nlength check at all.\n\nisert reads the data segment from a fixed offset: isert_get_data()\nreturns the iSER header plus ISER_HEADERS_LEN and makes no adjustment for\nan AHS. The bytes the handlers touch are therefore exactly\n[ISER_HEADERS_LEN, ISER_HEADERS_LEN + dlength), and comparing that sum\nagainst wc-\u003ebyte_len bounds precisely the region that is read. An AHS\nterm would only make the test stricter without bounding anything furth\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The attacker-controlled length is ntoh24(hdr-\u003edlength) in the iSCSI BHS of an RDMA SEND consumed by isert_recv_done(); isert_handle_iscsi_dataout(), isert_handle_scsi_cmd() and isert_handle_text_cmd() then copy that many bytes from the receive descriptor. ib_isert listens via rdma_bind_addr()/rdma_listen() on RDMA_PS_TCP (RoCEv2/iWARP), so that PDU is supplied by a remote initiator on a routable IP fabric.\nAC:L - After login the initiator sends a PDU whose BHS dlength exceeds wc-\u003ebyte_len. isert_handle_text_cmd() memcpy()s that length from isert_get_data(rx_desc), and isert_handle_iscsi_dataout()/isert_handle_scsi_cmd() pass it to sg_copy_from_buffer(); on a Normal session the initiator also raises TargetRecvDataSegmentLength, which iscsi_check_acceptor_state() adopts as MaxXmitDataSegmentLength. No race is involved.\nPR:N - isert_recv_done() runs in full-feature phase, but iscsit_load_discovery_tpg() defaults discovery_tpg authentication=0 (AuthMethod=CHAP,None). iscsi_target_locate_portal() attaches that TPG for SessionType=Discovery on the isert NP, and isert_rx_opcode() then delivers ISCSI_OP_TEXT to isert_handle_text_cmd() with no credentials.\nUI:N - The remote initiator completes iSER login and posts the malformed PDU; ib_cq_poll_work on ib-comp-wq invokes isert_recv_done() with no local user or administrator action.\nS:U - The heap over-read and oops stay in the host kernel that implements ib_isert and LIO; this is not a guest-to-host, IOMMU, or other cross-authority impact.\nC:H - isert_handle_text_cmd() memcpy()s ntoh24(dlength) bytes from isert_get_data() inside the 9216-byte iser_rx_desc.buf; discovery MaxXmitDataSegmentLength defaults to 262144 and a Normal session can raise TargetRecvDataSegmentLength to 16MB, so the copy over-reads far past the descriptor. isert_handle_scsi_cmd() sg_set_buf() can also feed those heap bytes to a SCSI WRITE.\nI:N - sg_copy_from_buffer() and the text memcpy read from the receive descriptor into a destination sized for the declared length (t_data_sg from transport_generic_new_cmd(), or kzalloc(payload_length)); they do not write past kernel objects. sg_set_buf() only over-reads heap as the SCSI WRITE source.\nA:H - Copying 256KB or more from a fixed ISER_RX_SIZE (9216) descriptor is a slab-out-of-bounds read; the commit\u0027s KASAN report is BUG in sg_copy_buffer from isert_handle_iscsi_dataout(), and an over-read that leaves the rx_descs allocation oopses the target."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:18.486Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b4706722ed3ea72882b3c986a19b4a1ba66384c4"
},
{
"url": "https://git.kernel.org/stable/c/bc58e9d3dc560220c57b8bdfc12af0cff1c8a43d"
},
{
"url": "https://git.kernel.org/stable/c/274b1ad7e78338710864c4b4235bb1ce7e7107f9"
},
{
"url": "https://git.kernel.org/stable/c/2a6b8f88fb7ee51714a1922a039225bdcaf12855"
},
{
"url": "https://git.kernel.org/stable/c/39da0b7e1f530347d284cebcfc5b5afa90a173bf"
},
{
"url": "https://git.kernel.org/stable/c/cf36fa5357a2fb25776a568d13a3653da7d99bcb"
},
{
"url": "https://git.kernel.org/stable/c/352dc85324b29f5c85876f2666f3158b645e3f18"
},
{
"url": "https://git.kernel.org/stable/c/957f92ea4022fb6af4618271615a2a21a7b5bef9"
}
],
"title": "IB/isert: reject PDUs declaring more data than was received",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90414",
"datePublished": "2026-09-17T16:09:40.045Z",
"dateReserved": "2026-09-11T19:38:34.813Z",
"dateUpdated": "2026-10-19T09:03:18.486Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72247 (GCVE-0-2026-72247)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_conncount: fix zone comparison in tuple dedup
The "already exists" dedup logic in __nf_conncount_add() decides
whether a connection has already been counted and can be skipped instead
of incrementing the connlimit count. It compares the conntrack zone of a
list entry with the zone of the connection being added using
nf_ct_zone_id() and nf_ct_zone_equal(), passing conn->zone.dir or
zone->dir as the direction argument.
Those helpers take enum ip_conntrack_dir values: IP_CT_DIR_ORIGINAL is 0
and IP_CT_DIR_REPLY is 1. However, zone->dir is a u8 bitmask:
NF_CT_ZONE_DIR_ORIG is 1, NF_CT_ZONE_DIR_REPL is 2 and
NF_CT_DEFAULT_ZONE_DIR is 3. Passing that bitmask as the enum direction
shifts the meaning of every non-zero value. An ORIG-only zone passes 1
and is tested as REPLY, while REPL-only and default zones pass 2 or 3 and
test bits beyond the valid direction range. In those cases
nf_ct_zone_id() can fall back to NF_CT_DEFAULT_ZONE_ID instead of using
the real zone id, so different zones can be treated as equal and dedup
collapses to tuple equality alone.
nf_conncount stores and compares the original-direction tuple for a
connection. If an skb already has an attached conntrack entry,
get_ct_or_tuple_from_skb() explicitly copies
ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple, regardless of the packet's
ctinfo. Therefore the zone comparison in the tuple dedup path must use
IP_CT_DIR_ORIGINAL as well; the zone direction bitmask describes where a
zone id applies, not which direction this conncount tuple represents.
Fix the two dedup comparisons by passing IP_CT_DIR_ORIGINAL directly.
Do not special-case NF_CT_DEFAULT_ZONE_DIR and do not compare raw zone
ids: using the existing helpers with IP_CT_DIR_ORIGINAL preserves the
direction-aware NF_CT_DEFAULT_ZONE_ID fallback. A default bidirectional
zone contains the ORIG bit, so it naturally returns the real zone id;
reply-only zones continue to fall back for original-direction tuple
comparisons.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 21ba8847f857028dc83a0f341e16ecc616e34740 Version: 525e1dffed8711973f77412729621098a95238e5 Version: 75af3d78168e654a5cd8bbc4c774f97be836165f Version: 4.14.92 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72247",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:45:04.769644Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:12.850Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conncount.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82fc35e0da9a91db9a034f8311f18f77a599ae3f",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "78b5d6dbc860776161f9e9206b06ff8a01f531ab",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "4f30a89c0ed2418719a1144881c2635b940b543d",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "7bdc3c0985ecf17b957811fedcc684acdf698acc",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "35a56e2a46b90e6bd4ca816b80e9cb8d20dfc3ce",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "3cd9a5792cbea81139c24320986dd0db69e9b5d0",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "6ff07ac5405bea4d4ead3559fc123f987576424a",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"lessThan": "f62c41b4910e65da396ec9a8c40c1fe7fe82e449",
"status": "affected",
"version": "21ba8847f857028dc83a0f341e16ecc616e34740",
"versionType": "git"
},
{
"status": "affected",
"version": "525e1dffed8711973f77412729621098a95238e5",
"versionType": "git"
},
{
"status": "affected",
"version": "75af3d78168e654a5cd8bbc4c774f97be836165f",
"versionType": "git"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.92",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conncount.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.92",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.92",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_conncount: fix zone comparison in tuple dedup\n\nThe \"already exists\" dedup logic in __nf_conncount_add() decides\nwhether a connection has already been counted and can be skipped instead\nof incrementing the connlimit count. It compares the conntrack zone of a\nlist entry with the zone of the connection being added using\nnf_ct_zone_id() and nf_ct_zone_equal(), passing conn-\u003ezone.dir or\nzone-\u003edir as the direction argument.\n\nThose helpers take enum ip_conntrack_dir values: IP_CT_DIR_ORIGINAL is 0\nand IP_CT_DIR_REPLY is 1. However, zone-\u003edir is a u8 bitmask:\nNF_CT_ZONE_DIR_ORIG is 1, NF_CT_ZONE_DIR_REPL is 2 and\nNF_CT_DEFAULT_ZONE_DIR is 3. Passing that bitmask as the enum direction\nshifts the meaning of every non-zero value. An ORIG-only zone passes 1\nand is tested as REPLY, while REPL-only and default zones pass 2 or 3 and\ntest bits beyond the valid direction range. In those cases\nnf_ct_zone_id() can fall back to NF_CT_DEFAULT_ZONE_ID instead of using\nthe real zone id, so different zones can be treated as equal and dedup\ncollapses to tuple equality alone.\n\nnf_conncount stores and compares the original-direction tuple for a\nconnection. If an skb already has an attached conntrack entry,\nget_ct_or_tuple_from_skb() explicitly copies\nct-\u003etuplehash[IP_CT_DIR_ORIGINAL].tuple, regardless of the packet\u0027s\nctinfo. Therefore the zone comparison in the tuple dedup path must use\nIP_CT_DIR_ORIGINAL as well; the zone direction bitmask describes where a\nzone id applies, not which direction this conncount tuple represents.\n\nFix the two dedup comparisons by passing IP_CT_DIR_ORIGINAL directly.\nDo not special-case NF_CT_DEFAULT_ZONE_DIR and do not compare raw zone\nids: using the existing helpers with IP_CT_DIR_ORIGINAL preserves the\ndirection-aware NF_CT_DEFAULT_ZONE_ID fallback. A default bidirectional\nzone contains the ORIG bit, so it naturally returns the real zone id;\nreply-only zones continue to fall back for original-direction tuple\ncomparisons."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in __nf_conncount_add() on the netfilter packet path; remote peers drive it by sending traffic that hits xt_connlimit, nft_connlimit, or Open vSwitch conntrack zone-limit rules on internet-facing gateways and cloud hypervisors.\nAC:L - Once connlimit or OVS zone limits are deployed, an attacker can deterministically skew counts by opening many connections across conntrack zones; zone bitmask misuse makes different zones compare equal without races or victim-specific state.\nPR:N - Triggering requires only unauthenticated inbound packets matching existing connlimit rules; the attacker needs no credentials or capabilities on the target, only network reachability to the protected service.\nUI:N - Exploitation needs no action from any user or administrator beyond normal background connlimit deployment; the attacker autonomously sends connection traffic to provoke incorrect deduplication.\nS:U - Impact is confined to incorrect per-zone connection accounting inside the kernel netfilter/conntrack stack; it does not cross VM, container, or IOMMU security boundaries.\nC:N - This is a logic error in zone-aware tuple deduplication with no memory corruption, out-of-bounds access, use-after-free, or other information-disclosure primitive.\nI:N - No attacker-controlled kernel or application data is modified; only internal connection counters are wrong, with no memory writes or code-execution primitive.\nA:H - Undercounting lets attackers bypass per-zone connlimit/OVS limits and exhaust conntrack or service resources; overcounting can falsely hit limits and drop or reject legitimate new connections, causing sustained denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:41:58.867Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82fc35e0da9a91db9a034f8311f18f77a599ae3f"
},
{
"url": "https://git.kernel.org/stable/c/78b5d6dbc860776161f9e9206b06ff8a01f531ab"
},
{
"url": "https://git.kernel.org/stable/c/4f30a89c0ed2418719a1144881c2635b940b543d"
},
{
"url": "https://git.kernel.org/stable/c/7bdc3c0985ecf17b957811fedcc684acdf698acc"
},
{
"url": "https://git.kernel.org/stable/c/35a56e2a46b90e6bd4ca816b80e9cb8d20dfc3ce"
},
{
"url": "https://git.kernel.org/stable/c/3cd9a5792cbea81139c24320986dd0db69e9b5d0"
},
{
"url": "https://git.kernel.org/stable/c/6ff07ac5405bea4d4ead3559fc123f987576424a"
},
{
"url": "https://git.kernel.org/stable/c/f62c41b4910e65da396ec9a8c40c1fe7fe82e449"
}
],
"title": "netfilter: nf_conncount: fix zone comparison in tuple dedup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72247",
"datePublished": "2026-08-15T05:54:35.201Z",
"dateReserved": "2026-08-09T03:40:39.914Z",
"dateUpdated": "2026-10-16T18:55:12.850Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64422 (GCVE-0-2026-64422)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes
Reject invalid `net.ipv4.tcp_reordering` values before they reach TCP
socket state. The sysctl is stored as an `int` but copied into the
`u32` `tp->reordering` field for new sockets, so negative writes wrap
to large values.
With `tcp_mtu_probing=2`, the wrapped value can overflow the
`tcp_mtu_probe()` size calculation and drive the MTU probing path into
an out-of-bounds read. Route `tcp_reordering` writes through
`proc_dointvec_minmax()` and require it to be at least 1. Also require
`tcp_max_reordering` to be at least 1 so the configured maximum cannot
become negative either.
When registering the table for a non-init network namespace, relocate
`extra2` pointers that refer into `init_net.ipv4` so the
`tcp_reordering` upper bound follows that namespace's
`tcp_max_reordering`.
Harden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`.
This keeps the send queue and window checks from being bypassed through
signed integer overflow.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf Version: 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:23:46.847Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64422",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:40:28.975734Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-190",
"description": "CWE-190 Integer Overflow or Wraparound",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:28.132Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/sysctl_net_ipv4.c",
"net/ipv4/tcp_output.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f0d88a4cd03affff6c08adf6c63964e235aede43",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "27ddf4486c7dbf5bdd393fa8bef6b67179796d98",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "e81f805824a8109504fce090641b17d135b48cd1",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "99206ce2244f8a3ed64298d0667c9055845a5dc7",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "bbae351c0f32f7c200249e4aa6561b2b419dcf69",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "a094ac95d3b69adfa1676eb9c8eae6835d4f1671",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
},
{
"lessThan": "efb8763d7bbb40cff4cc55a6b62c3095a038149c",
"status": "affected",
"version": "91cc17c0e5e5ada156a8d5787a2509d263ea6bbf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/sysctl_net_ipv4.c",
"net/ipv4/tcp_output.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.24"
},
{
"lessThan": "2.6.24",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.24",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipv4: bound TCP reordering sysctl writes and MTU probe sizes\n\nReject invalid `net.ipv4.tcp_reordering` values before they reach TCP\nsocket state. The sysctl is stored as an `int` but copied into the\n`u32` `tp-\u003ereordering` field for new sockets, so negative writes wrap\nto large values.\n\nWith `tcp_mtu_probing=2`, the wrapped value can overflow the\n`tcp_mtu_probe()` size calculation and drive the MTU probing path into\nan out-of-bounds read. Route `tcp_reordering` writes through\n`proc_dointvec_minmax()` and require it to be at least 1. Also require\n`tcp_max_reordering` to be at least 1 so the configured maximum cannot\nbecome negative either.\n\nWhen registering the table for a non-init network namespace, relocate\n`extra2` pointers that refer into `init_net.ipv4` so the\n`tcp_reordering` upper bound follows that namespace\u0027s\n`tcp_max_reordering`.\n\nHarden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`.\nThis keeps the send queue and window checks from being bypassed through\nsigned integer overflow."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker must locally write the per-network-namespace TCP sysctls and exercise a TCP socket; remote packets alone cannot introduce the invalid signed value.\nAC:L - The attacker can set both tcp_reordering and tcp_mtu_probing=2, establish an attacker-controlled TCP connection, grow its congestion window, and control queued data and receiver-window conditions.\nPR:L - Writes require CAP_NET_ADMIN in the network namespace\u2019s owning user namespace, which an unprivileged user can obtain by creating user and network namespaces on systems permitting unprivileged user namespaces.\nUI:N - The attacker can configure the namespace and trigger MTU probing using their own TCP endpoints without any victim action.\nS:U - The vulnerable TCP implementation and the affected kernel memory and availability remain within the Linux kernel\u2019s security authority.\nC:H - The overflow bypasses send-queue validation and causes an out-of-bounds kernel-memory read through an invalid skb traversal, potentially exposing sensitive kernel data.\nI:N - The established primitive is an out-of-bounds read and malformed skb state; the affected path provides no demonstrated out-of-bounds write or other data-modification primitive.\nA:H - The invalid skb access and inconsistent payload geometry can cause an OOPS, BUG, or kernel panic, and an attacker can trigger the path repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:22.159Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f0d88a4cd03affff6c08adf6c63964e235aede43"
},
{
"url": "https://git.kernel.org/stable/c/27ddf4486c7dbf5bdd393fa8bef6b67179796d98"
},
{
"url": "https://git.kernel.org/stable/c/782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae"
},
{
"url": "https://git.kernel.org/stable/c/e81f805824a8109504fce090641b17d135b48cd1"
},
{
"url": "https://git.kernel.org/stable/c/99206ce2244f8a3ed64298d0667c9055845a5dc7"
},
{
"url": "https://git.kernel.org/stable/c/bbae351c0f32f7c200249e4aa6561b2b419dcf69"
},
{
"url": "https://git.kernel.org/stable/c/a094ac95d3b69adfa1676eb9c8eae6835d4f1671"
},
{
"url": "https://git.kernel.org/stable/c/efb8763d7bbb40cff4cc55a6b62c3095a038149c"
}
],
"title": "net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64422",
"datePublished": "2026-07-25T08:51:00.671Z",
"dateReserved": "2026-07-19T15:36:31.787Z",
"dateUpdated": "2026-10-19T20:38:28.132Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74390 (GCVE-0-2026-74390)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs
The irdma_copy_user_pgaddrs function loops through all of the umem DMA
blocks to populate the PBLEs and will stop when either the last DMA
block is reached or palloc->total_cnt is reached. The issue is that
the logic for checking palloc->total_cnt would only work for non-zero
values.
When irdma_setup_pbles is called with lvl==0, it
calls irdma_copy_user_pgaddrs with palloc->total_cnt==0, which means
the only way to break out of the loop is to reach the last umem DMA
block, which means it could end up going beyond the fixed size of 4
iwmr->pgaddrmem array that is used in the lvl==0 case.
In the case of QP/CQ/SRQ rings, the value of lvl is determined by a
separate input (for example, req.cq_pages in the case of a CQ). So,
we must perform explicit checking to ensure we don't overflow the
pgaddrmem array if the user provides a umem that consists of more
blocks than their provided req.cq_pages.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74390",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:16.364309Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:40.715Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4780f58672ee6328accd54a95f9c00683477e499",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "79a20a8e201a779224b4bf115250a7713bde72c0",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "9f8f0d2099e3de1194e37dc933ae0c4206b09aaf",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "192a3be0e3759daa24af2841208b074ca6dbaabc",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "424d51d33c7541a86934067c2c0538124687fc90",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "abd27a977b419d584efa659488c22d2306987b29",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "5ebb3ed757be3e04cf803026004aa0beaeb13e9b",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs\n\nThe irdma_copy_user_pgaddrs function loops through all of the umem DMA\nblocks to populate the PBLEs and will stop when either the last DMA\nblock is reached or palloc-\u003etotal_cnt is reached. The issue is that\nthe logic for checking palloc-\u003etotal_cnt would only work for non-zero\nvalues.\n\nWhen irdma_setup_pbles is called with lvl==0, it\ncalls irdma_copy_user_pgaddrs with palloc-\u003etotal_cnt==0, which means\nthe only way to break out of the loop is to reach the last umem DMA\nblock, which means it could end up going beyond the fixed size of 4\niwmr-\u003epgaddrmem array that is used in the lvl==0 case.\n\nIn the case of QP/CQ/SRQ rings, the value of lvl is determined by a\nseparate input (for example, req.cq_pages in the case of a CQ). So,\nwe must perform explicit checking to ensure we don\u0027t overflow the\npgaddrmem array if the user provides a umem that consists of more\nblocks than their provided req.cq_pages."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local ioctl on /dev/infiniband/uverbs to register CQ/QP/SRQ memory via irdma_reg_user_mr; the bug is not reachable from remote iWARP/RoCE packet handling.\nAC:L - An attacker fully controls reg_type, cq_pages/sq_pages/rq_pages, and umem size; triggering lvl==0 with many DMA blocks is deterministic and needs no races or special memory layout.\nPR:L - Any unprivileged local user who can open the uverbs device (mode 0666) and use the RDMA NIC\u2014typical on cloud/HPC RDMA nodes\u2014can invoke the vulnerable MR registration path without real root.\nUI:N - No victim interaction is required; the attacker triggers the overflow directly through their own RDMA verbs memory registration calls.\nS:U - Impact is kernel heap corruption and privilege escalation within the host kernel security boundary, not a cross-VM or cross-IOMMU sandbox escape.\nC:H - The out-of-bounds write of attacker-influenced DMA addresses into adjacent irdma_mr/iwpbl heap metadata can be leveraged for arbitrary kernel memory read primitives, not merely a bounded leak.\nI:H - Controlled out-of-bounds u64 writes past pgaddrmem[4] corrupt adjacent kernel heap structures and are suitable for control-flow or arbitrary kernel write exploitation.\nA:H - Heap corruption in a kzalloc\u0027d irdma_mr can cause immediate kernel oops/panic during registration or on subsequent use of corrupted queue memory metadata."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:38.735Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4780f58672ee6328accd54a95f9c00683477e499"
},
{
"url": "https://git.kernel.org/stable/c/79a20a8e201a779224b4bf115250a7713bde72c0"
},
{
"url": "https://git.kernel.org/stable/c/9f8f0d2099e3de1194e37dc933ae0c4206b09aaf"
},
{
"url": "https://git.kernel.org/stable/c/192a3be0e3759daa24af2841208b074ca6dbaabc"
},
{
"url": "https://git.kernel.org/stable/c/424d51d33c7541a86934067c2c0538124687fc90"
},
{
"url": "https://git.kernel.org/stable/c/abd27a977b419d584efa659488c22d2306987b29"
},
{
"url": "https://git.kernel.org/stable/c/5ebb3ed757be3e04cf803026004aa0beaeb13e9b"
}
],
"title": "RDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74390",
"datePublished": "2026-08-15T05:59:04.479Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-10-16T19:05:40.715Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74579 (GCVE-0-2026-74579)
Vulnerability from cvelistv5
Published
2026-08-17 05:28
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_payload: fix mask build for partial field offload
nft_payload_offload_mask() builds the offload match mask for a payload
expression that covers only part of a header field. For a partial IPv6
address match (field_len = 16, priv_len = 1) that shift is 1 << 120, which
is undefined on the 32-bit int operand. It also trims only one word, so
the remaining words stay 0xffffffff (and when priv_len is a multiple of 4
the trim is skipped entirely), leaving the mask covering more bytes than
the rule matches.
UBSAN: shift-out-of-bounds in net/netfilter/nft_payload.c:278:20
shift exponent 120 is too large for 32-bit type 'int'
...
The match is byte-granular and struct nft_data is zero-initialised, so the
correct mask is simply the first priv_len bytes set to 0xff. Set those
bytes directly and drop the word/shift trimming; this removes the undefined
shift and no longer over-masks the trailing bytes.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: a5d45bc0dc50f9dd83703510e9804d813a9cac32 Version: 5c2b4b4f9fa5b765b927e361e3d310bcb5773015 Version: 5.9.14 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74579",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:02.815654Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:57.728Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nft_payload.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3ee7b3f813b11f28cd6efdf7f24d64b5a7fd4dc7",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "8720df4504e0ed1781a702f65251bd47b3534d5e",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "363c3a84a946d53e5e121c9f47c7c2b7d228c46b",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "b19b5d2e042c294e2cc1c908dc598f9d64015396",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "a375d8ace807767f29f276b681b6324c74929b1d",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "16b553c46e347bc9de9946c4960654d5884a86de",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "630295d5bba1d0e0f494cc459452eb0a0058c545",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"lessThan": "39e88f28fb32bf02bd4b525c24c842c9cff5663d",
"status": "affected",
"version": "a5d45bc0dc50f9dd83703510e9804d813a9cac32",
"versionType": "git"
},
{
"status": "affected",
"version": "5c2b4b4f9fa5b765b927e361e3d310bcb5773015",
"versionType": "git"
},
{
"lessThan": "5.10",
"status": "affected",
"version": "5.9.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nft_payload.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.9.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nft_payload: fix mask build for partial field offload\n\nnft_payload_offload_mask() builds the offload match mask for a payload\nexpression that covers only part of a header field. For a partial IPv6\naddress match (field_len = 16, priv_len = 1) that shift is 1 \u003c\u003c 120, which\nis undefined on the 32-bit int operand. It also trims only one word, so\nthe remaining words stay 0xffffffff (and when priv_len is a multiple of 4\nthe trim is skipped entirely), leaving the mask covering more bytes than\nthe rule matches.\n\n UBSAN: shift-out-of-bounds in net/netfilter/nft_payload.c:278:20\n shift exponent 120 is too large for 32-bit type \u0027int\u0027\n ...\n\nThe match is byte-granular and struct nft_data is zero-initialised, so the\ncorrect mask is simply the first priv_len bytes set to 0xff. Set those\nbytes directly and drop the word/shift trimming; this removes the undefined\nshift and no longer over-masks the trailing bytes."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only when installing nftables rules via NETLINK_NETFILTER (NFT_MSG_NEWRULE) on NFT_CHAIN_HW_OFFLOAD netdev ingress chains; nft_flow_rule_create() calls nft_payload_offload_mask() during expr offload setup, which is a local netlink syscall path per kernel CNA guidance for nftables/netfilter.\nAC:L - An attacker with CAP_NET_ADMIN can deterministically craft a partial-field payload match (e.g., priv_len=1 on IPv6 saddr with field_len=16) on an HW-offload chain; no race, memory layout, or other conditions outside attacker control are required to hit the undefined shift and incorrect mask build.\nPR:L - All nf_tables netlink operations are gated by netlink_net_capable(skb, CAP_NET_ADMIN) in nfnetlink_rcv(), checked against the socket network namespace user_ns; unprivileged local users routinely obtain CAP_NET_ADMIN via user+network namespaces (unshare -Urn) on cloud hosts and containers.\nUI:N - No victim interaction is required; the attacker installs the malformed HW-offload nftables rule through their own netlink socket and triggers the bug during rule commit without needing another user to mount filesystems, open files, or take any action.\nS:U - Impact is confined to the host kernel and its hardware-offloaded netdev ingress filtering policy (incorrect TC flower masks, potential kernel crash); this is standard kernel/network-authority impact, not a VM escape, IOMMU bypass, or cross-security-boundary scope change.\nC:N - The bug corrupts on-stack bitmask construction during rule installation and does not perform out-of-bounds reads, use-after-free, or other memory-disclosure primitives; no attacker-influenced kernel memory read path exists beyond incorrect mask values.\nI:H - Incorrect or UB-corrupted HW flower match masks misprogram NIC ingress ACLs on hardware-offloaded edge firewalls, causing accept/drop/redirect actions to apply to traffic contrary to administrator intent; this is exploitable integrity compromise of enforced network policy on internet-facing offload deployments.\nA:H - The undefined shift (1\u003c\u003c120) triggers documented UBSAN shift-out-of-bounds at rule install and can panic/oops on UBSAN/trap kernels; misprogrammed HW offload masks can also blackhole or mis-drop production ingress traffic on netdev-offloaded chains, satisfying CNA high availability guidance."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:05.144Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3ee7b3f813b11f28cd6efdf7f24d64b5a7fd4dc7"
},
{
"url": "https://git.kernel.org/stable/c/8720df4504e0ed1781a702f65251bd47b3534d5e"
},
{
"url": "https://git.kernel.org/stable/c/363c3a84a946d53e5e121c9f47c7c2b7d228c46b"
},
{
"url": "https://git.kernel.org/stable/c/b19b5d2e042c294e2cc1c908dc598f9d64015396"
},
{
"url": "https://git.kernel.org/stable/c/a375d8ace807767f29f276b681b6324c74929b1d"
},
{
"url": "https://git.kernel.org/stable/c/16b553c46e347bc9de9946c4960654d5884a86de"
},
{
"url": "https://git.kernel.org/stable/c/630295d5bba1d0e0f494cc459452eb0a0058c545"
},
{
"url": "https://git.kernel.org/stable/c/39e88f28fb32bf02bd4b525c24c842c9cff5663d"
}
],
"title": "netfilter: nft_payload: fix mask build for partial field offload",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74579",
"datePublished": "2026-08-17T05:28:27.768Z",
"dateReserved": "2026-08-15T05:44:03.917Z",
"dateUpdated": "2026-10-16T19:05:57.728Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72323 (GCVE-0-2026-72323)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: igmp: Fix potential UAF in igmp_gq_start_timer()
A race condition exists between device teardown (inetdev_destroy) and
incoming IGMP query processing (igmp_rcv), leading to a Use-After-Free
in the IGMP timer callback.
During device destruction, inetdev_destroy() drops the primary reference
to in_device, which can drop its refcount to 0. The actual freeing of
in_device memory is deferred via RCU (using call_rcu()).
Concurrently, igmp_rcv() runs under RCU read lock and obtains the
in_device pointer. Because the memory is RCU-protected, CPU-0 can safely
dereference in_device even if its refcount has hit 0.
However, if CPU-0 calls igmp_gq_start_timer() and re-arms the timer, it
attempts to acquire a reference using in_dev_hold(). This increments the
refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning.
Since the in_device memory is still scheduled to be freed after the RCU
grace period (as the free callback does not check the refcount again),
the device is freed while the timer is still armed. When the timer
expires, it accesses the freed memory, causing a kernel panic.
Fix this by using refcount_inc_not_zero() (via a new helper
in_dev_hold_safe()) to prevent acquiring a reference if the device is
already being destroyed. If the refcount is 0, we do not arm the timer.
A similar issue in IPv6 MLD is fixed in a subsequent patch.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72323",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:46:57.962757Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:17.940Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/inetdevice.h",
"net/ipv4/igmp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7265c747eec415ca3109a6a14a419f7ae433b780",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d107b4c4f8274763b7ea5ab05d45cef78e4b81ba",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "74b301f7f197517016befb5f5dfab01f7bc64be5",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "40a1e998cb266ed4cb529a0bb4fee2b0ba732702",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "165258303357e54b75fc19b341ae2a2b7c9e3910",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "75e984fe0cb9e7fbde0c8ee838c61ce8573d3ea3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8d4394ffa40508e0de72f464af351f6ca6a6cdc3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7b19c0f81ed1fdaec6bc522569be367199a9edf3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/inetdevice.h",
"net/ipv4/igmp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: igmp: Fix potential UAF in igmp_gq_start_timer()\n\nA race condition exists between device teardown (inetdev_destroy) and\nincoming IGMP query processing (igmp_rcv), leading to a Use-After-Free\nin the IGMP timer callback.\n\nDuring device destruction, inetdev_destroy() drops the primary reference\nto in_device, which can drop its refcount to 0. The actual freeing of\nin_device memory is deferred via RCU (using call_rcu()).\n\nConcurrently, igmp_rcv() runs under RCU read lock and obtains the\nin_device pointer. Because the memory is RCU-protected, CPU-0 can safely\ndereference in_device even if its refcount has hit 0.\n\nHowever, if CPU-0 calls igmp_gq_start_timer() and re-arms the timer, it\nattempts to acquire a reference using in_dev_hold(). This increments the\nrefcount from 0 to 1, triggering a \"refcount_t: addition on 0\" warning.\nSince the in_device memory is still scheduled to be freed after the RCU\ngrace period (as the free callback does not check the refcount again),\nthe device is freed while the timer is still armed. When the timer\nexpires, it accesses the freed memory, causing a kernel panic.\n\nFix this by using refcount_inc_not_zero() (via a new helper\nin_dev_hold_safe()) to prevent acquiring a reference if the device is\nalready being destroyed. If the refcount is 0, we do not arm the timer.\n\nA similar issue in IPv6 MLD is fixed in a subsequent patch."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from igmp_rcv(), registered as the IPPROTO_IGMP handler and invoked via ip_rcv \u2192 ip_local_deliver \u2192 ip_protocol_deliver_rcu() on received IPv4 packets; per kernel guidance, net/ stack flaws triggered by inbound packets are scored Network even when practical reachability is typically same-subnet.\nAC:L - An attacker controls both race sides: flooding IGMP general membership queries while concurrently deleting/tearing down the target netdev (e.g., veth in a user/net namespace, container CNI teardown, or parallel RTNETLINK unregister), and can retry until the timer is re-armed after ip_mc_down() during inetdev_destroy().\nPR:N - IGMP query processing has no authentication or capability checks on the receive path; any host that can deliver IPPROTO_IGMP packets to the interface can trigger igmp_heard_query() \u2192 igmp_gq_start_timer(), and concurrent interface destruction is normal system/orchestrator activity rather than attacker privilege on the victim.\nUI:N - Exploitation requires only attacker-sent IGMP packets timed against interface teardown; no victim must open files, click links, mount filesystems, or take any deliberate action beyond routine network interface lifecycle events.\nS:U - The use-after-free corrupts kernel heap memory within the same host kernel security authority; it is a standard in-kernel memory corruption issue, not a VM escape, IOMMU bypass, or other cross-boundary scope change.\nC:H - This is a use-after-free of struct in_device: igmp_gq_timer_expire() dereferences freed memory and calls igmpv3_send_report(), enabling disclosure of reallocated slab contents and arbitrary kernel memory read primitives via heap grooming.\nI:H - The UAF arms mr_gq_timer on a freed in_device and the expiry handler writes through dangling pointers (mr_gq_running, igmpv3_send_report paths), providing attacker-influenced heap corruption that can be developed into arbitrary kernel write and privilege escalation.\nA:H - The fix commit states the timer callback accesses freed in_device memory and causes kernel panic; UAF on a timer-armed netdev structure is a reliable oops/panic and repeatable DoS, and can be retriggered by continued IGMP query flooding during interface churn."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-02T12:49:45.779Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7265c747eec415ca3109a6a14a419f7ae433b780"
},
{
"url": "https://git.kernel.org/stable/c/d107b4c4f8274763b7ea5ab05d45cef78e4b81ba"
},
{
"url": "https://git.kernel.org/stable/c/74b301f7f197517016befb5f5dfab01f7bc64be5"
},
{
"url": "https://git.kernel.org/stable/c/40a1e998cb266ed4cb529a0bb4fee2b0ba732702"
},
{
"url": "https://git.kernel.org/stable/c/165258303357e54b75fc19b341ae2a2b7c9e3910"
},
{
"url": "https://git.kernel.org/stable/c/75e984fe0cb9e7fbde0c8ee838c61ce8573d3ea3"
},
{
"url": "https://git.kernel.org/stable/c/8d4394ffa40508e0de72f464af351f6ca6a6cdc3"
},
{
"url": "https://git.kernel.org/stable/c/7b19c0f81ed1fdaec6bc522569be367199a9edf3"
}
],
"title": "ipv4: igmp: Fix potential UAF in igmp_gq_start_timer()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72323",
"datePublished": "2026-08-15T05:55:34.828Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-16T18:55:17.940Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89510 (GCVE-0-2026-89510)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/cxgb4: Cancel reg_work before freeing device on remove
c4iw_uld_state_change() queues reg_work to register the RDMA device.
c4iw_remove() can free ctx->dev while this work is pending or running,
leaving c4iw_register_device() accessing the freed device.
Cancel reg_work before removing the device. The registration work can
tear down ctx->dev when registration fails, so do not unregister or
deallocate it again in that case.
This issue was found by an in-house static analysis tool.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 Version: 1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89510",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:51.998964Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:40.437Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e6e79e7be87c5ea92728060a3d7fb56890a91e45",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "672ee1981db10569ec96030bddb322f18382ec04",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "4681e731db07769846901cfabdd3e53f765eb9d3",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "3265d558dfafab8f12f5fba06ebbf15cae9f3225",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "fe9c591026c576d8b1f72aab5e4cd67350530763",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "85f438382a865a4dc4c50e6b884310bb2b60fc4d",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "320e5258a53af0abc5abd9eb01519a48bab2dee8",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
},
{
"lessThan": "a7100601aa1a39f799a566acce10db20eaf4b7f2",
"status": "affected",
"version": "1c8f1da5d851b92aeb81dbbb9ebd516f6e2588f5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.15"
},
{
"lessThan": "4.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/cxgb4: Cancel reg_work before freeing device on remove\n\nc4iw_uld_state_change() queues reg_work to register the RDMA device.\nc4iw_remove() can free ctx-\u003edev while this work is pending or running,\nleaving c4iw_register_device() accessing the freed device.\n\nCancel reg_work before removing the device. The registration work can\ntear down ctx-\u003edev when registration fails, so do not unregister or\ndeallocate it again in that case.\n\nThis issue was found by an in-house static analysis tool."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached from c4iw_remove() on local Chelsio T4/T5/T6 RDMA teardown (iw_cxgb4 rmmod, PCI sysfs unbind/hot-remove, EEH reset, or ULD STATE_DOWN/DETACH/FATAL). reg_work is queued from local STATE_UP (cxgb_open/uld_attach), not from c4iw_uld_rx_handler packet processing.\nAC:L - An attacker queues c4iw_register_device via STATE_UP (first cxgb_open or iw_cxgb4 load) then immediately runs c4iw_remove via unbind/rmmod/EEH, controlling both sides of the missing cancel_work_sync race and retrying bind/unbind until the worker uses freed ctx-\u003edev; such UAFs score AC:L.\nPR:L - Per CNA driver-removal UAF precedent, an unprivileged local user on Chelsio iWARP/HPC hosts can spray the freed c4iw_dev/ib_device while privileged or automated teardown proceeds; init-namespace root is not required for the UAF itself.\nUI:N - No victim action such as mounting a filesystem or opening a file is required; the attacker queues reg_work and coordinates driver removal themselves, or piggybacks on routine PCI/module teardown.\nS:U - The use-after-free corrupts the host kernel c4iw_dev/ib_device heap object within the same security authority; it is not a VM escape, IOMMU/DMA isolation bypass, or sandbox breakout.\nC:H - After c4iw_dealloc()/ib_dealloc_device(), c4iw_register_device() still reads ctx-\u003edev (node_guid, ports, ibdev ops) from the freed ib_device; this kernel heap UAF enables arbitrary disclosure via slab reuse.\nI:H - The dangling worker writes ibdev fields, may call ib_register_device() on freed memory, and can double-free via c4iw_dealloc(); heap spraying the ib_device ops table yields write and control-flow hijack primitives.\nA:H - Use-after-free of c4iw_dev from workqueue context during remove causes a kernel oops or panic even when not fully exploited, so availability impact is High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:01.638Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e6e79e7be87c5ea92728060a3d7fb56890a91e45"
},
{
"url": "https://git.kernel.org/stable/c/672ee1981db10569ec96030bddb322f18382ec04"
},
{
"url": "https://git.kernel.org/stable/c/4681e731db07769846901cfabdd3e53f765eb9d3"
},
{
"url": "https://git.kernel.org/stable/c/3265d558dfafab8f12f5fba06ebbf15cae9f3225"
},
{
"url": "https://git.kernel.org/stable/c/fe9c591026c576d8b1f72aab5e4cd67350530763"
},
{
"url": "https://git.kernel.org/stable/c/85f438382a865a4dc4c50e6b884310bb2b60fc4d"
},
{
"url": "https://git.kernel.org/stable/c/320e5258a53af0abc5abd9eb01519a48bab2dee8"
},
{
"url": "https://git.kernel.org/stable/c/a7100601aa1a39f799a566acce10db20eaf4b7f2"
}
],
"title": "RDMA/cxgb4: Cancel reg_work before freeing device on remove",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89510",
"datePublished": "2026-09-11T19:43:55.989Z",
"dateReserved": "2026-09-11T19:38:34.716Z",
"dateUpdated": "2026-10-19T08:48:01.638Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92523 (GCVE-0-2026-92523)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/nldev: validate dynamic counter attribute length
RDMA_NLDEV_ATTR_STAT_HWCOUNTERS is a nested attribute whose children are
consumed directly with nla_get_u32(). The top-level policy validates only
the container, so it does not establish the fixed shape of each child.
Require every child payload to be exactly one u32 before reading it.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef Version: 3c3c1f1416392382faa0238e76a70d7810aab2ef |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/nldev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7828d68ae8cad3463e38def5c91668c84e722596",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
},
{
"lessThan": "f8e9315236c8b5155158c6955a758e7960b143e6",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
},
{
"lessThan": "d00b0d808ca706a04bd198827319a4a287eff82a",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
},
{
"lessThan": "0bfa897e3e1a61d172f95675b353168bc9290312",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
},
{
"lessThan": "c57e238b475e8e1e514499772b8c0db5768be93f",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
},
{
"lessThan": "74f49255492a62658f36bf2578d7916f1c6ffad1",
"status": "affected",
"version": "3c3c1f1416392382faa0238e76a70d7810aab2ef",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/nldev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.16"
},
{
"lessThan": "5.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/nldev: validate dynamic counter attribute length\n\nRDMA_NLDEV_ATTR_STAT_HWCOUNTERS is a nested attribute whose children are\nconsumed directly with nla_get_u32(). The top-level policy validates only\nthe container, so it does not establish the fixed shape of each child.\n\nRequire every child payload to be exactly one u32 before reading it."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:29.518Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7828d68ae8cad3463e38def5c91668c84e722596"
},
{
"url": "https://git.kernel.org/stable/c/f8e9315236c8b5155158c6955a758e7960b143e6"
},
{
"url": "https://git.kernel.org/stable/c/d00b0d808ca706a04bd198827319a4a287eff82a"
},
{
"url": "https://git.kernel.org/stable/c/0bfa897e3e1a61d172f95675b353168bc9290312"
},
{
"url": "https://git.kernel.org/stable/c/c57e238b475e8e1e514499772b8c0db5768be93f"
},
{
"url": "https://git.kernel.org/stable/c/74f49255492a62658f36bf2578d7916f1c6ffad1"
}
],
"title": "RDMA/nldev: validate dynamic counter attribute length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92523",
"datePublished": "2026-09-17T16:10:29.474Z",
"dateReserved": "2026-09-16T12:21:13.874Z",
"dateUpdated": "2026-10-19T09:04:29.518Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74317 (GCVE-0-2026-74317)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ixgbe: do not configure xps for XDP queues
netif_set_xps_queue() should not be called for an XDP Tx queue, since such
queues are not netdev-exposed. On systems with number of CPUs >=64, on E610
adapter, netdev is configured with maximum number queue pairs being 63
(due to MSI-X assignment), but configuring XDP results in 64 XDP queues.
So, during XDP program load, when netif_set_xps_queue() is called for the
last XDP queue, we get a WARNING with a call trace and KASAN report
afterwards (if enabled).
[ 2012.699800] WARNING: net/core/dev.c:2854 at __netif_set_xps_queue+0x116a/0x1e40, CPU#36: xdpsock/103668
[...]
[ 2012.700029] RIP: 0010:__netif_set_xps_queue+0x116a/0x1e40
[ 2012.700035] Code: b6 34 06 48 89 f8 83 e0 07 83 c0 01 40 38 f0 7c 09 40 84 f6 0f 85 03 0a 00 00 0f b7 44 24 40 66 43 89 44 6a 18 e9 01 fb ff ff <0f> 0b e9 f2 ee ff ff 44 8b 44 24 44 45 85 c0 74 50 4d 85 e4 0f 84
[ 2012.700040] RSP: 0018:ffff8882369aeb28 EFLAGS: 00010246
[ 2012.700046] RAX: 0000000000000000 RBX: 000000000000003f RCX: 0000000000000000
[ 2012.700050] RDX: 1ffff1111da3d891 RSI: ffff888120e34250 RDI: ffff8888ed1ec488
[ 2012.700054] RBP: ffff888913281560 R08: 0000000000000000 R09: ffff8888ed1ec000
[ 2012.700058] R10: ffff8888a2e83180 R11: 0000000000000000 R12: 0000000000007fa8
[ 2012.700061] R13: 000000000000003f R14: ffff888120e34854 R15: ffff8889132817c8
[ 2012.700065] FS: 00007fc8ea9ff740(0000) GS:ffff88884cefe000(0000) knlGS:0000000000000000
[ 2012.700069] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2012.700073] CR2: 00007f81c8000020 CR3: 00000002299f8006 CR4: 00000000007726f0
[ 2012.700077] PKRU: 55555554
[ 2012.700080] Call Trace:
[ 2012.700084] <TASK>
[ 2012.700087] ? ktime_get+0x61/0x150
[ 2012.700097] ? usleep_range_state+0x133/0x1b0
[ 2012.700108] ? __pfx_usleep_range_state+0x10/0x10
[ 2012.700114] netif_set_xps_queue+0x31/0x50
[ 2012.700119] ixgbe_configure_tx_ring+0x472/0x920 [ixgbe]
[...]
[ 2012.700486] ixgbe_xdp+0x38f/0x750 [ixgbe]
[...]
[ 2012.701094] BUG: KASAN: slab-out-of-bounds in __netif_set_xps_queue+0x1ac5/0x1e40
[ 2012.701100] Write of size 4 at addr ffff88888d43cff8 by task xdpsock/103668
Skip XPS configuration for XDP Tx queues.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74317",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:53:18.226836Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:32.766Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ixgbe/ixgbe_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ec485257ccbc787bcde0271d6f649c9018ffb363",
"status": "affected",
"version": "33fdc82f08835de4c39a00657742f5b11db00d32",
"versionType": "git"
},
{
"lessThan": "706e811380909a709332136001fe31f37575ef53",
"status": "affected",
"version": "33fdc82f08835de4c39a00657742f5b11db00d32",
"versionType": "git"
},
{
"lessThan": "f488b83a38103e8eea442cd8fa1a10f982bd60af",
"status": "affected",
"version": "33fdc82f08835de4c39a00657742f5b11db00d32",
"versionType": "git"
},
{
"lessThan": "a2a224f5e344ccb1ec3693a0735822db9214e2ca",
"status": "affected",
"version": "33fdc82f08835de4c39a00657742f5b11db00d32",
"versionType": "git"
},
{
"lessThan": "7bd4355272de34c2e90e34b72c5613736d03c32b",
"status": "affected",
"version": "33fdc82f08835de4c39a00657742f5b11db00d32",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ixgbe/ixgbe_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nixgbe: do not configure xps for XDP queues\n\nnetif_set_xps_queue() should not be called for an XDP Tx queue, since such\nqueues are not netdev-exposed. On systems with number of CPUs \u003e=64, on E610\nadapter, netdev is configured with maximum number queue pairs being 63\n(due to MSI-X assignment), but configuring XDP results in 64 XDP queues.\n\nSo, during XDP program load, when netif_set_xps_queue() is called for the\nlast XDP queue, we get a WARNING with a call trace and KASAN report\nafterwards (if enabled).\n\n[ 2012.699800] WARNING: net/core/dev.c:2854 at __netif_set_xps_queue+0x116a/0x1e40, CPU#36: xdpsock/103668\n[...]\n[ 2012.700029] RIP: 0010:__netif_set_xps_queue+0x116a/0x1e40\n[ 2012.700035] Code: b6 34 06 48 89 f8 83 e0 07 83 c0 01 40 38 f0 7c 09 40 84 f6 0f 85 03 0a 00 00 0f b7 44 24 40 66 43 89 44 6a 18 e9 01 fb ff ff \u003c0f\u003e 0b e9 f2 ee ff ff 44 8b 44 24 44 45 85 c0 74 50 4d 85 e4 0f 84\n[ 2012.700040] RSP: 0018:ffff8882369aeb28 EFLAGS: 00010246\n[ 2012.700046] RAX: 0000000000000000 RBX: 000000000000003f RCX: 0000000000000000\n[ 2012.700050] RDX: 1ffff1111da3d891 RSI: ffff888120e34250 RDI: ffff8888ed1ec488\n[ 2012.700054] RBP: ffff888913281560 R08: 0000000000000000 R09: ffff8888ed1ec000\n[ 2012.700058] R10: ffff8888a2e83180 R11: 0000000000000000 R12: 0000000000007fa8\n[ 2012.700061] R13: 000000000000003f R14: ffff888120e34854 R15: ffff8889132817c8\n[ 2012.700065] FS: 00007fc8ea9ff740(0000) GS:ffff88884cefe000(0000) knlGS:0000000000000000\n[ 2012.700069] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 2012.700073] CR2: 00007f81c8000020 CR3: 00000002299f8006 CR4: 00000000007726f0\n[ 2012.700077] PKRU: 55555554\n[ 2012.700080] Call Trace:\n[ 2012.700084] \u003cTASK\u003e\n[ 2012.700087] ? ktime_get+0x61/0x150\n[ 2012.700097] ? usleep_range_state+0x133/0x1b0\n[ 2012.700108] ? __pfx_usleep_range_state+0x10/0x10\n[ 2012.700114] netif_set_xps_queue+0x31/0x50\n[ 2012.700119] ixgbe_configure_tx_ring+0x472/0x920 [ixgbe]\n[...]\n[ 2012.700486] ixgbe_xdp+0x38f/0x750 [ixgbe]\n\n[...]\n\n[ 2012.701094] BUG: KASAN: slab-out-of-bounds in __netif_set_xps_queue+0x1ac5/0x1e40\n[ 2012.701100] Write of size 4 at addr ffff88888d43cff8 by task xdpsock/103668\n\nSkip XPS configuration for XDP Tx queues."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local kernel interfaces (bpf syscall/RTNETLINK IFLA_XDP_FD or AF_XDP setup) that attach an XDP program to an ixgbe netdev, calling ixgbe_xdp_setup() -\u003e ixgbe_configure_tx_ring() -\u003e netif_set_xps_queue(); it is not triggered by remote network packets.\nAC:L - On ixgbe with 64+ CPUs, loading any XDP program deterministically configures all XDP Tx rings including queue_index 63 while netdev-\u003enum_tx_queues stays 63, reliably triggering the out-of-bounds write in __netif_set_xps_queue() without races or attacker-uncontrollable timing.\nPR:L - Reaching ixgbe_xdp()/ndo_bpf requires CAP_NET_ADMIN to load/attach BPF_PROG_TYPE_XDP via bpf() or rtnl_setlink; per kernel CNA guidance CAP_NET_ADMIN is scored as Low because it is obtainable by unprivileged users inside a user/network namespace (unshare -Urn).\nUI:N - Exploitation requires only the attacker to load an XDP program on the ixgbe interface; no victim user action such as opening files, clicking links, or mounting filesystems is needed.\nS:U - The out-of-bounds write corrupts kernel netdev/XPS metadata in the same kernel security domain as the attacker; it does not cross VM, container, or IOMMU boundaries to impact a separate authority.\nC:H - KASAN reports a slab out-of-bounds 4-byte write in __netif_set_xps_queue() via netdev_get_tx_queue(dev, index) when index equals num_tx_queues; kernel heap corruption can be leveraged for further memory disclosure even though the immediate fault is a write.\nI:H - The vulnerability is an out-of-bounds write past the netdev-\u003e_tx[] array (writing netdev_queue-\u003enuma_node), constituting kernel memory corruption that can potentially be developed into arbitrary write or control-flow hijack primitives.\nA:H - Triggering the bug emits a kernel WARNING and KASAN slab-out-of-bounds report during XDP program load; the corrupting write can panic/oops the system or destabilize the ixgbe driver on production kernels without KASAN."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:20.279Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ec485257ccbc787bcde0271d6f649c9018ffb363"
},
{
"url": "https://git.kernel.org/stable/c/706e811380909a709332136001fe31f37575ef53"
},
{
"url": "https://git.kernel.org/stable/c/f488b83a38103e8eea442cd8fa1a10f982bd60af"
},
{
"url": "https://git.kernel.org/stable/c/a2a224f5e344ccb1ec3693a0735822db9214e2ca"
},
{
"url": "https://git.kernel.org/stable/c/7bd4355272de34c2e90e34b72c5613736d03c32b"
}
],
"title": "ixgbe: do not configure xps for XDP queues",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74317",
"datePublished": "2026-08-15T05:58:14.832Z",
"dateReserved": "2026-08-15T05:44:03.884Z",
"dateUpdated": "2026-10-21T12:45:20.279Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74564 (GCVE-0-2026-74564)
Vulnerability from cvelistv5
Published
2026-08-15 12:28
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_hashlimit: validate hashtable supports XT_HASHLIMIT_RATE_MATCH
The XT_HASHLIMIT_RATE_MATCH flag mode changes the semantics of the
dsthash_ent structure which represents an entry in the hashtable. There
is a union area which uses a different layout to express the rate match
mode.
Update .checkentry path to validate the XT_HASHLIMIT_RATE_MATCH mode
flag is requested by two or more different rules that refer to the same
hashtable. Otherwise, uninitialized access to the burst field in the
union is possible.
Reject the use of the XT_HASHLIMIT_RATE_MATCH mode flag if set on by
revision less than 3 too.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 Version: bea74641e3786d51dcf1175527cc1781420961c9 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74564",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:00:14.735165Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:56.067Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_hashlimit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "402befce5854c195058cf4bab7c78ca286068a26",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "dee686b5e7f21180538ff719867702f411c8eb5c",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "f76ab783e7d8d33e33dd7dfa697297f70d57b0e8",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "24683fea1f06bd3bd2707b99460e859bc6464c22",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "32ec8d4aba2cf22e12bdc28df8c4bd833c195fc0",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "d186f77d18bdfb252d401ff992ca3001a6a65a0f",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "06a76334243ccd875a981aa8bb46c0f931ef1e3b",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
},
{
"lessThan": "305b63e1402267459fdabb183af4527f6799eebf",
"status": "affected",
"version": "bea74641e3786d51dcf1175527cc1781420961c9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_hashlimit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_hashlimit: validate hashtable supports XT_HASHLIMIT_RATE_MATCH\n\nThe XT_HASHLIMIT_RATE_MATCH flag mode changes the semantics of the\ndsthash_ent structure which represents an entry in the hashtable. There\nis a union area which uses a different layout to express the rate match\nmode.\n\nUpdate .checkentry path to validate the XT_HASHLIMIT_RATE_MATCH mode\nflag is requested by two or more different rules that refer to the same\nhashtable. Otherwise, uninitialized access to the burst field in the\nunion is possible.\n\nReject the use of the XT_HASHLIMIT_RATE_MATCH mode flag if set on by\nrevision less than 3 too."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires installing conflicting xt_hashlimit iptables rules via the IPT_SO_SET_REPLACE netlink path (CAP_NET_ADMIN), which is local netfilter configuration per kernel CVSS guidance; the uninitialized burst read occurs later during packet matching in hashlimit_mt_common().\nAC:L - An attacker with CAP_NET_ADMIN can deterministically install two rules sharing one hashtable name\u2014one standard hashlimit and one with XT_HASHLIMIT_RATE_MATCH\u2014so the first packet evaluated by both rules triggers uninitialized burst access without races or external timing.\nPR:L - Installing iptables hashlimit rules requires CAP_NET_ADMIN, which unprivileged users can obtain in their own network namespace via user namespaces (unshare -Urn) on common Linux distributions, containers, and Kubernetes workloads with NET_ADMIN capability.\nUI:N - No victim interaction is required; once the conflicting hashlimit rules are installed, the attacker fully controls exploitation by sending network packets that traverse the affected iptables hooks (INPUT, FORWARD, PREROUTING).\nS:U - Impact is confined to kernel netfilter hashlimit state and packet-filtering decisions within the target network namespace; it does not cross a VM, container-to-host, or IOMMU security boundary.\nC:H - The rate-match path reads an uninitialized burst field from kmem_cache-allocated dsthash_ent entries whose standard-mode initialization only writes the first 24 bytes of the rateinfo union, exposing stale kernel slab heap contents.\nI:H - Cross-mode union aliasing causes rate-match logic to read uninitialized burst and write current_rate/prev_window over credit/credit_cap/cost fields, corrupting shared hashtable entries and enabling arbitrary firewall match verdict manipulation (type confusion).\nA:N - The vulnerability causes uninitialized memory reads and union field corruption affecting match results, but does not trigger kernel oops, panic, hang, or host-level denial of service; impact is incorrect packet classification rather than system crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:39:04.869Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/402befce5854c195058cf4bab7c78ca286068a26"
},
{
"url": "https://git.kernel.org/stable/c/dee686b5e7f21180538ff719867702f411c8eb5c"
},
{
"url": "https://git.kernel.org/stable/c/f76ab783e7d8d33e33dd7dfa697297f70d57b0e8"
},
{
"url": "https://git.kernel.org/stable/c/24683fea1f06bd3bd2707b99460e859bc6464c22"
},
{
"url": "https://git.kernel.org/stable/c/32ec8d4aba2cf22e12bdc28df8c4bd833c195fc0"
},
{
"url": "https://git.kernel.org/stable/c/d186f77d18bdfb252d401ff992ca3001a6a65a0f"
},
{
"url": "https://git.kernel.org/stable/c/06a76334243ccd875a981aa8bb46c0f931ef1e3b"
},
{
"url": "https://git.kernel.org/stable/c/305b63e1402267459fdabb183af4527f6799eebf"
}
],
"title": "netfilter: xt_hashlimit: validate hashtable supports XT_HASHLIMIT_RATE_MATCH",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74564",
"datePublished": "2026-08-15T12:28:06.392Z",
"dateReserved": "2026-08-15T05:44:03.916Z",
"dateUpdated": "2026-10-16T19:05:56.067Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90149 (GCVE-0-2026-90149)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers
flexfiles accepts NFSv4.0 data servers, but two NFSv4 code paths assume
the data server client has a session. Unlike NFSv4.1+, an NFSv4.0 client
has no session (clp->cl_session is NULL; it uses clp->cl_slot_tbl), so
I/O to a v4.0 flexfiles DS oopses:
- nfs4_init_ds_session() dereferences clp->cl_session->session_state
while seeding the DS lease. It also only seeds cl_lease_time when
NFS4_SESSION_INITING is set; without a session that never happens, so
cl_lease_time stays 0 and nfs4_renew_state() busy-loops, requeuing
every 5 seconds. Seed the lease whenever there is no session and
return before touching session state.
- ff_layout_async_handle_error_v4() dereferences
clp->cl_session->fc_slot_table on every DS I/O error. Fall back to the
v4.0 transport slot table (clp->cl_slot_tbl) when there is no session.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfs/flexfilelayout/flexfilelayout.c",
"fs/nfs/nfs4session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "336b6da10021c69a8f273bbacdf7432fdc89a06f",
"status": "affected",
"version": "a7878ca140084ec267ede48fce64d7e60f6d873e",
"versionType": "git"
},
{
"lessThan": "5527af72b0100c94287bfec901b6313eeac567ca",
"status": "affected",
"version": "a7878ca140084ec267ede48fce64d7e60f6d873e",
"versionType": "git"
},
{
"lessThan": "163c16e01f53fc8eb8d0f3484ae6c382265ecbbd",
"status": "affected",
"version": "a7878ca140084ec267ede48fce64d7e60f6d873e",
"versionType": "git"
},
{
"lessThan": "436a214514e24103159aea455147d58b44a8a585",
"status": "affected",
"version": "a7878ca140084ec267ede48fce64d7e60f6d873e",
"versionType": "git"
},
{
"lessThan": "2b03ebbf8d5e8f6af4ecd6c65375232dd1ec32cc",
"status": "affected",
"version": "a7878ca140084ec267ede48fce64d7e60f6d873e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfs/flexfilelayout/flexfilelayout.c",
"fs/nfs/nfs4session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers\n\nflexfiles accepts NFSv4.0 data servers, but two NFSv4 code paths assume\nthe data server client has a session. Unlike NFSv4.1+, an NFSv4.0 client\nhas no session (clp-\u003ecl_session is NULL; it uses clp-\u003ecl_slot_tbl), so\nI/O to a v4.0 flexfiles DS oopses:\n\n - nfs4_init_ds_session() dereferences clp-\u003ecl_session-\u003esession_state\n while seeding the DS lease. It also only seeds cl_lease_time when\n NFS4_SESSION_INITING is set; without a session that never happens, so\n cl_lease_time stays 0 and nfs4_renew_state() busy-loops, requeuing\n every 5 seconds. Seed the lease whenever there is no session and\n return before touching session state.\n\n - ff_layout_async_handle_error_v4() dereferences\n clp-\u003ecl_session-\u003efc_slot_table on every DS I/O error. Fall back to the\n v4.0 transport slot table (clp-\u003ecl_slot_tbl) when there is no session."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A malicious NFSv4.1 MDS sets version=4 and minor_version=0 in the flexfiles GETDEVICEINFO device-addr body; nfs4_ff_alloc_deviceid_node() accepts that pair, nfs4_set_ds_client() builds a session-less v4.0 nfs_client, and nfs4_init_ds_session() then crashes on DS connect. GETDEVICEINFO is NFS/RPC over TCP.\nAC:L - nfs4_ff_alloc_deviceid_node() explicitly allows an NFSv4.0 DS (version==4 \u0026\u0026 minor_version\u003c3). The MDS sets those two GETDEVICEINFO XDR words, and the next read/write that reaches nfs4_ff_layout_prepare_ds() \u2192 nfs4_init_ds_session() dereferences the NULL cl_session with no race.\nPR:N - The attacker is the remote MDS (or an on-path injector of GETDEVICEINFO replies) and needs no account or capability on the victim client; the client authenticates to the server, not the reverse.\nUI:N - On an already-mounted pNFS flexfiles share, ordinary file I/O drives LAYOUTGET then GETDEVICEINFO; the MDS can return a v4.0 DS in that GETDEVICEINFO and nfs4_init_ds_session() oopses with no further victim action such as mounting a new image.\nS:U - The NULL dereference oopses the NFS client kernel itself and does not cross a VM, IOMMU, or other security-authority boundary.\nC:N - nfs4_init_ds_session() loads clp-\u003ecl_session-\u003esession_state when cl_session is NULL, a pure NULL-pointer fault at a low offset of struct nfs4_session, with no out-of-bounds read or other disclosure.\nI:N - The same NULL load of cl_session (and cl_session-\u003efc_slot_table in ff_layout_async_handle_error_v4) faults before any store; this is not a UAF, overflow, or type confusion that could yield a write primitive.\nA:H - Dereferencing the NULL cl_session in nfs4_init_ds_session() on DS connect, or cl_session-\u003efc_slot_table in ff_layout_async_handle_error_v4 on a DS I/O error, produces a kernel oops that takes down the client."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:06.603Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/336b6da10021c69a8f273bbacdf7432fdc89a06f"
},
{
"url": "https://git.kernel.org/stable/c/5527af72b0100c94287bfec901b6313eeac567ca"
},
{
"url": "https://git.kernel.org/stable/c/163c16e01f53fc8eb8d0f3484ae6c382265ecbbd"
},
{
"url": "https://git.kernel.org/stable/c/436a214514e24103159aea455147d58b44a8a585"
},
{
"url": "https://git.kernel.org/stable/c/2b03ebbf8d5e8f6af4ecd6c65375232dd1ec32cc"
}
],
"title": "NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90149",
"datePublished": "2026-09-17T16:06:43.671Z",
"dateReserved": "2026-09-11T19:38:34.789Z",
"dateUpdated": "2026-10-21T12:50:06.603Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64580 (GCVE-0-2026-64580)
Vulnerability from cvelistv5
Published
2026-08-05 08:09
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst()
On the error path where in6_dev_get(dev) returns NULL, xfrm6_fill_dst()
releases the device reference with netdev_put() but leaves
xdst->u.dst.dev set. dst_destroy() later calls netdev_put(dst->dev)
again, so the same net_device reference is released twice, underflowing
its refcount (ref_tracker WARNING + "unregister_netdevice: waiting for
<dev> to become free").
Clear xdst->u.dst.dev after the netdev_put(), the same way the XFRM
device-offload paths xfrm_dev_state_add() and xfrm_dev_policy_add() in
net/xfrm/xfrm_device.c NULL ->dev when releasing the reference on error.
ref_tracker: reference already released.
ref_tracker: allocated in:
xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:86)
...
udpv6_sendmsg (net/ipv6/udp.c:1696)
...
ref_tracker: freed in:
xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:90)
...
WARNING: lib/ref_tracker.c:322 at ref_tracker_free+0x58b/0x780
dst_destroy (net/core/dst.c:115)
rcu_core
handle_softirqs
...
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: 84c4a9dfbf430861e7588d95ae3ff61535dca351 Version: a7e22d0c0e81dde129a51ee413644124f4b59954 Version: 01b0d887f67a388fb2a658ee2bdd74e5ba146818 Version: a98124aac0b5adc5de8ae54f11322781cb4d85c3 Version: e27b7bee743d921f037b1da6f071237345bef7c1 Version: 3.0.79 ≤ Version: 3.2.46 ≤ Version: 3.4.46 ≤ Version: 3.9.3 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64580",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:14.319059Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-415",
"description": "CWE-415 Double Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:42.908Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/xfrm6_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "97e032e5733e49471fb73de117ea2ac1ac7c479a",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"lessThan": "df6856c2dda9187601d29b5fbd7a81b3b178cedf",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"lessThan": "43de8a49335e611adb271bbd52e84dfbc11fc185",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"lessThan": "ff636d7b7cba6dea82ecf580415ea57f2c1a11b6",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"lessThan": "e078da1b4e11390cff3201c19a9a1fe70c5b934f",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"lessThan": "136992de9bb91871084ae52d172610541c76e4d2",
"status": "affected",
"version": "84c4a9dfbf430861e7588d95ae3ff61535dca351",
"versionType": "git"
},
{
"status": "affected",
"version": "a7e22d0c0e81dde129a51ee413644124f4b59954",
"versionType": "git"
},
{
"status": "affected",
"version": "01b0d887f67a388fb2a658ee2bdd74e5ba146818",
"versionType": "git"
},
{
"status": "affected",
"version": "a98124aac0b5adc5de8ae54f11322781cb4d85c3",
"versionType": "git"
},
{
"status": "affected",
"version": "e27b7bee743d921f037b1da6f071237345bef7c1",
"versionType": "git"
},
{
"lessThan": "3.1",
"status": "affected",
"version": "3.0.79",
"versionType": "semver"
},
{
"lessThan": "3.3",
"status": "affected",
"version": "3.2.46",
"versionType": "semver"
},
{
"lessThan": "3.5",
"status": "affected",
"version": "3.4.46",
"versionType": "semver"
},
{
"lessThan": "3.10",
"status": "affected",
"version": "3.9.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/xfrm6_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.0.79",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2.46",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.4.46",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.9.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst()\n\nOn the error path where in6_dev_get(dev) returns NULL, xfrm6_fill_dst()\nreleases the device reference with netdev_put() but leaves\nxdst-\u003eu.dst.dev set. dst_destroy() later calls netdev_put(dst-\u003edev)\nagain, so the same net_device reference is released twice, underflowing\nits refcount (ref_tracker WARNING + \"unregister_netdevice: waiting for\n\u003cdev\u003e to become free\").\n\nClear xdst-\u003eu.dst.dev after the netdev_put(), the same way the XFRM\ndevice-offload paths xfrm_dev_state_add() and xfrm_dev_policy_add() in\nnet/xfrm/xfrm_device.c NULL -\u003edev when releasing the reference on error.\n\n ref_tracker: reference already released.\n ref_tracker: allocated in:\n xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:86)\n ...\n udpv6_sendmsg (net/ipv6/udp.c:1696)\n ...\n ref_tracker: freed in:\n xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:90)\n ...\n WARNING: lib/ref_tracker.c:322 at ref_tracker_free+0x58b/0x780\n dst_destroy (net/core/dst.c:115)\n rcu_core\n handle_softirqs\n ..."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached on the local IPv6 outbound path (udpv6_sendmsg \u2192 xfrm_lookup \u2192 xfrm6_fill_dst) after configuring XFRM policy/state via netlink or IPV6_XFRM_POLICY; a remote peer cannot drive that configuration or the device state that makes in6_dev_get fail.\nAC:L - An attacker in their own netns can create interfaces, install IPv6 XFRM policy/state, generate matching UDP traffic, and concurrently drop MTU below IPV6_MIN_MTU or unregister the device to clear ip6_ptr, so they control both sides of the window that hits the error path; once entered, the double netdev_put is deterministic.\nPR:L - XFRM configuration requires CAP_NET_ADMIN via netlink_net_capable/sockopt_ns_capable, which is ns_capable() in the netns user_ns, so an unprivileged user obtains it with unshare -Urn rather than real init-namespace root.\nUI:N - No victim action is required; the attacker configures XFRM, manipulates their own netdevs, and sends packets entirely with their own processes.\nS:U - The impact is kernel net_device refcount corruption within the same host kernel authority; this is ordinary local privilege-escalation/DoS territory, not a VM escape or IOMMU/sandbox boundary cross.\nC:H - The leftover dst.dev causes a second netdev_put in dst_destroy, underflowing the net_device refcount and enabling use-after-free of the device object, which per kernel UAF guidance yields a high confidentiality/info-disclosure primitive.\nI:H - A net_device refcount underflow/UAF is heap memory corruption that can be shaped via reuse/spraying into arbitrary write or control-flow hijack, so integrity impact is high.\nA:H - Even without full exploitation, the double put triggers ref_tracker warnings and can oops/panic or hang device unregister (unregister_netdevice waiting for the device to become free), so availability impact is high."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:29:07.038Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/97e032e5733e49471fb73de117ea2ac1ac7c479a"
},
{
"url": "https://git.kernel.org/stable/c/df6856c2dda9187601d29b5fbd7a81b3b178cedf"
},
{
"url": "https://git.kernel.org/stable/c/43de8a49335e611adb271bbd52e84dfbc11fc185"
},
{
"url": "https://git.kernel.org/stable/c/ff636d7b7cba6dea82ecf580415ea57f2c1a11b6"
},
{
"url": "https://git.kernel.org/stable/c/e078da1b4e11390cff3201c19a9a1fe70c5b934f"
},
{
"url": "https://git.kernel.org/stable/c/136992de9bb91871084ae52d172610541c76e4d2"
}
],
"title": "xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64580",
"datePublished": "2026-08-05T08:09:34.946Z",
"dateReserved": "2026-07-19T15:36:31.798Z",
"dateUpdated": "2026-10-19T20:48:42.908Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64038 (GCVE-0-2026-64038)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-10-21 12:42
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (lm90) Stop work before releasing hwmon device
Sashiko reports:
In lm90_probe(), the devm action to cancel the alert_work and report_work
(lm90_restore_conf) is registered in lm90_init_client() before
devm_hwmon_device_register_with_info() is called.
Because devm executes cleanup actions in reverse order during module
unbind or probe failure, the hwmon device is unregistered and freed first.
If lm90_alert_work() or lm90_report_alarms() runs in the window between
the hwmon device being freed and the delayed works being cancelled,
lm90_update_alarms() will dereference the freed data->hwmon_dev here.
Fix the problem by canceling the workers separately after registering
the hwmon device and before registering the interrupt handler. This ensures
that the workers are canceled after interrupts are disabled and before
the hwmon device is released. Add "shutdown" flag to indicate that device
shutdown is in progress to prevent workers from being re-armed.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/lm90.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1fe96176636cb17906680c098688b144bd9c1c45",
"status": "affected",
"version": "f6d0775119fb905fb02eafa98d575cf8ee792d46",
"versionType": "git"
},
{
"lessThan": "5c116abf208dd97c4ceb76c5c50c9bc34a017796",
"status": "affected",
"version": "f6d0775119fb905fb02eafa98d575cf8ee792d46",
"versionType": "git"
},
{
"lessThan": "c98107817b0f6cdf51adc5e84e75c39ee25d8b28",
"status": "affected",
"version": "f6d0775119fb905fb02eafa98d575cf8ee792d46",
"versionType": "git"
},
{
"lessThan": "479e297526aeb19c745eac5c1897f455f83dc5f8",
"status": "affected",
"version": "f6d0775119fb905fb02eafa98d575cf8ee792d46",
"versionType": "git"
},
{
"lessThan": "b09a45601094c7f4ec4db8090b825fa61e169d93",
"status": "affected",
"version": "f6d0775119fb905fb02eafa98d575cf8ee792d46",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/lm90.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (lm90) Stop work before releasing hwmon device\n\nSashiko reports:\n\nIn lm90_probe(), the devm action to cancel the alert_work and report_work\n(lm90_restore_conf) is registered in lm90_init_client() before\ndevm_hwmon_device_register_with_info() is called.\n\nBecause devm executes cleanup actions in reverse order during module\nunbind or probe failure, the hwmon device is unregistered and freed first.\n\nIf lm90_alert_work() or lm90_report_alarms() runs in the window between\nthe hwmon device being freed and the delayed works being cancelled,\nlm90_update_alarms() will dereference the freed data-\u003ehwmon_dev here.\n\nFix the problem by canceling the workers separately after registering\nthe hwmon device and before registering the interrupt handler. This ensures\nthat the workers are canceled after interrupts are disabled and before\nthe hwmon device is released. Add \"shutdown\" flag to indicate that device\nshutdown is in progress to prevent workers from being re-armed."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:42:58.074Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1fe96176636cb17906680c098688b144bd9c1c45"
},
{
"url": "https://git.kernel.org/stable/c/5c116abf208dd97c4ceb76c5c50c9bc34a017796"
},
{
"url": "https://git.kernel.org/stable/c/c98107817b0f6cdf51adc5e84e75c39ee25d8b28"
},
{
"url": "https://git.kernel.org/stable/c/479e297526aeb19c745eac5c1897f455f83dc5f8"
},
{
"url": "https://git.kernel.org/stable/c/b09a45601094c7f4ec4db8090b825fa61e169d93"
}
],
"title": "hwmon: (lm90) Stop work before releasing hwmon device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64038",
"datePublished": "2026-07-19T15:39:26.071Z",
"dateReserved": "2026-07-19T07:54:57.028Z",
"dateUpdated": "2026-10-21T12:42:58.074Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93107 (GCVE-0-2026-93107)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Avoid reprocessing the current packet after the QP enters the error state
When do_complete() finds the QP in the error state it returns
RESPST_CHK_RESOURCE. Before commit 49dc9c1f0c7e ("RDMA/rxe: Cleanup
reset state handling in rxe_resp.c") this was the flush loop:
check_resource() had an error-state branch that fetched each remaining
recv WQE and completed it with IB_WC_WR_FLUSH_ERR, without touching
the current packet. That commit removed the error-state branch from
check_resource() (draining is now done at rxe_receiver() entry) but
kept the do_complete() error-state return.
As a result, when a QP moves to the error state while a packet is
being completed - e.g. an rdma_cm disconnect racing with receive
processing - the responder state machine loops back into the request
processing chain with the already-completed packet still in hand:
check_resource() fetches a fresh recv WQE, execute()/send_data_in()
copies the same packet payload again, do_complete() posts another
IB_WC_SUCCESS CQE (qp->resp.status is still 0), and control returns
to the error-state check. The loop re-executes the same packet once
per posted recv WQE (observed: ~1000 duplicate IB_WC_SUCCESS
completions of one SEND, one per ~8us, matching the RQ occupancy)
until the RQ is exhausted, after which qp->resp.wqe is NULL and
send_data_in() dereferences it:
BUG: kernel NULL pointer dereference, address: 0000000000000014
Workqueue: rxe_wq do_work
RIP: copy_data+0x29/0x1f0
Call Trace:
send_data_in+0x25/0x50
rxe_receiver+0xf36/0x1dd0
The duplicate completions are indistinguishable from real receives to
the ULP. During an rds stress test, the message was accepted as new and
delivered the same datagram to user space hundreds of times, corrupting
the stream; any ULP that relies on RC exactly-once delivery is affected.
A live packet reaching the error-state check in do_complete() has
been executed and completed exactly once and must be consumed, not
re-processed. Return RESPST_CLEANUP for it (dequeue and free); keep
returning RESPST_CHK_RESOURCE for the pkt == NULL case.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c319b986a88cedf600c4497cd7814a891b2f9e7c",
"status": "affected",
"version": "49dc9c1f0c7e396654a31a480328fffd902fa494",
"versionType": "git"
},
{
"lessThan": "62a4b48767e06fdd64548450fae2b1ffc6ff5d69",
"status": "affected",
"version": "49dc9c1f0c7e396654a31a480328fffd902fa494",
"versionType": "git"
},
{
"lessThan": "399713f1f0eac641351c8ceaec0ab8244ddcf78c",
"status": "affected",
"version": "49dc9c1f0c7e396654a31a480328fffd902fa494",
"versionType": "git"
},
{
"lessThan": "0d37e2503efd1069a74be740eadf63ea17c96810",
"status": "affected",
"version": "49dc9c1f0c7e396654a31a480328fffd902fa494",
"versionType": "git"
},
{
"lessThan": "15ae32c4a3551c4c9da457370bdfdd65d171e512",
"status": "affected",
"version": "49dc9c1f0c7e396654a31a480328fffd902fa494",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.4"
},
{
"lessThan": "6.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Avoid reprocessing the current packet after the QP enters the error state\n\nWhen do_complete() finds the QP in the error state it returns\nRESPST_CHK_RESOURCE. Before commit 49dc9c1f0c7e (\"RDMA/rxe: Cleanup\nreset state handling in rxe_resp.c\") this was the flush loop:\ncheck_resource() had an error-state branch that fetched each remaining\nrecv WQE and completed it with IB_WC_WR_FLUSH_ERR, without touching\nthe current packet. That commit removed the error-state branch from\ncheck_resource() (draining is now done at rxe_receiver() entry) but\nkept the do_complete() error-state return.\n\nAs a result, when a QP moves to the error state while a packet is\nbeing completed - e.g. an rdma_cm disconnect racing with receive\nprocessing - the responder state machine loops back into the request\nprocessing chain with the already-completed packet still in hand:\ncheck_resource() fetches a fresh recv WQE, execute()/send_data_in()\ncopies the same packet payload again, do_complete() posts another\nIB_WC_SUCCESS CQE (qp-\u003eresp.status is still 0), and control returns\nto the error-state check. The loop re-executes the same packet once\nper posted recv WQE (observed: ~1000 duplicate IB_WC_SUCCESS\ncompletions of one SEND, one per ~8us, matching the RQ occupancy)\nuntil the RQ is exhausted, after which qp-\u003eresp.wqe is NULL and\nsend_data_in() dereferences it:\n\n BUG: kernel NULL pointer dereference, address: 0000000000000014\n Workqueue: rxe_wq do_work\n RIP: copy_data+0x29/0x1f0\n Call Trace:\n send_data_in+0x25/0x50\n rxe_receiver+0xf36/0x1dd0\n\nThe duplicate completions are indistinguishable from real receives to\nthe ULP. During an rds stress test, the message was accepted as new and\ndelivered the same datagram to user space hundreds of times, corrupting\nthe stream; any ULP that relies on RC exactly-once delivery is affected.\n\nA live packet reaching the error-state check in do_complete() has\nbeen executed and completed exactly once and must be consumed, not\nre-processed. Return RESPST_CLEANUP for it (dequeue and free); keep\nreturning RESPST_CHK_RESOURCE for the pkt == NULL case."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The reprocessed bytes are a RoCEv2 RC SEND (IB_OPCODE_RC_SEND_ONLY/LAST) received on UDP 4791 in rxe_udp_encap_recv()\u2192rxe_rcv()\u2192rxe_resp_queue_pkt(); the same peer puts the QP in ERR during do_complete() via a CM DREQ (rdma_disconnect\u2192cma_modify_qp_err) or an AETH NAK in rxe_completer().\nAC:L - The race is do_complete() in rxe_receiver() (rxe_wq recv_task) versus a concurrent rxe_qp_error()/rxe_qp_from_attr() setting IB_QPS_ERR; the attacker sends both the SEND and the DREQ/NAK, so they control both sides and can retry until the window is hit.\nPR:N - hdr_check() only binds the SEND to an established RC QP (BTH QPN, check_addr() on the QP AV, default PKey); that is the RoCE connection handshake, not a local uid or capability, so the remote peer needs no OS privileges.\nUI:N - Once the SEND is queued, rxe_receiver() runs from rxe_wq by itself; no local user action is required to process the packet or to handle the peer\u0027s DREQ/NAK.\nS:U - Duplicate IB_WC_SUCCESS completions and the copy_data() oops occur inside the host rxe responder; they do not cross a VM, IOMMU, or sandbox boundary.\nC:N - The crash is a NULL load of qp-\u003eresp.wqe-\u003edma.resid in copy_data() (address 0x14) after the RQ is empty; earlier send_data_in() copies only replay the attacker\u0027s own SEND payload into posted recv MRs and do not disclose kernel memory.\nI:L - When do_complete() returns RESPST_CHK_RESOURCE, execute()/send_data_in() copies that same SEND into every remaining recv WQE and do_complete() posts another IB_WC_SUCCESS (qp-\u003eresp.status still 0), breaking RC exactly-once delivery for this QP\u0027s posted RQ; that is not an arbitrary kernel write.\nA:H - After the RQ is exhausted, send_data_in() calls copy_data() with qp-\u003eresp.wqe == NULL and oopses on rxe_wq (RIP copy_data), as in the reported NULL-pointer dereference."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:39.979Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c319b986a88cedf600c4497cd7814a891b2f9e7c"
},
{
"url": "https://git.kernel.org/stable/c/62a4b48767e06fdd64548450fae2b1ffc6ff5d69"
},
{
"url": "https://git.kernel.org/stable/c/399713f1f0eac641351c8ceaec0ab8244ddcf78c"
},
{
"url": "https://git.kernel.org/stable/c/0d37e2503efd1069a74be740eadf63ea17c96810"
},
{
"url": "https://git.kernel.org/stable/c/15ae32c4a3551c4c9da457370bdfdd65d171e512"
}
],
"title": "RDMA/rxe: Avoid reprocessing the current packet after the QP enters the error state",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93107",
"datePublished": "2026-09-17T16:11:17.791Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:39.979Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72061 (GCVE-0-2026-72061)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: sit: require CAP_NET_ADMIN in the device netns for changelink
ipip6_changelink() operates on at most two netns, dev_net(dev) and the
tunnel link netns t->net. They differ once the device is created in or
moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Gate ipip6_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed. sit was the one tunnel type not covered
by the recent series that added this check to the other changelink()
handlers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 Version: 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72061",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:51:08.793068Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:25.695Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/sit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cb41b308e9d867725d965b291dd085028e36a480",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "c5a0ae895432596b2f464172da8218e2d84e2932",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "7d139dec96691cde96cb40ed293e2d13d994fb4f",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "388ccffbd2e7e5e4271f291085a7451865705305",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "c0ea1aedb37bb979e864ed7787975434bbd9db73",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "3118e97dae533fb45964b87bbed1801afcff7c65",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "99ae3248b33df94201915d9c32e7470cdf08cfcd",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
},
{
"lessThan": "27ccb68e7cccead5d8c611665a45d23032d468b3",
"status": "affected",
"version": "5e6700b3bf98fe98d630bf9c939ad4c85ce95592",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/sit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.11"
},
{
"lessThan": "3.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: sit: require CAP_NET_ADMIN in the device netns for changelink\n\nipip6_changelink() operates on at most two netns, dev_net(dev) and the\ntunnel link netns t-\u003enet. They differ once the device is created in or\nmoved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in t-\u003enet can rewrite a tunnel that\nlives in t-\u003enet.\n\nGate ipip6_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed. sit was the one tunnel type not covered\nby the recent series that added this check to the other changelink()\nhandlers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires RTM_NEWLINK/RTM_SETLINK changelink over a local rtnetlink socket; ipip6_changelink is only reachable from rtnl configuration, not from received IPv4/IPv6 packets processed by ipip6_rcv.\nAC:L - Once a SIT device exists with t-\u003enet differing from dev_net(dev) (IFLA_LINK_NETNSID newlink or IFLA_NET_NS_FD migration), a single deterministic netlink changelink bypasses the missing check with no race or memory-layout dependency.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN only in dev_net(dev), obtainable by an unprivileged local user via unshare --user --map-root-user --net; no CAP_NET_ADMIN in the sticky link netns t-\u003enet is required.\nUI:N - The attack is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - Authorization is checked against dev_net(dev) while ipip6_changelink mutates tunnel state in t-\u003enet via ipip6_tunnel_update, crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host\u0027s network namespace.\nC:H - An attacker can rewrite IFLA_IPTUN_LOCAL/REMOTE, link, fwmark, and encap parameters to redirect IPv6-in-IPv4 traffic to an attacker-controlled endpoint and read all tunneled payloads in the victim link netns.\nI:H - Unauthorized changelink updates live tunnel endpoints, underlay link, encap ports, and 6rd prefix/relay settings in t-\u003enet, enabling redirection and injection of IPv6 traffic carried over the SIT tunnel.\nA:H - Rewriting tunnel remote/local addresses, underlay device, or 6rd parameters breaks 6to4, 6rd, and cross-netns IPv6 connectivity, causing sustained loss of service for every workload depending on the affected SIT tunnel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:54.286Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cb41b308e9d867725d965b291dd085028e36a480"
},
{
"url": "https://git.kernel.org/stable/c/c5a0ae895432596b2f464172da8218e2d84e2932"
},
{
"url": "https://git.kernel.org/stable/c/7d139dec96691cde96cb40ed293e2d13d994fb4f"
},
{
"url": "https://git.kernel.org/stable/c/388ccffbd2e7e5e4271f291085a7451865705305"
},
{
"url": "https://git.kernel.org/stable/c/c0ea1aedb37bb979e864ed7787975434bbd9db73"
},
{
"url": "https://git.kernel.org/stable/c/3118e97dae533fb45964b87bbed1801afcff7c65"
},
{
"url": "https://git.kernel.org/stable/c/99ae3248b33df94201915d9c32e7470cdf08cfcd"
},
{
"url": "https://git.kernel.org/stable/c/27ccb68e7cccead5d8c611665a45d23032d468b3"
}
],
"title": "net: sit: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72061",
"datePublished": "2026-08-15T05:52:15.823Z",
"dateReserved": "2026-08-09T03:40:39.903Z",
"dateUpdated": "2026-10-19T21:19:25.695Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97505 (GCVE-0-2026-97505)
Vulnerability from cvelistv5
Published
2026-09-24 16:04
Modified
2026-10-21 12:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
PCI/sysfs: Add CAP_SYS_ADMIN check to __resource_resize_store()
Currently, the __resource_resize_store() allows writing to the
resourceN_resize sysfs attribute to change a BAR's size without checking
for capabilities, currently relying only on the file access check.
Resizing a BAR modifies PCI device configuration and can disrupt active
drivers. After the upcoming conversion to static attributes, it will also
trigger resource file updates via sysfs_update_groups().
Add a CAP_SYS_ADMIN check to prevent unprivileged users from performing BAR
resize operations.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/pci-sysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d02dd7ce8e52b66b7d3b6eca2a7d81e7f5b10a62",
"status": "affected",
"version": "91fa127794ac1c48069479b9d45eb4c7378c0e30",
"versionType": "git"
},
{
"lessThan": "b722a607f858b9cd036075ea0efad553fb98e982",
"status": "affected",
"version": "91fa127794ac1c48069479b9d45eb4c7378c0e30",
"versionType": "git"
},
{
"lessThan": "cbf0628c0b7db86c5ce36451f088101546acbf1d",
"status": "affected",
"version": "91fa127794ac1c48069479b9d45eb4c7378c0e30",
"versionType": "git"
},
{
"lessThan": "25ec7f57deceec633f27bc93b615f951e2ade814",
"status": "affected",
"version": "91fa127794ac1c48069479b9d45eb4c7378c0e30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/pci-sysfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPCI/sysfs: Add CAP_SYS_ADMIN check to __resource_resize_store()\n\nCurrently, the __resource_resize_store() allows writing to the\nresourceN_resize sysfs attribute to change a BAR\u0027s size without checking\nfor capabilities, currently relying only on the file access check.\n\nResizing a BAR modifies PCI device configuration and can disrupt active\ndrivers. After the upcoming conversion to static attributes, it will also\ntrigger resource file updates via sysfs_update_groups().\n\nAdd a CAP_SYS_ADMIN check to prevent unprivileged users from performing BAR\nresize operations."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:52:58.483Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d02dd7ce8e52b66b7d3b6eca2a7d81e7f5b10a62"
},
{
"url": "https://git.kernel.org/stable/c/b722a607f858b9cd036075ea0efad553fb98e982"
},
{
"url": "https://git.kernel.org/stable/c/cbf0628c0b7db86c5ce36451f088101546acbf1d"
},
{
"url": "https://git.kernel.org/stable/c/25ec7f57deceec633f27bc93b615f951e2ade814"
}
],
"title": "PCI/sysfs: Add CAP_SYS_ADMIN check to __resource_resize_store()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97505",
"datePublished": "2026-09-24T16:04:54.215Z",
"dateReserved": "2026-09-24T16:01:01.151Z",
"dateUpdated": "2026-10-21T12:52:58.483Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72350 (GCVE-0-2026-72350)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_u32: reject invalid shift counts
u32_match_it() executes rule-supplied shift operands on a 32-bit
value. A malformed u32 rule can provide a shift count of 32 or more,
triggering an undefined shift out-of-bounds during packet evaluation.
Validate XT_U32_LEFTSH and XT_U32_RIGHTSH operands in
u32_mt_checkentry() and reject malformed rules before they reach the
packet path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de Version: 1b50b8a371e90a5e110f466e4ac02cf6b5f681de |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72350",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:46.235964Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:19.841Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ca7c92d9701249e6daf132087756a88cbf2bb2a3",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "b33b44250d57ab0e5a1e2571b5285fb0d0a7f382",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "728f479dc0447ae7eaef87926ff49142e415a811",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "0a8b7a6d763775709c601f584e709ae48bcc000a",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "cce42014415cecd98aa49b3950e7b02ee7c81268",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "a597a722fb71a534138c20359b655726622b5f17",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "00d034fe8230dfc5832fe011ff2d81c1a2cc7a29",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
},
{
"lessThan": "64cdf7d30ac18e43df6c48004435febb965809a8",
"status": "affected",
"version": "1b50b8a371e90a5e110f466e4ac02cf6b5f681de",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.23"
},
{
"lessThan": "2.6.23",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.23",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_u32: reject invalid shift counts\n\nu32_match_it() executes rule-supplied shift operands on a 32-bit\nvalue. A malformed u32 rule can provide a shift count of 32 or more,\ntriggering an undefined shift out-of-bounds during packet evaluation.\n\nValidate XT_U32_LEFTSH and XT_U32_RIGHTSH operands in\nu32_mt_checkentry() and reject malformed rules before they reach the\npacket path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Malicious xt_u32 match rules are installed via IPT_SO_SET_REPLACE setsockopt or nftables NFNetlink (nft_compat match); per kernel CNA guidance netfilter/xtables rule setup is Local even though installed rules evaluate on ingress/egress packets through ipt_do_table.\nAC:L - The attacker fully controls XT_U32_LEFTSH/RIGHTSH shift operands (\u003e=32) in matchinfo and can send triggering packets through the hooked netfilter chain; no race or uncontrollable victim state is required.\nPR:L - Installing xt_u32 iptables/nftables rules requires CAP_NET_ADMIN, obtainable by unprivileged users in user/network namespaces via unshare -Urn; ip_tables.c and nfnetlink enforce ns_capable/netlink_net_capable against the namespace user_ns.\nUI:N - The attacker installs the malicious u32 match rule and generates matching traffic in their namespace; no separate victim action (opening files, mounting media, clicking links) is needed.\nS:U - Undefined shift during xt_u32 packet matching and any resulting kernel crash remain within the host kernel security authority; this is standard local kernel compromise, not a VM escape or sandbox boundary crossing.\nC:H - Undefined-behavior shifts on packet-derived u32 values corrupt val and @ offset accumulation, driving attacker-influenced skb_copy_bits reads at unintended offsets; per CNA guidance exploitable kernel memory-unsafe arithmetic warrants High confidentiality.\nI:H - Invalid shift counts corrupt val/at control flow in the u32_match_it hot path; C11 undefined behavior in kernel netfilter matching is exploitable for integrity compromise and potential code execution per CNA memory-corruption guidance.\nA:H - Evaluating a malformed xt_u32 rule with shift\u003e=32 triggers undefined shift-out-of-bounds during packet matching; vulnerable kernels also BUG() on skb_copy_bits failure, provoking kernel panic/oops during rule evaluation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:07.758Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ca7c92d9701249e6daf132087756a88cbf2bb2a3"
},
{
"url": "https://git.kernel.org/stable/c/b33b44250d57ab0e5a1e2571b5285fb0d0a7f382"
},
{
"url": "https://git.kernel.org/stable/c/728f479dc0447ae7eaef87926ff49142e415a811"
},
{
"url": "https://git.kernel.org/stable/c/0a8b7a6d763775709c601f584e709ae48bcc000a"
},
{
"url": "https://git.kernel.org/stable/c/cce42014415cecd98aa49b3950e7b02ee7c81268"
},
{
"url": "https://git.kernel.org/stable/c/a597a722fb71a534138c20359b655726622b5f17"
},
{
"url": "https://git.kernel.org/stable/c/00d034fe8230dfc5832fe011ff2d81c1a2cc7a29"
},
{
"url": "https://git.kernel.org/stable/c/64cdf7d30ac18e43df6c48004435febb965809a8"
}
],
"title": "netfilter: xt_u32: reject invalid shift counts",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72350",
"datePublished": "2026-08-15T05:55:53.532Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-10-16T18:55:19.841Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90104 (GCVE-0-2026-90104)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-21 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSv4.1: zero referring call lists before decoding
decode_cb_sequence_args() allocates csa_rclists with kmalloc_objs(), so
each referring_call_list starts uninitialized. decode_rc_list() assigns
rcl_refcalls only when rcl_nrefcalls is nonzero. A valid list with zero
referring calls therefore leaves the pointer uninitialized, and
nfs4_callback_sequence() later passes stale slab contents to kfree().
Allocate csa_rclists with kzalloc_objs() so every rcl_refcalls member is
NULL from the beginning, including valid empty referring call lists.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfs/callback_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ed54460caf5b5aa65ec03c9a6032d831f39f19f5",
"status": "affected",
"version": "4aece6a19cf7f474f15eb861ba74db4479884ce3",
"versionType": "git"
},
{
"lessThan": "7510a5b9edec9d9536a4e69f10edfb2592e6cf7f",
"status": "affected",
"version": "4aece6a19cf7f474f15eb861ba74db4479884ce3",
"versionType": "git"
},
{
"lessThan": "f4d23937e1c41995c2f54af26c89b5e48a41c299",
"status": "affected",
"version": "4aece6a19cf7f474f15eb861ba74db4479884ce3",
"versionType": "git"
},
{
"lessThan": "f31f3c042e024aef437cda42f0424ae8d4594b6c",
"status": "affected",
"version": "4aece6a19cf7f474f15eb861ba74db4479884ce3",
"versionType": "git"
},
{
"lessThan": "8fa4804fe62ca4155a2d8fc2789d630376cbf2fc",
"status": "affected",
"version": "4aece6a19cf7f474f15eb861ba74db4479884ce3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfs/callback_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.31"
},
{
"lessThan": "2.6.31",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.31",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSv4.1: zero referring call lists before decoding\n\ndecode_cb_sequence_args() allocates csa_rclists with kmalloc_objs(), so\neach referring_call_list starts uninitialized. decode_rc_list() assigns\nrcl_refcalls only when rcl_nrefcalls is nonzero. A valid list with zero\nreferring calls therefore leaves the pointer uninitialized, and\nnfs4_callback_sequence() later passes stale slab contents to kfree().\n\nAllocate csa_rclists with kzalloc_objs() so every rcl_refcalls member is\nNULL from the beginning, including valid empty referring call lists."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - xs_read_stream_call()/rpcrdma_bc_receive_call() deliver a backchannel RPC_CALL on the established NFSv4.1 TCP or RPC/RDMA session into nfs4_callback_compound \u2192 process_op \u2192 decode_cb_sequence_args(); the attacker-controlled bytes are the CB_SEQUENCE csa_nrclists and rcl_nrefcalls XDR fields sent by the NFS server.\nAC:L - A single well-formed CB_SEQUENCE with csa_nrclists\u22651 and decode_rc_list() seeing rcl_nrefcalls==0 skips the rcl_refcalls assignment and still returns 0; nfs4_callback_sequence() then kfree()s that stale pointer. Empty referring_call_list4 is valid RFC 5661 XDR, so no race or victim-only state is required.\nPR:N - nfs_callback_authenticate() accepts RPC_AUTH_UNIX on the NFSv4.1 backchannel, and decode_cb_sequence_args() runs in process_op() before nfs4_find_client_sessionid(); the connected NFS server needs no account or capability on the client to send CB_SEQUENCE.\nUI:N - After nfs4_init_callback() has attached the backchannel (boot-time, autofs, or Kubernetes NFSv4.1 mounts), the server unilaterally sends CB_SEQUENCE; nfs4_callback_sequence() kfree()s rcl_refcalls with no further victim open, mount, or click.\nS:U - kfree of the stale rcl_refcalls pointer corrupts the NFS client\u0027s kmalloc heap in the same host kernel; it does not cross a VM, IOMMU, or guest/host boundary.\nC:H - nfs4_callback_sequence() kfree()s uninitialized rcl_refcalls left by kmalloc_objs() of csa_rclists when rcl_nrefcalls was 0. A prior CB_SEQUENCE that allocated then freed rcl_refcalls can leave that pointer in the reused slab object, a heap double-free/UAF read primitive.\nI:H - The same kfree of stale rcl_refcalls is a slab double-free of the referring_call array (size chosen by the attacker\u0027s earlier nrefcalls). Reclaim or spraying a replacement object over that free yields an arbitrary kernel write / control-flow hijack primitive.\nA:H - kfree of a non-NULL garbage rcl_refcalls pointer from a successful decode_cb_sequence_args() of an empty referring_call_list causes SLUB to BUG, oops, or panic even when the double-free is not fully exploited."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:49:51.551Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ed54460caf5b5aa65ec03c9a6032d831f39f19f5"
},
{
"url": "https://git.kernel.org/stable/c/7510a5b9edec9d9536a4e69f10edfb2592e6cf7f"
},
{
"url": "https://git.kernel.org/stable/c/f4d23937e1c41995c2f54af26c89b5e48a41c299"
},
{
"url": "https://git.kernel.org/stable/c/f31f3c042e024aef437cda42f0424ae8d4594b6c"
},
{
"url": "https://git.kernel.org/stable/c/8fa4804fe62ca4155a2d8fc2789d630376cbf2fc"
}
],
"title": "NFSv4.1: zero referring call lists before decoding",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90104",
"datePublished": "2026-09-17T16:06:14.191Z",
"dateReserved": "2026-09-11T19:38:34.786Z",
"dateUpdated": "2026-10-21T12:49:51.551Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89609 (GCVE-0-2026-89609)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ecryptfs: hold msg ctx list lock when cleaning daemon queue
ecryptfs_exorcise_daemon() drops queued messages from a dying daemon
without holding ecryptfs_msg_ctx_lists_mux, but
ecryptfs_msg_ctx_alloc_to_free() requires that lock.
Take the list lock while moving the queued contexts back to the free
list to avoid racing with other global msg ctx list users.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 Version: f66e883eb6186bc43a79581b67aff7d1a69d0ff1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ecryptfs/messaging.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "64d8998e36cfd2bb7114f3af0aa51c5a559a39b3",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "4d50b8aea11ad9594c8704a4c647e11311ab7b19",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "956541efd125a10442f9514668bc5c852702c93b",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "ec1627bcb5b51ddd46b1ef27a9d5a9834abb0a6a",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "7e48afafe7abc275f7b6916613bb18b821e7d94a",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "0d9636ecba34bd553ecf19049f7705505aea62fd",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "4c02acbe0a2692ca9991c51e62bbe6d6b59dac31",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
},
{
"lessThan": "779972513c2fa8c7938e54976f686091dafff22f",
"status": "affected",
"version": "f66e883eb6186bc43a79581b67aff7d1a69d0ff1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ecryptfs/messaging.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.26"
},
{
"lessThan": "2.6.26",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.26",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\necryptfs: hold msg ctx list lock when cleaning daemon queue\n\necryptfs_exorcise_daemon() drops queued messages from a dying daemon\nwithout holding ecryptfs_msg_ctx_lists_mux, but\necryptfs_msg_ctx_alloc_to_free() requires that lock.\n\nTake the list lock while moving the queued contexts back to the free\nlist to avoid racing with other global msg ctx list users."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The missing lock is reached only via local syscalls: close() of /dev/ecryptfs runs ecryptfs_miscdev_release() into ecryptfs_exorcise_daemon(), racing PKI open/create that calls ecryptfs_wait_for_response(); no network or adjacent protocol path exists.\nAC:L - The attacker owns both sides of the race: one thread does PKI file ops so wait_for_response() list_move()s a msg_ctx under ecryptfs_msg_ctx_lists_mux, while another closes /dev/ecryptfs so exorcise_daemon() list_move()s the same or sibling nodes without that lock.\nPR:L - ecryptfs_miscdev_open() has no capability check; daemons are per-euid. An unprivileged user reaches this by running ecryptfsd on /dev/ecryptfs and using an eCryptfs mount from setuid mount.ecryptfs_private or an encrypted home, with a user-keyring PRIVATE_KEY auth token.\nUI:N - The attacker registers their own daemon, installs their own auth token, uses their own eCryptfs directory, and issues the create/open/close syscalls; no other user needs to mount, open a file, or otherwise interact.\nS:U - Corrupted global msg_ctx lists and the double-free of msg_ctx-\u003emsg stay inside the host kernel\u0027s eCryptfs messaging subsystem; this is ordinary kernel impact, not a VM, IOMMU, or sandbox escape.\nC:H - Unlocked list_move() of a queued msg_ctx racing wait_for_response() is a use-after-free of the kmalloc\u0027d message buffer and leaves corrupted global list pointers that can be groomed to disclose kernel memory.\nI:H - The same race is a heap double-free of msg_ctx-\u003emsg plus unsynchronized list_move() writes through corrupted next/prev pointers, a classic memory-corruption primitive usable for control-flow hijacking.\nA:H - Concurrent unlocked list_move() readily oopses on LIST_POISON or a general protection fault during later list walks, and the double-free of msg_ctx-\u003emsg can panic the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:49:41.609Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/64d8998e36cfd2bb7114f3af0aa51c5a559a39b3"
},
{
"url": "https://git.kernel.org/stable/c/4d50b8aea11ad9594c8704a4c647e11311ab7b19"
},
{
"url": "https://git.kernel.org/stable/c/956541efd125a10442f9514668bc5c852702c93b"
},
{
"url": "https://git.kernel.org/stable/c/ec1627bcb5b51ddd46b1ef27a9d5a9834abb0a6a"
},
{
"url": "https://git.kernel.org/stable/c/7e48afafe7abc275f7b6916613bb18b821e7d94a"
},
{
"url": "https://git.kernel.org/stable/c/0d9636ecba34bd553ecf19049f7705505aea62fd"
},
{
"url": "https://git.kernel.org/stable/c/4c02acbe0a2692ca9991c51e62bbe6d6b59dac31"
},
{
"url": "https://git.kernel.org/stable/c/779972513c2fa8c7938e54976f686091dafff22f"
}
],
"title": "ecryptfs: hold msg ctx list lock when cleaning daemon queue",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89609",
"datePublished": "2026-09-11T19:45:11.086Z",
"dateReserved": "2026-09-11T19:38:34.734Z",
"dateUpdated": "2026-10-19T08:49:41.609Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74289 (GCVE-0-2026-74289)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: fib: Don't dump dying fib_info in fib_leaf_notify().
syzbot reported use-after-free in nsim_fib4_prepare_event(). [0]
The problem is that the following functions call fib_info_hold() /
refcount_inc() while dumping fib_info under RCU, which is unsafe.
* mlxsw_sp_router_fib4_event()
* rocker_router_fib_event()
* nsim_fib4_prepare_event()
refcount_inc_not_zero() must be used, but it would be too late
there.
Let's guarantee the lifetime of fib_info in fib_leaf_notify().
Note that IPv6 does not need the corresponding change since
fib6_table_dump() holds fib6_table.tb6_lock.
[0]:
refcount_t: addition on 0; use-after-free.
WARNING: lib/refcount.c:25 at refcount_warn_saturate+0x9f/0x110 lib/refcount.c:25, CPU#0: kworker/u8:15/3420
Modules linked in:
CPU: 0 UID: 0 PID: 3420 Comm: kworker/u8:15 Not tainted syzkaller #0 PREEMPT_{RT,(full)}
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
Workqueue: netns cleanup_net
RIP: 0010:refcount_warn_saturate+0x9f/0x110 lib/refcount.c:25
Code: eb 66 85 db 74 3e 83 fb 01 75 4c e8 1b f1 22 fd 48 8d 3d 84 cb f1 0a 67 48 0f b9 3a eb 4a e8 08 f1 22 fd 48 8d 3d 81 cb f1 0a <67> 48 0f b9 3a eb 37 e8 f5 f0 22 fd 48 8d 3d 7e cb f1 0a 67 48 0f
RSP: 0018:ffffc9000f2c7270 EFLAGS: 00010293
RAX: ffffffff84a18858 RBX: 0000000000000002 RCX: ffff888032ff9ec0
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8f9353e0
RBP: 0000000000000000 R08: ffff888032ff9ec0 R09: 0000000000000005
R10: 0000000000000100 R11: 0000000000000004 R12: ffff8880570cc000
R13: dffffc0000000000 R14: ffff88802b40563c R15: ffff8880570cc000
FS: 0000000000000000(0000) GS:ffff888126173000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb1f4d5d000 CR3: 000000006072a000 CR4: 00000000003526f0
Call Trace:
<TASK>
__refcount_add include/linux/refcount.h:-1 [inline]
__refcount_inc include/linux/refcount.h:366 [inline]
refcount_inc include/linux/refcount.h:383 [inline]
fib_info_hold include/net/ip_fib.h:629 [inline]
nsim_fib4_prepare_event drivers/net/netdevsim/fib.c:930 [inline]
nsim_fib_event_schedule_work drivers/net/netdevsim/fib.c:1000 [inline]
nsim_fib_event_nb+0x1055/0x1240 drivers/net/netdevsim/fib.c:1043
call_fib_notifier+0x45/0x80 net/core/fib_notifier.c:25
call_fib_entry_notifier net/ipv4/fib_trie.c:90 [inline]
fib_leaf_notify net/ipv4/fib_trie.c:2176 [inline]
fib_table_notify net/ipv4/fib_trie.c:2194 [inline]
fib_notify+0x36b/0x5e0 net/ipv4/fib_trie.c:2217
fib_net_dump net/core/fib_notifier.c:70 [inline]
register_fib_notifier+0x184/0x360 net/core/fib_notifier.c:108
nsim_fib_create+0x85d/0x9f0 drivers/net/netdevsim/fib.c:1596
nsim_dev_reload_create drivers/net/netdevsim/dev.c:1604 [inline]
nsim_dev_reload_up+0x374/0x7c0 drivers/net/netdevsim/dev.c:1058
devlink_reload+0x501/0x8d0 net/devlink/dev.c:475
devlink_pernet_pre_exit+0x1ff/0x420 net/devlink/core.c:558
ops_pre_exit_list net/core/net_namespace.c:161 [inline]
ops_undo_list+0x187/0x940 net/core/net_namespace.c:234
cleanup_net+0x56e/0x800 net/core/net_namespace.c:702
process_one_work kernel/workqueue.c:3314 [inline]
process_scheduled_works+0xb5d/0x1860 kernel/workqueue.c:3397
worker_thread+0xa53/0xfc0 kernel/workqueue.c:3478
kthread+0x388/0x470 kernel/kthread.c:436
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea Version: c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74289",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:19.220764Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:30.522Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h",
"net/ipv4/fib_trie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8bdb20b8a581495062b5879f4e9d435da648b3b0",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
},
{
"lessThan": "7907a395701b339c2d68f37456d395e953c74795",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
},
{
"lessThan": "7980a13add57f97c5da1dc961d0145a6ad2a7f98",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
},
{
"lessThan": "bea03e887db5a8a79234531faf14cf2c4d8816c3",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
},
{
"lessThan": "676482da8d938ea72c26da0fc86af2d2ec238ab2",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
},
{
"lessThan": "06b693d2eb6651a63ad85bad8673de3b7d4edd6d",
"status": "affected",
"version": "c3852ef7f2f8f75a9f85a864bec1f6f5a3068eea",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h",
"net/ipv4/fib_trie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: fib: Don\u0027t dump dying fib_info in fib_leaf_notify().\n\nsyzbot reported use-after-free in nsim_fib4_prepare_event(). [0]\n\nThe problem is that the following functions call fib_info_hold() /\nrefcount_inc() while dumping fib_info under RCU, which is unsafe.\n\n * mlxsw_sp_router_fib4_event()\n * rocker_router_fib_event()\n * nsim_fib4_prepare_event()\n\nrefcount_inc_not_zero() must be used, but it would be too late\nthere.\n\nLet\u0027s guarantee the lifetime of fib_info in fib_leaf_notify().\n\nNote that IPv6 does not need the corresponding change since\nfib6_table_dump() holds fib6_table.tb6_lock.\n\n[0]:\nrefcount_t: addition on 0; use-after-free.\nWARNING: lib/refcount.c:25 at refcount_warn_saturate+0x9f/0x110 lib/refcount.c:25, CPU#0: kworker/u8:15/3420\nModules linked in:\nCPU: 0 UID: 0 PID: 3420 Comm: kworker/u8:15 Not tainted syzkaller #0 PREEMPT_{RT,(full)}\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026\nWorkqueue: netns cleanup_net\nRIP: 0010:refcount_warn_saturate+0x9f/0x110 lib/refcount.c:25\nCode: eb 66 85 db 74 3e 83 fb 01 75 4c e8 1b f1 22 fd 48 8d 3d 84 cb f1 0a 67 48 0f b9 3a eb 4a e8 08 f1 22 fd 48 8d 3d 81 cb f1 0a \u003c67\u003e 48 0f b9 3a eb 37 e8 f5 f0 22 fd 48 8d 3d 7e cb f1 0a 67 48 0f\nRSP: 0018:ffffc9000f2c7270 EFLAGS: 00010293\nRAX: ffffffff84a18858 RBX: 0000000000000002 RCX: ffff888032ff9ec0\nRDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8f9353e0\nRBP: 0000000000000000 R08: ffff888032ff9ec0 R09: 0000000000000005\nR10: 0000000000000100 R11: 0000000000000004 R12: ffff8880570cc000\nR13: dffffc0000000000 R14: ffff88802b40563c R15: ffff8880570cc000\nFS: 0000000000000000(0000) GS:ffff888126173000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007fb1f4d5d000 CR3: 000000006072a000 CR4: 00000000003526f0\nCall Trace:\n \u003cTASK\u003e\n __refcount_add include/linux/refcount.h:-1 [inline]\n __refcount_inc include/linux/refcount.h:366 [inline]\n refcount_inc include/linux/refcount.h:383 [inline]\n fib_info_hold include/net/ip_fib.h:629 [inline]\n nsim_fib4_prepare_event drivers/net/netdevsim/fib.c:930 [inline]\n nsim_fib_event_schedule_work drivers/net/netdevsim/fib.c:1000 [inline]\n nsim_fib_event_nb+0x1055/0x1240 drivers/net/netdevsim/fib.c:1043\n call_fib_notifier+0x45/0x80 net/core/fib_notifier.c:25\n call_fib_entry_notifier net/ipv4/fib_trie.c:90 [inline]\n fib_leaf_notify net/ipv4/fib_trie.c:2176 [inline]\n fib_table_notify net/ipv4/fib_trie.c:2194 [inline]\n fib_notify+0x36b/0x5e0 net/ipv4/fib_trie.c:2217\n fib_net_dump net/core/fib_notifier.c:70 [inline]\n register_fib_notifier+0x184/0x360 net/core/fib_notifier.c:108\n nsim_fib_create+0x85d/0x9f0 drivers/net/netdevsim/fib.c:1596\n nsim_dev_reload_create drivers/net/netdevsim/dev.c:1604 [inline]\n nsim_dev_reload_up+0x374/0x7c0 drivers/net/netdevsim/dev.c:1058\n devlink_reload+0x501/0x8d0 net/devlink/dev.c:475\n devlink_pernet_pre_exit+0x1ff/0x420 net/devlink/core.c:558\n ops_pre_exit_list net/core/net_namespace.c:161 [inline]\n ops_undo_list+0x187/0x940 net/core/net_namespace.c:234\n cleanup_net+0x56e/0x800 net/core/net_namespace.c:702\n process_one_work kernel/workqueue.c:3314 [inline]\n process_scheduled_works+0xb5d/0x1860 kernel/workqueue.c:3397\n worker_thread+0xa53/0xfc0 kernel/workqueue.c:3478\n kthread+0x388/0x470 kernel/kthread.c:436\n ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158\n ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n \u003c/TASK\u003e"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local netlink syscalls (rtnetlink route add/delete and devlink reload/netns teardown) that invoke register_fib_notifier()-\u003efib_leaf_notify(); it is not reachable by sending remote IP packets.\nAC:L - The bug is a race between RCU FIB table dump and concurrent route deletion; an attacker controls both sides by churning routes while triggering devlink reload or network-namespace cleanup that registers a FIB notifier.\nPR:L - Route manipulation and devlink operations require CAP_NET_ADMIN in the target network namespace, which an unprivileged local user can obtain via user+network namespaces; cloud/container hosts with Mellanox mlx5/mlxsw also expose this via NET_ADMIN.\nUI:N - No victim interaction is required; the attacker creates routes, triggers FIB notifier registration/dump, and concurrently deletes routes or destroys the namespace themselves.\nS:U - Impact is a kernel heap use-after-free within the host networking stack; it does not cross VM, container, or IOMMU security boundaries (standard kernel privilege escalation remains scope Unchanged).\nC:H - Use-after-free on fib_info during RCU dump (refcount_inc on zero in fib_info_hold); syzbot confirmed dying fib_info access, enabling disclosure of freed slab contents and kernel pointer leaks for further exploitation.\nI:H - UAF on fib_info allows attacker-controlled heap reuse of the freed object, enabling arbitrary kernel memory corruption, control-flow hijack, and local privilege escalation beyond the demonstrated refcount warning.\nA:H - Demonstrated kernel refcount UAF warning/crash path during fib_info_hold; repeated triggering via route churn plus devlink reload/netns cleanup can panic or hang the host, causing system-wide denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:55:57.824Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8bdb20b8a581495062b5879f4e9d435da648b3b0"
},
{
"url": "https://git.kernel.org/stable/c/7907a395701b339c2d68f37456d395e953c74795"
},
{
"url": "https://git.kernel.org/stable/c/7980a13add57f97c5da1dc961d0145a6ad2a7f98"
},
{
"url": "https://git.kernel.org/stable/c/bea03e887db5a8a79234531faf14cf2c4d8816c3"
},
{
"url": "https://git.kernel.org/stable/c/676482da8d938ea72c26da0fc86af2d2ec238ab2"
},
{
"url": "https://git.kernel.org/stable/c/06b693d2eb6651a63ad85bad8673de3b7d4edd6d"
}
],
"title": "ipv4: fib: Don\u0027t dump dying fib_info in fib_leaf_notify().",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74289",
"datePublished": "2026-08-15T05:57:56.383Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-10-16T18:55:30.522Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93825 (GCVE-0-2026-93825)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
spi: Add NULL check for spi_get_device_id() in spi_get_device_match_data()
Prevent NULL pointer dereference when spi_get_device_id() returns NULL,
which can happen when using driver_override without matching SPI ID entry.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bd1be85dbbbd4076e8dbdceefc3c4d2c673e0075 Version: 027eaeaf3294607104e90e84cec3f55e792cab22 Version: aea672d054a21782ed8450c75febb6ba3c208ca4 Version: aea672d054a21782ed8450c75febb6ba3c208ca4 Version: aea672d054a21782ed8450c75febb6ba3c208ca4 Version: aea672d054a21782ed8450c75febb6ba3c208ca4 Version: 5.15.146 ≤ Version: 6.1.71 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1fa4484116d14a0356edfeb6ecc7ea3b370911b1",
"status": "affected",
"version": "bd1be85dbbbd4076e8dbdceefc3c4d2c673e0075",
"versionType": "git"
},
{
"lessThan": "aa966ccea3584a70c9a6030f4a16577030db35e5",
"status": "affected",
"version": "027eaeaf3294607104e90e84cec3f55e792cab22",
"versionType": "git"
},
{
"lessThan": "359b3442e66c595ed03e5a6b0493b66600c63941",
"status": "affected",
"version": "aea672d054a21782ed8450c75febb6ba3c208ca4",
"versionType": "git"
},
{
"lessThan": "3fcd9415144f4fbd21e1bef35a7f8dbd734f607d",
"status": "affected",
"version": "aea672d054a21782ed8450c75febb6ba3c208ca4",
"versionType": "git"
},
{
"lessThan": "72cc9c6d6fba5b4e0aaf89126884a56bb54b92f8",
"status": "affected",
"version": "aea672d054a21782ed8450c75febb6ba3c208ca4",
"versionType": "git"
},
{
"lessThan": "f1b061b4d4c6cbf861319ba954caa80145cf018f",
"status": "affected",
"version": "aea672d054a21782ed8450c75febb6ba3c208ca4",
"versionType": "git"
},
{
"lessThan": "5.15.222",
"status": "affected",
"version": "5.15.146",
"versionType": "semver"
},
{
"lessThan": "6.1.189",
"status": "affected",
"version": "6.1.71",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.2"
},
{
"lessThan": "6.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.15.146",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "6.1.71",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nspi: Add NULL check for spi_get_device_id() in spi_get_device_match_data()\n\nPrevent NULL pointer dereference when spi_get_device_id() returns NULL,\nwhich can happen when using driver_override without matching SPI ID entry."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:56.861Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1fa4484116d14a0356edfeb6ecc7ea3b370911b1"
},
{
"url": "https://git.kernel.org/stable/c/aa966ccea3584a70c9a6030f4a16577030db35e5"
},
{
"url": "https://git.kernel.org/stable/c/359b3442e66c595ed03e5a6b0493b66600c63941"
},
{
"url": "https://git.kernel.org/stable/c/3fcd9415144f4fbd21e1bef35a7f8dbd734f607d"
},
{
"url": "https://git.kernel.org/stable/c/72cc9c6d6fba5b4e0aaf89126884a56bb54b92f8"
},
{
"url": "https://git.kernel.org/stable/c/f1b061b4d4c6cbf861319ba954caa80145cf018f"
}
],
"title": "spi: Add NULL check for spi_get_device_id() in spi_get_device_match_data()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93825",
"datePublished": "2026-09-24T16:03:03.808Z",
"dateReserved": "2026-09-18T17:59:28.792Z",
"dateUpdated": "2026-10-03T10:57:56.861Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89448 (GCVE-0-2026-89448)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Force requesting ACS when tboot is enabled
Currently the conditions of requesting ACS in detect_intel_iommu()
don't include tboot, leading to a possible misconfiguration with ACS
disabled (e.g. due to user opts) while iommu is later forced on by
tboot_force_iommu().
Fix it by checking tboot in detect_intel_iommu().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89448",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:16.872682Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:38.787Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/dmar.c",
"drivers/iommu/intel/iommu.c",
"drivers/iommu/intel/iommu.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "579eb867d3da63f3b5e32f235925e1daa7ec70d0",
"status": "affected",
"version": "5d990b627537e59a3a2f039ff588a4750e9c1a6a",
"versionType": "git"
},
{
"lessThan": "aaeb81241e802c86be69394f72d49fde3f861fbb",
"status": "affected",
"version": "5d990b627537e59a3a2f039ff588a4750e9c1a6a",
"versionType": "git"
},
{
"lessThan": "45705a6bfdb283f7b3b509010fd617b72f942537",
"status": "affected",
"version": "5d990b627537e59a3a2f039ff588a4750e9c1a6a",
"versionType": "git"
},
{
"lessThan": "87bc611c6c98a41c00feb7b06b0c297dd141a2ae",
"status": "affected",
"version": "5d990b627537e59a3a2f039ff588a4750e9c1a6a",
"versionType": "git"
},
{
"lessThan": "607432b2618b61df81134be0ef2562b8300c1216",
"status": "affected",
"version": "5d990b627537e59a3a2f039ff588a4750e9c1a6a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/dmar.c",
"drivers/iommu/intel/iommu.c",
"drivers/iommu/intel/iommu.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Force requesting ACS when tboot is enabled\n\nCurrently the conditions of requesting ACS in detect_intel_iommu()\ndon\u0027t include tboot, leading to a possible misconfiguration with ACS\ndisabled (e.g. due to user opts) while iommu is later forced on by\ntboot_force_iommu().\n\nFix it by checking tboot in detect_intel_iommu()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - detect_intel_iommu() runs at boot from pci_iommu_alloc() and, when tboot later forces VT-d on, skips pci_request_acs(); a local PCIe/Thunderbolt DMA device or VFIO-passthrough guest can then spoof requester IDs and issue peer-to-peer DMA. This is not a network-protocol path.\nAC:L - On a tboot launch where intel_iommu=off, iommu=off, or default dmar_disabled skipped pci_request_acs(), ACS SV/RR/CR/UF/TB are never programmed; an attacker-controlled device can then deterministically perform P2P DMA or RID spoofing with no race or layout luck.\nPR:N - A malicious PCIe/Thunderbolt device or a tenant with an assigned passthrough/SR-IOV function issues the DMA itself and needs no host account, capability, or init-namespace root, matching other VT-d isolation-bypass scores for unauthenticated devices.\nUI:N - After the kernel boots with tboot-forced VT-d and ACS still disabled, the attacker\u2019s device performs DMA on its own; no separate victim action such as mounting a filesystem or opening a file is required.\nS:C - Missing ACS lets a device spoof requester IDs and send peer-to-peer TLPs that never reach the IOMMU, crossing the device/host DMA isolation boundary that tboot forces VT-d on to enforce (IOMMU/DMA boundary bypass is Scope Changed).\nC:H - Without ACS source validation, request redirect, and translation blocking, a device can impersonate another requester ID or DMA to peer BARs, reading host or peer-device memory outside its IOMMU domain (arbitrary DMA disclosure).\nI:H - The same ACS gap yields DMA writes into host or peer-device memory, including ATS without translation blocking on external/untrusted ports, providing an arbitrary write primitive that can corrupt kernel memory and hijack control flow.\nA:H - Unchecked DMA writes and IOMMU-bypassing P2P traffic can corrupt kernel structures or provoke DMAR faults, oopses, and panics; any such host crash qualifies as High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:57.768Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/579eb867d3da63f3b5e32f235925e1daa7ec70d0"
},
{
"url": "https://git.kernel.org/stable/c/aaeb81241e802c86be69394f72d49fde3f861fbb"
},
{
"url": "https://git.kernel.org/stable/c/45705a6bfdb283f7b3b509010fd617b72f942537"
},
{
"url": "https://git.kernel.org/stable/c/87bc611c6c98a41c00feb7b06b0c297dd141a2ae"
},
{
"url": "https://git.kernel.org/stable/c/607432b2618b61df81134be0ef2562b8300c1216"
}
],
"title": "iommu/vt-d: Force requesting ACS when tboot is enabled",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89448",
"datePublished": "2026-09-11T19:43:14.746Z",
"dateReserved": "2026-09-11T19:38:34.706Z",
"dateUpdated": "2026-10-19T08:46:57.768Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80667 (GCVE-0-2026-80667)
Vulnerability from cvelistv5
Published
2026-08-28 06:49
Modified
2026-08-28 06:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5: LAG, MPESW, Fix missing complete() on devcom error
mlx5_mpesw_work() returned without calling complete() when
mlx5_lag_get_devcom_comp() returned NULL. A caller that queued the
work and waited on mpesww->comp would block indefinitely.
Funnel the early-return path through a new "complete" label so the
waiter is always woken.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "68cdbe498da8475cfd49591954e3db8fc6582eda",
"status": "affected",
"version": "b430c1b4f63be51dde175a1dd3addba65ca24e2b",
"versionType": "git"
},
{
"lessThan": "6a802de97a8bf8d5f1e4a048c67de9a8c2d2f9eb",
"status": "affected",
"version": "b430c1b4f63be51dde175a1dd3addba65ca24e2b",
"versionType": "git"
},
{
"lessThan": "4d720c6c60e1852253b68aeee3044ebed5243adb",
"status": "affected",
"version": "b430c1b4f63be51dde175a1dd3addba65ca24e2b",
"versionType": "git"
},
{
"lessThan": "d4b85f9a668b9c44216bb78daf4ec1a915cc92d1",
"status": "affected",
"version": "b430c1b4f63be51dde175a1dd3addba65ca24e2b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5: LAG, MPESW, Fix missing complete() on devcom error\n\nmlx5_mpesw_work() returned without calling complete() when\nmlx5_lag_get_devcom_comp() returned NULL. A caller that queued the\nwork and waited on mpesww-\u003ecomp would block indefinitely.\n\nFunnel the early-return path through a new \"complete\" label so the\nwaiter is always woken."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:49:09.277Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/68cdbe498da8475cfd49591954e3db8fc6582eda"
},
{
"url": "https://git.kernel.org/stable/c/6a802de97a8bf8d5f1e4a048c67de9a8c2d2f9eb"
},
{
"url": "https://git.kernel.org/stable/c/4d720c6c60e1852253b68aeee3044ebed5243adb"
},
{
"url": "https://git.kernel.org/stable/c/d4b85f9a668b9c44216bb78daf4ec1a915cc92d1"
}
],
"title": "net/mlx5: LAG, MPESW, Fix missing complete() on devcom error",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80667",
"datePublished": "2026-08-28T06:49:09.277Z",
"dateReserved": "2026-08-26T14:34:25.782Z",
"dateUpdated": "2026-08-28T06:49:09.277Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74389 (GCVE-0-2026-74389)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/hns: Fix log flood after cmd_mbox failure
hns_roce_cmd_mbox() is the command interface between driver and
hardware. When hardware is abnormal, the unlimited error printings
after hns_roce_cmd_mbox() failure will cause log flood and even
system crash.
Replace ibdev_err() and ibdev_warn() with their ratelimited versions
in the error handling path after hns_roce_cmd_mbox() (and its wrappers
hns_roce_create_hw_ctx/hns_roce_destroy_hw_ctx) fails.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hns/hns_roce_cq.c",
"drivers/infiniband/hw/hns/hns_roce_hw_v2.c",
"drivers/infiniband/hw/hns/hns_roce_mr.c",
"drivers/infiniband/hw/hns/hns_roce_srq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a6c5f5d98719e69228512390d5db3bf4b6468064",
"status": "affected",
"version": "9a4435375cd151e07c0c38fa601b00115986091b",
"versionType": "git"
},
{
"lessThan": "7d9fbee252f84de3e6947a40eec01481c9d8afbb",
"status": "affected",
"version": "9a4435375cd151e07c0c38fa601b00115986091b",
"versionType": "git"
},
{
"lessThan": "66f44ec974ab372e4e1ee9eac4245237c94e8f68",
"status": "affected",
"version": "9a4435375cd151e07c0c38fa601b00115986091b",
"versionType": "git"
},
{
"lessThan": "f3c9e84268e9fa613d40d6c138fb6969c35879b5",
"status": "affected",
"version": "9a4435375cd151e07c0c38fa601b00115986091b",
"versionType": "git"
},
{
"lessThan": "bbd97d71e53e551890e4115ad9de46b5f2ac0858",
"status": "affected",
"version": "9a4435375cd151e07c0c38fa601b00115986091b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hns/hns_roce_cq.c",
"drivers/infiniband/hw/hns/hns_roce_hw_v2.c",
"drivers/infiniband/hw/hns/hns_roce_mr.c",
"drivers/infiniband/hw/hns/hns_roce_srq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hns: Fix log flood after cmd_mbox failure\n\nhns_roce_cmd_mbox() is the command interface between driver and\nhardware. When hardware is abnormal, the unlimited error printings\nafter hns_roce_cmd_mbox() failure will cause log flood and even\nsystem crash.\n\nReplace ibdev_err() and ibdev_warn() with their ratelimited versions\nin the error handling path after hns_roce_cmd_mbox() (and its wrappers\nhns_roce_create_hw_ctx/hns_roce_destroy_hw_ctx) fails."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:37.231Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a6c5f5d98719e69228512390d5db3bf4b6468064"
},
{
"url": "https://git.kernel.org/stable/c/7d9fbee252f84de3e6947a40eec01481c9d8afbb"
},
{
"url": "https://git.kernel.org/stable/c/66f44ec974ab372e4e1ee9eac4245237c94e8f68"
},
{
"url": "https://git.kernel.org/stable/c/f3c9e84268e9fa613d40d6c138fb6969c35879b5"
},
{
"url": "https://git.kernel.org/stable/c/bbd97d71e53e551890e4115ad9de46b5f2ac0858"
}
],
"title": "RDMA/hns: Fix log flood after cmd_mbox failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74389",
"datePublished": "2026-08-15T05:59:03.786Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-10-21T12:45:37.231Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68441 (GCVE-0-2026-68441)
Vulnerability from cvelistv5
Published
2026-08-12 00:07
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: Handle TC_ACT_REDIRECT from qdisc filter chains
When a TC filter attached to a qdisc filter chain returns
TC_ACT_REDIRECT (ex: via an eBPF program calling bpf_redirect() or an
act_bpf action), the redirect was silently lost i.e no qdisc classify
function handled TC_ACT_REDIRECT, so the packet fell through the
switch and was enqueued normally instead of being redirected.
This has been broken since bpf_redirect() was introduced for TC in
commit 27b29f63058d ("bpf: add bpf_redirect() helper"). We got lucky
for a long time because bpf_net_context was a per-CPU variable that
was always available.
commit 401cb7dae813 ("net: Reference bpf_redirect_info via task_struct
on PREEMPT_RT.") turned bpf_net_context into a task_struct member that
is only set up by explicit callers. Without a caller setting it up,
bpf_redirect() itself crashes with a NULL pointer dereference in
bpf_net_ctx_get_ri(). However, even with bpf_net_context available,
TC_ACT_REDIRECT from qdisc filter chains cannot be honored without
adding skb_do_redirect() calls to every qdisc classify function, which
would require changes across net/sched/. Isolate it to ebpf core where
it belongs.
Instead, add a tcf_classify_qdisc() inline helper in pkt_cls.h, as a
wrapper around tcf_classify() for use by qdisc classify functions and
tcf_qevent_handle(). When the classify verdict is TC_ACT_REDIRECT,
the wrapper converts it to TC_ACT_SHOT, dropping the packet rather
than letting it continue silently. Dropping is preferred over
letting the packet through because the user immediately sees packet
loss. Silently passing the packet through would hide the problem and
leave the user wondering why their redirect is not working.
The clsact fast path, tc_run() continues to call tcf_classify() directly
and is unaffected: TC_ACT_REDIRECT is returned as-is and handled by
sch_handle_egress/ingress() calling skb_do_redirect() as before.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/pkt_cls.h",
"net/sched/cls_api.c",
"net/sched/sch_cake.c",
"net/sched/sch_drr.c",
"net/sched/sch_dualpi2.c",
"net/sched/sch_ets.c",
"net/sched/sch_fq_codel.c",
"net/sched/sch_fq_pie.c",
"net/sched/sch_hfsc.c",
"net/sched/sch_htb.c",
"net/sched/sch_multiq.c",
"net/sched/sch_prio.c",
"net/sched/sch_qfq.c",
"net/sched/sch_sfb.c",
"net/sched/sch_sfq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "98ca831065c4d20baf97dc9e232777dc47a2b923",
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"versionType": "git"
},
{
"lessThan": "636658e50b5c6a2c93413a9fa6d9da768dbfdaf2",
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"versionType": "git"
},
{
"lessThan": "9cbad9c8125f5fe377c0800ab08f7196eab44456",
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"versionType": "git"
},
{
"lessThan": "c8fd74445e86f88096d2f6cf0f9e4d54d8ed1781",
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"versionType": "git"
},
{
"lessThan": "ec48b3be2c8595dd290be883dbd4fb8b2f9f5d5e",
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/pkt_cls.h",
"net/sched/cls_api.c",
"net/sched/sch_cake.c",
"net/sched/sch_drr.c",
"net/sched/sch_dualpi2.c",
"net/sched/sch_ets.c",
"net/sched/sch_fq_codel.c",
"net/sched/sch_fq_pie.c",
"net/sched/sch_hfsc.c",
"net/sched/sch_htb.c",
"net/sched/sch_multiq.c",
"net/sched/sch_prio.c",
"net/sched/sch_qfq.c",
"net/sched/sch_sfb.c",
"net/sched/sch_sfq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: Handle TC_ACT_REDIRECT from qdisc filter chains\n\nWhen a TC filter attached to a qdisc filter chain returns\nTC_ACT_REDIRECT (ex: via an eBPF program calling bpf_redirect() or an\nact_bpf action), the redirect was silently lost i.e no qdisc classify\nfunction handled TC_ACT_REDIRECT, so the packet fell through the\nswitch and was enqueued normally instead of being redirected.\n\nThis has been broken since bpf_redirect() was introduced for TC in\ncommit 27b29f63058d (\"bpf: add bpf_redirect() helper\"). We got lucky\nfor a long time because bpf_net_context was a per-CPU variable that\nwas always available.\n\ncommit 401cb7dae813 (\"net: Reference bpf_redirect_info via task_struct\non PREEMPT_RT.\") turned bpf_net_context into a task_struct member that\nis only set up by explicit callers. Without a caller setting it up,\nbpf_redirect() itself crashes with a NULL pointer dereference in\nbpf_net_ctx_get_ri(). However, even with bpf_net_context available,\nTC_ACT_REDIRECT from qdisc filter chains cannot be honored without\nadding skb_do_redirect() calls to every qdisc classify function, which\nwould require changes across net/sched/. Isolate it to ebpf core where\nit belongs.\n\nInstead, add a tcf_classify_qdisc() inline helper in pkt_cls.h, as a\nwrapper around tcf_classify() for use by qdisc classify functions and\ntcf_qevent_handle(). When the classify verdict is TC_ACT_REDIRECT,\nthe wrapper converts it to TC_ACT_SHOT, dropping the packet rather\nthan letting it continue silently. Dropping is preferred over\nletting the packet through because the user immediately sees packet\nloss. Silently passing the packet through would hide the problem and\nleave the user wondering why their redirect is not working.\n\nThe clsact fast path, tc_run() continues to call tcf_classify() directly\nand is unaffected: TC_ACT_REDIRECT is returned as-is and handled by\nsch_handle_egress/ingress() calling skb_do_redirect() as before."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:10.501Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/98ca831065c4d20baf97dc9e232777dc47a2b923"
},
{
"url": "https://git.kernel.org/stable/c/636658e50b5c6a2c93413a9fa6d9da768dbfdaf2"
},
{
"url": "https://git.kernel.org/stable/c/9cbad9c8125f5fe377c0800ab08f7196eab44456"
},
{
"url": "https://git.kernel.org/stable/c/c8fd74445e86f88096d2f6cf0f9e4d54d8ed1781"
},
{
"url": "https://git.kernel.org/stable/c/ec48b3be2c8595dd290be883dbd4fb8b2f9f5d5e"
}
],
"title": "net/sched: Handle TC_ACT_REDIRECT from qdisc filter chains",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68441",
"datePublished": "2026-08-12T00:07:30.669Z",
"dateReserved": "2026-07-30T09:28:09.394Z",
"dateUpdated": "2026-10-21T12:44:10.501Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80716 (GCVE-0-2026-80716)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: pcm: wake linked drain waiters on unlink
snd_pcm_drain() on a linked stream parks an on-stack wait entry on the
drained peer's runtime->sleep, and after schedule_timeout() removes it
only if that peer is still found in the caller's group. If group
membership changes during the wait and the sleep ends by signal or
timeout (so autoremove_wake_function() does not run), finish_wait() is
skipped and snd_pcm_drain() returns with the entry still queued on that
stream's sleep list; a later wake_up() then walks a freed stack frame.
This is reachable by unlinking either the drained or the draining stream.
Unlike the close path (snd_pcm_drop() -> snd_pcm_post_stop()),
snd_pcm_unlink() never wakes the sleep queues. Wake every group member
under the group lock before the membership change, so a linked drainer is
released and drops its entry while the streams are still grouped.
The window was opened when snd_pcm_link_rwsem stopped being held across
the wait and the removal became conditional on group membership (see
Fixes). The later switch to finish_wait() kept that conditional removal,
so the signal/timeout case remained.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80716",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:20:45.758887Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:34.951Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/pcm_native.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c172e4c53321ee6429955295ea133bc3597a3ca9",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "3035bb784cea3f338934f5042dd3f35225a51b2e",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "1c1b7e8e545ce65e40f65b55c432765e058ea98f",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "e8b784a3f4fba3ea9c4d05138ecfa784a069627f",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "e8315330e4ec09c0cac625515400e13d0ee22b81",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "2940cc3cf43c72126b74ee6376314c195382023a",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "db09bc4ab19ce548a078240d2374792523953500",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "f495b6c4c8594122918552c9be2b51eb71647cd9",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/pcm_native.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: wake linked drain waiters on unlink\n\nsnd_pcm_drain() on a linked stream parks an on-stack wait entry on the\ndrained peer\u0027s runtime-\u003esleep, and after schedule_timeout() removes it\nonly if that peer is still found in the caller\u0027s group. If group\nmembership changes during the wait and the sleep ends by signal or\ntimeout (so autoremove_wake_function() does not run), finish_wait() is\nskipped and snd_pcm_drain() returns with the entry still queued on that\nstream\u0027s sleep list; a later wake_up() then walks a freed stack frame.\nThis is reachable by unlinking either the drained or the draining stream.\n\nUnlike the close path (snd_pcm_drop() -\u003e snd_pcm_post_stop()),\nsnd_pcm_unlink() never wakes the sleep queues. Wake every group member\nunder the group lock before the membership change, so a linked drainer is\nreleased and drops its entry while the streams are still grouped.\n\nThe window was opened when snd_pcm_link_rwsem stopped being held across\nthe wait and the removal became conditional on group membership (see\nFixes). The later switch to finish_wait() kept that conditional removal,\nso the signal/timeout case remained."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is triggered only via local ALSA PCM character devices (/dev/snd/pcmC*D*) through open/ioctl syscalls (SNDRV_PCM_IOCTL_LINK, UNLINK, DRAIN); snd_pcm_kernel_ioctl does not expose LINK/UNLINK, and there is no network-facing path to this code.\nAC:L - This is a race, but the attacker controls both sides by opening two PCM fds, linking them, blocking one thread in DRAIN, and concurrently UNLINKing or closing the peer; sending a signal or waiting for timeout forces the path where finish_wait() is skipped.\nPR:L - Exploitation requires only a local process able to open and ioctl ALSA PCM nodes (typical desktop/mobile users via the audio group, session ACLs, or equivalent device permissions); no real root, CAP_SYS_ADMIN, or init-namespace privileges are needed.\nUI:N - The attacker drives the entire sequence programmatically with their own PCM file descriptors and threads; no victim interaction such as opening a file, mounting a filesystem, or plugging in hardware is required.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same security authority; this is not a VM escape, IOMMU/DMA boundary bypass, or other cross-scope violation.\nC:H - The orphaned wait_queue_entry_t remains on the sleep list after snd_pcm_drain() returns, and a later wake_up() dereferences a freed on-stack wait entry (use-after-free), which can expose kernel stack/memory contents under attacker-controlled timing.\nI:H - Corrupting the wait-queue list with a stale stack-backed entry gives kernel memory corruption primitives; wake_up() invokes the entry\u0027s function pointer from freed stack memory, enabling plausible control-flow hijack and arbitrary write via further heap/stack grooming.\nA:H - A subsequent wake_up() on the poisoned sleep queue walks a freed stack frame and can oops or panic the kernel; even without full exploitation, the UAF reliably threatens system availability on multimedia desktops, kiosks, and embedded devices with ALSA access."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:32.041Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c172e4c53321ee6429955295ea133bc3597a3ca9"
},
{
"url": "https://git.kernel.org/stable/c/3035bb784cea3f338934f5042dd3f35225a51b2e"
},
{
"url": "https://git.kernel.org/stable/c/1c1b7e8e545ce65e40f65b55c432765e058ea98f"
},
{
"url": "https://git.kernel.org/stable/c/e8b784a3f4fba3ea9c4d05138ecfa784a069627f"
},
{
"url": "https://git.kernel.org/stable/c/e8315330e4ec09c0cac625515400e13d0ee22b81"
},
{
"url": "https://git.kernel.org/stable/c/2940cc3cf43c72126b74ee6376314c195382023a"
},
{
"url": "https://git.kernel.org/stable/c/db09bc4ab19ce548a078240d2374792523953500"
},
{
"url": "https://git.kernel.org/stable/c/f495b6c4c8594122918552c9be2b51eb71647cd9"
}
],
"title": "ALSA: pcm: wake linked drain waiters on unlink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80716",
"datePublished": "2026-08-28T06:53:14.286Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-10-16T19:26:34.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74467 (GCVE-0-2026-74467)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/qeth: Check CAP_NET_ADMIN for private ioctls
Gate the SIOCDEVPRIVATE ioctl commands SIOC_QETH_ADP_SET_SNMP_CONTROL,
SIOC_QETH_GET_CARD_TYPE and SIOC_QETH_QUERY_OAT with CAP_NET_ADMIN
capable check to ensure unprivileged users cannot invoke them.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 Version: 18787eeebd7129ecf4960876d24f349682207783 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74467",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:09.912471Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:47.339Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/net/qeth_core_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8fb69547924bbb3d7c900a0d7d137a7234db3f5f",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "3ea5210db058347481c93849786982f874f7be2d",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "4e48168825818bf4a13c743582227d15f1d30d04",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "b40c74262f7e1e601221cebccdbdb2b392ff9976",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "bd63c7879eaa87f1958f7ee027813356fcd9ff11",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "93a0a846ec59a88e0c402878a15357a5ce430eb4",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
},
{
"lessThan": "d211028bac1bd0fff0026bfa2a8328e5b78cd0e6",
"status": "affected",
"version": "18787eeebd7129ecf4960876d24f349682207783",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/net/qeth_core_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/qeth: Check CAP_NET_ADMIN for private ioctls\n\nGate the SIOCDEVPRIVATE ioctl commands SIOC_QETH_ADP_SET_SNMP_CONTROL,\nSIOC_QETH_GET_CARD_TYPE and SIOC_QETH_QUERY_OAT with CAP_NET_ADMIN\ncapable check to ensure unprivileged users cannot invoke them."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local ioctl(2) on a qeth network interface via socket(SIOCDEVPRIVATE+5..+7); the path is sock_ioctl() -\u003e dev_ioctl() -\u003e dev_siocdevprivate() -\u003e qeth_siocdevprivate() with no remote packet or network protocol entry point.\nAC:L - Any local user who can open an AF_INET socket and name a qeth netdev can invoke these ioctls deterministically; no races, special memory layout, or rare kernel configuration is required beyond s390 hardware with qeth present.\nPR:L - The bug is missing CAP_NET_ADMIN in qeth_siocdevprivate(); generic SIOCDEVPRIVATE handling in dev_ioctl() performs no capability check, so any unprivileged local account on an IBM Z/LinuxONE LPAR can reach these handlers without root or namespace-granted admin rights.\nUI:N - Exploitation needs only the attacker opening a socket and issuing ioctl against a qeth interface; no victim login, mount, or other interactive action is required on a shared mainframe guest.\nS:U - Impact stays within kernel/driver control of the local OSA/QDIO adapter and does not cross a VM, container, or IOMMU security boundary; this is standard local privilege and hardware-management misuse, not a guest-to-host escape.\nC:H - SIOC_QETH_QUERY_OAT and SIOC_QETH_ADP_SET_SNMP_CONTROL copy OSA Express firmware response buffers (link attributes, adapter operational data, SNMP MIB objects, card-type details) to unprivileged userspace, disclosing network hardware management information normally restricted to administrators.\nI:H - SIOC_QETH_ADP_SET_SNMP_CONTROL accepts attacker-controlled qeth_snmp_cmd request/data and forwards IPA_SETADP_SET_SNMP_CONTROL commands to OSA firmware, letting unprivileged users alter adapter SNMP/management state on production IBM Z network interfaces.\nA:H - Handlers honor attacker-chosen buffer sizes (kzalloc(udata_len) in qeth_snmp_command and vzalloc(buffer_len) in qeth_query_oat_command without upper bounds), enabling repeated large allocations for kernel memory exhaustion/OOM, and malformed IPA commands can disrupt adapter operation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:10.278Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8fb69547924bbb3d7c900a0d7d137a7234db3f5f"
},
{
"url": "https://git.kernel.org/stable/c/3ea5210db058347481c93849786982f874f7be2d"
},
{
"url": "https://git.kernel.org/stable/c/4e48168825818bf4a13c743582227d15f1d30d04"
},
{
"url": "https://git.kernel.org/stable/c/b40c74262f7e1e601221cebccdbdb2b392ff9976"
},
{
"url": "https://git.kernel.org/stable/c/bd63c7879eaa87f1958f7ee027813356fcd9ff11"
},
{
"url": "https://git.kernel.org/stable/c/93a0a846ec59a88e0c402878a15357a5ce430eb4"
},
{
"url": "https://git.kernel.org/stable/c/d211028bac1bd0fff0026bfa2a8328e5b78cd0e6"
}
],
"title": "s390/qeth: Check CAP_NET_ADMIN for private ioctls",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74467",
"datePublished": "2026-08-15T12:27:05.635Z",
"dateReserved": "2026-08-15T05:44:03.902Z",
"dateUpdated": "2026-10-16T19:05:47.339Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74382 (GCVE-0-2026-74382)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_bpf: prevent unbounded recursion in offload rollback
Quan Sun reported [1] a stack overflow in cls_bpf_offload_cmd().
Reproducer on netdevsim: add a skip_sw cls_bpf filter, set the
bpf_tc_accept debugfs knob to 0, then `tc filter replace`. The replace
calls tc_setup_cb_replace() which fails. cls_bpf_offload_cmd() then
swaps prog/oldprog and recursively calls itself to roll back. But
bpf_tc_accept=0 makes the rollback fail too, which triggers yet another
rollback frame with the same arguments, and so on until the stack is
exhausted.
bpf_tc_accept is just a convenient knob for the reproducer. Any driver
whose tc_setup_cb_replace() fails twice in a row can hit the same loop,
so this is not a netdevsim-only issue.
Two ways to fix it:
1) Have the rollback call tc_setup_cb_add() on oldprog instead of
re-entering cls_bpf_offload_cmd().
2) Mark the rollback frame with a flag and skip a second-level
rollback from inside it.
Go with (2). It is the smaller change and keeps the original behaviour:
the rollback still goes through tc_setup_cb_replace(), so the driver
gets one real chance to restore its state. If that attempt also fails,
we just return the original error instead of recursing.
[1]: https://lore.kernel.org/bpf/ce5a6005-3c5e-4696-9e05-eba9461dc860@std.uestc.edu.cn/T/#u
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 Version: 102740bd9436a3a6ba129af3a48271d794009fa5 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/cls_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a018f208ab7512380bd4cf670064d48cba00a1b1",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "33373e1f378a501bc51aa73312f74295c84e3101",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "e2d3b7bab3748c811dc5750ce9a8d62bc7f90ed7",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "4a76953c3ed043797e81529b9395e9ca6f4c7609",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "1387f252a242a51bfbb6eace29c8f8db21b457da",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "10753da2d659dd425a6e620f47f86852d604f67f",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "3fa6fb5d771c992ebedbfa7331c6bcc6f33f89b7",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
},
{
"lessThan": "27db54b90bcc7c37867fe664107fa25ea6a116e4",
"status": "affected",
"version": "102740bd9436a3a6ba129af3a48271d794009fa5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/cls_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.15"
},
{
"lessThan": "4.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_bpf: prevent unbounded recursion in offload rollback\n\nQuan Sun reported [1] a stack overflow in cls_bpf_offload_cmd().\n\nReproducer on netdevsim: add a skip_sw cls_bpf filter, set the\nbpf_tc_accept debugfs knob to 0, then `tc filter replace`. The replace\ncalls tc_setup_cb_replace() which fails. cls_bpf_offload_cmd() then\nswaps prog/oldprog and recursively calls itself to roll back. But\nbpf_tc_accept=0 makes the rollback fail too, which triggers yet another\nrollback frame with the same arguments, and so on until the stack is\nexhausted.\n\nbpf_tc_accept is just a convenient knob for the reproducer. Any driver\nwhose tc_setup_cb_replace() fails twice in a row can hit the same loop,\nso this is not a netdevsim-only issue.\n\nTwo ways to fix it:\n\n 1) Have the rollback call tc_setup_cb_add() on oldprog instead of\n re-entering cls_bpf_offload_cmd().\n 2) Mark the rollback frame with a flag and skip a second-level\n rollback from inside it.\n\nGo with (2). It is the smaller change and keeps the original behaviour:\nthe rollback still goes through tc_setup_cb_replace(), so the driver\ngets one real chance to restore its state. If that attempt also fails,\nwe just return the original error instead of recursing.\n\n[1]: https://lore.kernel.org/bpf/ce5a6005-3c5e-4696-9e05-eba9461dc860@std.uestc.edu.cn/T/#u"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:18:20.179Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a018f208ab7512380bd4cf670064d48cba00a1b1"
},
{
"url": "https://git.kernel.org/stable/c/33373e1f378a501bc51aa73312f74295c84e3101"
},
{
"url": "https://git.kernel.org/stable/c/e2d3b7bab3748c811dc5750ce9a8d62bc7f90ed7"
},
{
"url": "https://git.kernel.org/stable/c/4a76953c3ed043797e81529b9395e9ca6f4c7609"
},
{
"url": "https://git.kernel.org/stable/c/1387f252a242a51bfbb6eace29c8f8db21b457da"
},
{
"url": "https://git.kernel.org/stable/c/10753da2d659dd425a6e620f47f86852d604f67f"
},
{
"url": "https://git.kernel.org/stable/c/3fa6fb5d771c992ebedbfa7331c6bcc6f33f89b7"
},
{
"url": "https://git.kernel.org/stable/c/27db54b90bcc7c37867fe664107fa25ea6a116e4"
}
],
"title": "net/sched: cls_bpf: prevent unbounded recursion in offload rollback",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74382",
"datePublished": "2026-08-15T05:58:59.106Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-08-17T05:18:20.179Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74533 (GCVE-0-2026-74533)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: fix race of kfree vs kref_get_unless_zero
hci_conn::iso_data is accessed and modified without lock or RCU.
This leads to a race
[Task hdev->workqueue] [Task 2]
iso_recv iso_conn_put(conn)
conn = LOAD hcon->iso_data iso_conn_free(conn)
iso_conn_hold_unless_zero(conn) hcon->iso_data = NULL
kfree(conn)
kref_get_unless_zero(&conn->ref) /* UAF */
and also to races in iso_conn_add() vs. iso_conn_free().
Fix by adding spinlock hci_conn::proto_lock and using it to guard
hci_conn::iso_data.
References
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74533",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:22.174830Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:53.676Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/bluetooth/hci_core.h",
"net/bluetooth/hci_conn.c",
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "08ac98f18c8d24cc037858dd6fba2670155e4e84",
"status": "affected",
"version": "a58d0f5dac322e16cc75334d000666512341bde5",
"versionType": "git"
},
{
"lessThan": "876a3e94c70d0859d1dad1c986112d4f0d99eba8",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "af24e338bf5dafb80f42baa9a0b9e9b57b1c5d9c",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"status": "affected",
"version": "f53e7489273dc2bb307bf50f319b3762d45534f0",
"versionType": "git"
},
{
"lessThan": "6.12.114",
"status": "affected",
"version": "6.12.2",
"versionType": "semver"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/bluetooth/hci_core.h",
"net/bluetooth/hci_conn.c",
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.12.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: fix race of kfree vs kref_get_unless_zero\n\nhci_conn::iso_data is accessed and modified without lock or RCU.\nThis leads to a race\n\n [Task hdev-\u003eworkqueue] \t[Task 2]\n iso_recv iso_conn_put(conn)\n conn = LOAD hcon-\u003eiso_data iso_conn_free(conn)\n iso_conn_hold_unless_zero(conn) hcon-\u003eiso_data = NULL\n kfree(conn)\n kref_get_unless_zero(\u0026conn-\u003eref) /* UAF */\n\nand also to races in iso_conn_add() vs. iso_conn_free().\n\nFix by adding spinlock hci_conn::proto_lock and using it to guard\nhci_conn::iso_data."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is in Bluetooth ISO receive handling (iso_recv in net/bluetooth/iso.c), reached when HCI processes ISO data packets from an adjacent BLE CIS/BIS/LE Audio peer via hci_recv_frame and hdev-\u003eworkqueue; per kernel guidance Bluetooth radio reachability is Adjacent.\nAC:L - The race is between iso_recv loading hcon-\u003eiso_data and iso_conn_free kfree-ing the same iso_conn; an attacker controls both sides by concurrently sending ISO HCI data while disconnecting or closing the ISO socket, without relying on uncontrollable memory layout.\nPR:N - BTPROTO_ISO sockets require no CAP_NET_ADMIN or CAP_NET_RAW; an unprivileged local process can open and tear down ISO connections, and an adjacent Bluetooth peer can drive iso_recv and hci disconnect events without any credentials on the victim host.\nUI:N - No victim interaction is needed during exploitation of an active ISO session; a remote peer can race incoming ISO packets against link teardown, and a local attacker can close its own ISO socket while receiving data without opening files or mounts.\nS:U - The UAF corrupts kernel heap memory in the Bluetooth ISO subsystem on the host, enabling standard local privilege escalation within the kernel boundary rather than crossing VM, container, or IOMMU isolation.\nC:H - iso_conn_hold_unless_zero calls kref_get_unless_zero on a freed iso_conn slab object after iso_conn_free kfree, and iso_recv then dereferences conn fields, a classic use-after-free enabling arbitrary kernel memory disclosure.\nI:H - The UAF on iso_conn (kref, spinlock, sk_buff and socket pointers) permits heap spraying and corruption of conn-\u003erx_skb/rx_len, providing primitives chainable to arbitrary kernel writes and control-flow hijacking.\nA:H - The use-after-free in iso_conn_hold_unless_zero during concurrent iso_recv and iso_conn_put reliably causes kernel oops or panic on freed slab memory, meeting High availability impact per kernel CVSS guidance for UAF crashes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:49.462Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/08ac98f18c8d24cc037858dd6fba2670155e4e84"
},
{
"url": "https://git.kernel.org/stable/c/876a3e94c70d0859d1dad1c986112d4f0d99eba8"
},
{
"url": "https://git.kernel.org/stable/c/af24e338bf5dafb80f42baa9a0b9e9b57b1c5d9c"
}
],
"title": "Bluetooth: ISO: fix race of kfree vs kref_get_unless_zero",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74533",
"datePublished": "2026-08-15T12:27:47.219Z",
"dateReserved": "2026-08-15T05:44:03.912Z",
"dateUpdated": "2026-10-21T12:45:49.462Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74600 (GCVE-0-2026-74600)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/page_table_check: skip special zero mappings
page_table_check_set() and page_table_check_clear() account mappings based
on PageAnon(). Shared zero-page PTEs and huge zero PMDs are special
mappings, but page_table_check can still account them as file-backed
pages.
An unprivileged process can populate enough zero mappings to overflow
file_map_count and hit the existing BUG_ON(). The PTE path can do this
with the shared zero page, and the PMD path can do the same with huge zero
mappings.
Skip special zero mappings in the user page-table accounting paths. Keep
the PTE-side pte_special() check, and identify huge zero PMDs from the
mapped folio instead of pmd_special(). That covers architectures where
pmd_special() is a no-op without adding huge_zero_pfn checks to the
generic counter helpers.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/page_table_check.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f6cf9832e677ec07b1675782bd2bad472cfd3cdc",
"status": "affected",
"version": "df4e817b710809425d899340dbfa8504a3ca4ba5",
"versionType": "git"
},
{
"lessThan": "51e16e5adadaa78b56f31a1cb02eb7267787625e",
"status": "affected",
"version": "df4e817b710809425d899340dbfa8504a3ca4ba5",
"versionType": "git"
},
{
"lessThan": "7755be923e325dc300f4b0c3e1ad7e91b28b3cb9",
"status": "affected",
"version": "df4e817b710809425d899340dbfa8504a3ca4ba5",
"versionType": "git"
},
{
"lessThan": "b726eb3c94d23e09da0e0f46b0fa09fb2b5d99cc",
"status": "affected",
"version": "df4e817b710809425d899340dbfa8504a3ca4ba5",
"versionType": "git"
},
{
"lessThan": "8db4bab826ccc9ec10fa41736a48031cd338d392",
"status": "affected",
"version": "df4e817b710809425d899340dbfa8504a3ca4ba5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/page_table_check.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/page_table_check: skip special zero mappings\n\npage_table_check_set() and page_table_check_clear() account mappings based\non PageAnon(). Shared zero-page PTEs and huge zero PMDs are special\nmappings, but page_table_check can still account them as file-backed\npages.\n\nAn unprivileged process can populate enough zero mappings to overflow\nfile_map_count and hit the existing BUG_ON(). The PTE path can do this\nwith the shared zero page, and the PMD path can do the same with huge zero\nmappings.\n\nSkip special zero mappings in the user page-table accounting paths. Keep\nthe PTE-side pte_special() check, and identify huge zero PMDs from the\nmapped folio instead of pmd_special(). That covers architectures where\npmd_special() is a no-op without adding huge_zero_pfn checks to the\ngeneric counter helpers."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:02.782Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f6cf9832e677ec07b1675782bd2bad472cfd3cdc"
},
{
"url": "https://git.kernel.org/stable/c/51e16e5adadaa78b56f31a1cb02eb7267787625e"
},
{
"url": "https://git.kernel.org/stable/c/7755be923e325dc300f4b0c3e1ad7e91b28b3cb9"
},
{
"url": "https://git.kernel.org/stable/c/b726eb3c94d23e09da0e0f46b0fa09fb2b5d99cc"
},
{
"url": "https://git.kernel.org/stable/c/8db4bab826ccc9ec10fa41736a48031cd338d392"
}
],
"title": "mm/page_table_check: skip special zero mappings",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74600",
"datePublished": "2026-08-22T15:31:49.334Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-21T12:46:02.782Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74743 (GCVE-0-2026-74743)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
macvlan: inherit needed_headroom and needed_tailroom from lowerdev
macvlan devices inherit hard_header_len from lowerdev during macvlan_init(),
but leave needed_headroom and needed_tailroom set to 0.
When the underlying lowerdev requires extra headroom or tailroom for
headers/trailers (e.g. macsec, ipsec, wireguard, tunnels, or veth with rx
headroom), upper layers calculating packet headroom and tailroom fail to
reserve sufficient space.
This can result in reallocation overhead, skb headroom underflows, or KASAN
slab-use-after-free crashes when dev_hard_header() / macvlan_hard_header()
prepends header data or when lower devices append tailroom.
Fix this by:
1. Inheriting needed_headroom and needed_tailroom from lowerdev in macvlan_init().
2. Propagating needed_headroom and needed_tailroom updates to attached macvlans
in macvlan_device_event() when receiving NETDEV_FEAT_CHANGE events.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 Version: b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74743",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:16:04.634904Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:13.009Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/macvlan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c2ef3f134b069c54b9cc95cce1a16c38c4939336",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "7b0eb3e0f363ca79a3af9efd2e87c6258f11da2b",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "8cd90e850e434577bf6774778657d26d6995e53f",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "28afc87bd8da0b3348bbbd834c8a89e83712cf5e",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "8f6a05dbac05725e0786701eb04778c5bdbe4eaa",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "96fa90b74385b7f2b0d97251dd43d5ee6ca44668",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "bc9a00fb78e32bccc39d763bfd13a450705bac5d",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
},
{
"lessThan": "cef51860becd9700217c81732ca1eb1ea6ed6fe1",
"status": "affected",
"version": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/macvlan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.23"
},
{
"lessThan": "2.6.23",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "2.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.23",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmacvlan: inherit needed_headroom and needed_tailroom from lowerdev\n\nmacvlan devices inherit hard_header_len from lowerdev during macvlan_init(),\nbut leave needed_headroom and needed_tailroom set to 0.\n\nWhen the underlying lowerdev requires extra headroom or tailroom for\nheaders/trailers (e.g. macsec, ipsec, wireguard, tunnels, or veth with rx\nheadroom), upper layers calculating packet headroom and tailroom fail to\nreserve sufficient space.\n\nThis can result in reallocation overhead, skb headroom underflows, or KASAN\nslab-use-after-free crashes when dev_hard_header() / macvlan_hard_header()\nprepends header data or when lower devices append tailroom.\n\nFix this by:\n1. Inheriting needed_headroom and needed_tailroom from lowerdev in macvlan_init().\n2. Propagating needed_headroom and needed_tailroom updates to attached macvlans\n in macvlan_device_event() when receiving NETDEV_FEAT_CHANGE events."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug fires on the macvlan transmit path (ip_finish_output2/neigh_resolve_output/macvlan_hard_header) when kernel-generated replies or forwarded traffic egress a macvlan netdev; remote peers trigger this by sending TCP/UDP/ICMP to an address on a pre-configured macvlan interface.\nAC:L - Once macvlan is stacked on a lowerdev with nonzero needed_headroom (WireGuard, MACsec, IPsec, tunnels, veth RX headroom), ordinary packets reliably hit under-reserved skb headroom/tailroom during dev_hard_header() without races or uncontrollable timing.\nPR:N - A remote attacker needs no local account or capabilities; sending routable traffic to a macvlan address suffices. Administrative macvlan setup is environmental (like other netdev CVEs), not an attacker privilege requirement.\nUI:N - Exploitation requires only normal network delivery to a reachable macvlan address; no victim must open files, mount filesystems, or perform any interactive action beyond existing connectivity.\nS:U - Impact is kernel skb heap corruption, slab-use-after-free, or panic within the host network stack; it does not cross VM, IOMMU, or container security boundaries into a separate authority.\nC:H - The fix commit documents KASAN slab-use-after-free from skb headroom underflow during header prepending; this class of kernel heap corruption is exploitable for arbitrary memory disclosure beyond a bounded leak.\nI:H - Insufficient headroom causes skb_push underflows and slab UAF during pskb_expand_head/reallocation, providing kernel heap write primitives that can be leveraged for control-flow hijacking and privilege escalation.\nA:H - The failure mode includes skb_under_panic (kernel BUG/panic) and KASAN-detected slab UAF crashes, causing immediate host kernel denial of service on affected transmit paths."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:56:05.561Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c2ef3f134b069c54b9cc95cce1a16c38c4939336"
},
{
"url": "https://git.kernel.org/stable/c/7b0eb3e0f363ca79a3af9efd2e87c6258f11da2b"
},
{
"url": "https://git.kernel.org/stable/c/8cd90e850e434577bf6774778657d26d6995e53f"
},
{
"url": "https://git.kernel.org/stable/c/28afc87bd8da0b3348bbbd834c8a89e83712cf5e"
},
{
"url": "https://git.kernel.org/stable/c/8f6a05dbac05725e0786701eb04778c5bdbe4eaa"
},
{
"url": "https://git.kernel.org/stable/c/96fa90b74385b7f2b0d97251dd43d5ee6ca44668"
},
{
"url": "https://git.kernel.org/stable/c/bc9a00fb78e32bccc39d763bfd13a450705bac5d"
},
{
"url": "https://git.kernel.org/stable/c/cef51860becd9700217c81732ca1eb1ea6ed6fe1"
}
],
"title": "macvlan: inherit needed_headroom and needed_tailroom from lowerdev",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74743",
"datePublished": "2026-08-26T14:36:54.175Z",
"dateReserved": "2026-08-15T05:44:03.930Z",
"dateUpdated": "2026-10-16T19:16:13.009Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74739 (GCVE-0-2026-74739)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_u32: skip hash tables in u32_bind_class()
u32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode
through the walker callback. u32_bind_class() unconditionally casts the
passed fh to tc_u_knode and accesses &n->res, so when fh is actually a
tc_u_hnode, which has no tcf_result member, this results in a
slab-out-of-bounds read of res->classid in tc_cls_bind_class().
The issue can be reproduced with the following commands:
tc qdisc add dev lo root handle 1: hfsc
tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit
tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1
tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit
Fix this by skipping hash tables via the TC_U32_KEY(handle) check.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 Version: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74739",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:59.810780Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:12.856Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/cls_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ec5f3005586a785689fd568361b0c5925cb1548b",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
},
{
"lessThan": "19d114b93c94bdef70496f26685c2a6b242f41b3",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
},
{
"lessThan": "594a064d603202b9ee21e07679d854e5c1750cc4",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
},
{
"lessThan": "31f26a95eeee926946809ac456c61a3217936a62",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
},
{
"lessThan": "e71f8e9ed6f311410b14741f6012afe01869c0fa",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
},
{
"lessThan": "6d3724e616faf952c3adcf8414fc21a828ef3709",
"status": "affected",
"version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/cls_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_u32: skip hash tables in u32_bind_class()\n\nu32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode\nthrough the walker callback. u32_bind_class() unconditionally casts the\npassed fh to tc_u_knode and accesses \u0026n-\u003eres, so when fh is actually a\ntc_u_hnode, which has no tcf_result member, this results in a\nslab-out-of-bounds read of res-\u003eclassid in tc_cls_bind_class().\n\nThe issue can be reproduced with the following commands:\n\n tc qdisc add dev lo root handle 1: hfsc\n tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit\n tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1\n tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit\n\nFix this by skipping hash tables via the TC_U32_KEY(handle) check."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via RTM_NEWTCLASS rtnetlink (tc class add) in __tc_ctl_tclass(), which calls tc_bind_tclass() to walk u32 filters; per kernel CNA guidance, tc/qdisc/netlink classifier configuration is Local, not remotely reachable by packets.\nAC:L - The reproducer is deterministic: install a u32 filter with flowid, then add another tc class so reverse binding walks hash nodes; the attacker controls every netlink step and needs no race or uncontrollable victim state.\nPR:L - RTM_NEWTCLASS requires CAP_NET_ADMIN enforced by netlink_net_capable() in rtnetlink; this capability is obtainable by unprivileged users in a user+network namespace (unshare -Urn) or containers granted NET_ADMIN, not init-namespace root only.\nUI:N - Exploitation requires only the attacker\u0027s own tc/netlink operations (qdisc, filter, class add) inside a namespace they control; no separate victim action such as opening files or mounting media is needed.\nS:U - Impact is kernel slab memory read and possible adjacent-slab corruption during tc class binding within the same host kernel; this is standard local kernel compromise, not VM escape, IOMMU bypass, or another cross-authority boundary.\nC:H - u32_bind_class() casts tc_u_hnode to tc_u_knode and reads \u0026n-\u003eres.classid past the hnode allocation in tc_cls_bind_class(); per CNA guidance, slab out-of-bounds reads of kernel memory warrant High confidentiality impact.\nI:H - If the out-of-bounds classid read matches the newly created class, tc_cls_bind_class() calls __tcf_bind_filter(), which xchg-writes to \u0026r-\u003eclass at the bogus offset, enabling adjacent slab corruption and potential control-flow hijack per memory-corruption guidance.\nA:H - The slab out-of-bounds access is reported as a KASAN violation on trigger, and mistaken reverse binding can corrupt adjacent kernel objects leading to oops/panic during later tc operations; per CNA guidance, kernel crashes and memory corruption score Availability High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:01:00.695Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ec5f3005586a785689fd568361b0c5925cb1548b"
},
{
"url": "https://git.kernel.org/stable/c/19d114b93c94bdef70496f26685c2a6b242f41b3"
},
{
"url": "https://git.kernel.org/stable/c/594a064d603202b9ee21e07679d854e5c1750cc4"
},
{
"url": "https://git.kernel.org/stable/c/31f26a95eeee926946809ac456c61a3217936a62"
},
{
"url": "https://git.kernel.org/stable/c/e71f8e9ed6f311410b14741f6012afe01869c0fa"
},
{
"url": "https://git.kernel.org/stable/c/6d3724e616faf952c3adcf8414fc21a828ef3709"
}
],
"title": "net/sched: cls_u32: skip hash tables in u32_bind_class()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74739",
"datePublished": "2026-08-26T14:36:51.746Z",
"dateReserved": "2026-08-15T05:44:03.930Z",
"dateUpdated": "2026-10-16T19:16:12.856Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89536 (GCVE-0-2026-89536)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: wait for in-flight client TLS handshake callback
xs_tls_handshake_sync() gives xs_tls_handshake_done() a reference to the
lower transport before submitting the handshake request. On timeout or
signal, the synchronous waiter drops that reference after calling
tls_handshake_cancel().
handshake_req_cancel() returns false when handshake_complete() has
already marked the request complete. In that case the completion callback
can still be running, so dropping the callback-owned reference in the
waiter can free the lower transport before xs_tls_handshake_done() stores
xprt_err or drops its own reference.
If cancellation loses to completion, wait until xs_tls_handshake_done()
signals handshake_done and let the callback release its reference. This
mirrors the server-side handshake lifetime handling and keeps the timeout
or signal return value unchanged.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtsock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fb43997407bc17ee39bac81ab708101312e255f5",
"status": "affected",
"version": "75eb6af7acdf566c68d61e98e67ee2f235201c02",
"versionType": "git"
},
{
"lessThan": "15431820f448e09f8029b670d5c82aa5917d4625",
"status": "affected",
"version": "75eb6af7acdf566c68d61e98e67ee2f235201c02",
"versionType": "git"
},
{
"lessThan": "1de391e8b94e31b45c19c16dbf315e294810c7de",
"status": "affected",
"version": "75eb6af7acdf566c68d61e98e67ee2f235201c02",
"versionType": "git"
},
{
"lessThan": "7fbb6d2ab0391eb8d1f1a68e6bc263ef02cea61b",
"status": "affected",
"version": "75eb6af7acdf566c68d61e98e67ee2f235201c02",
"versionType": "git"
},
{
"lessThan": "a89dd597458848b463d284b15e42a8078beeb046",
"status": "affected",
"version": "75eb6af7acdf566c68d61e98e67ee2f235201c02",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtsock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.5"
},
{
"lessThan": "6.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: wait for in-flight client TLS handshake callback\n\nxs_tls_handshake_sync() gives xs_tls_handshake_done() a reference to the\nlower transport before submitting the handshake request. On timeout or\nsignal, the synchronous waiter drops that reference after calling\ntls_handshake_cancel().\n\nhandshake_req_cancel() returns false when handshake_complete() has\nalready marked the request complete. In that case the completion callback\ncan still be running, so dropping the callback-owned reference in the\nwaiter can free the lower transport before xs_tls_handshake_done() stores\nxprt_err or drops its own reference.\n\nIf cancellation loses to completion, wait until xs_tls_handshake_done()\nsignals handshake_done and let the callback release its reference. This\nmirrors the server-side handshake lifetime handling and keeps the timeout\nor signal return value unchanged."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the SUNRPC TCP-with-TLS client handshake (xs_tls_handshake_sync), reached when a remote NFS/RPC peer completes RPC-with-TLS; a malicious server or on-path attacker with xprtsec=tls (anonymous TLS) drives handshake_complete() over the network against the client\u0027s 10s wait.\nAC:L - The attacker times TLS completion against the fixed XS_TLS_HANDSHAKE_TO window and can force repeated reconnects so tls_handshake_cancel() losing to handshake_complete() is reliably hittable, with no memory-layout guess or other condition outside attacker control.\nPR:N - No privileges on the victim host are required; a remote TLS peer only needs the client to initiate or re-establish an RPC-with-TLS connection, and the handshake runs after AUTH_TLS STARTTLS but before NFS credentials are verified.\nUI:N - No victim action is needed at attack time once an NFS xprtsec=tls/mtls mount exists, because idle disconnect or server-induced reconnect automatically re-enters xs_tcp_tls_setup_socket() and the handshake wait.\nS:U - The use-after-free corrupts kernel heap state in the SUNRPC client on the same host; impact stays within that kernel\u0027s security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - When cancel loses, the waiter still xprt_put()s the callback-owned rpc_xprt reference, so sock_xprt can be freed while xs_tls_handshake_done() writes xprt_err and the connect worker still uses lower_xprt, a heap UAF enabling arbitrary disclosure.\nI:H - Use-after-free of rpc_xprt/sock_xprt (ops pointers, wait queues, socket state) allows heap reuse for arbitrary writes and control-flow hijacking, not merely a crash.\nA:H - The extra put can destroy the transport while the handshake waiter and connect worker still touch it, producing a kernel oops/panic or a hang in xprt_destroy waiting on XPRT_LOCKED, denying NFS/RPC service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:28.030Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fb43997407bc17ee39bac81ab708101312e255f5"
},
{
"url": "https://git.kernel.org/stable/c/15431820f448e09f8029b670d5c82aa5917d4625"
},
{
"url": "https://git.kernel.org/stable/c/1de391e8b94e31b45c19c16dbf315e294810c7de"
},
{
"url": "https://git.kernel.org/stable/c/7fbb6d2ab0391eb8d1f1a68e6bc263ef02cea61b"
},
{
"url": "https://git.kernel.org/stable/c/a89dd597458848b463d284b15e42a8078beeb046"
}
],
"title": "SUNRPC: wait for in-flight client TLS handshake callback",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89536",
"datePublished": "2026-09-11T19:44:14.473Z",
"dateReserved": "2026-09-11T19:38:34.721Z",
"dateUpdated": "2026-10-19T08:48:28.030Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72459 (GCVE-0-2026-72459)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
apparmor: aa_label_alloc use aa_label_free on alloc failure
aa_label_alloc() allocates a secid before allocating or taking the label
proxy. If the later proxy step fails, the error path only freed the label
memory, leaking any resources initialized by aa_label_init().
Use aa_label_free() on the failure path so partially initialized labels
release their secid and other label resources before the backing memory is
freed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 Version: f1bd904175e8190ce14aedee37e207ab51fe3b30 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/apparmor/label.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b14fbacad77d64594228983ec20d61a224f3f491",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "b5a9da5d36162d34db0f36abb15420e295176793",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "7cb69e109610bba500e1ecb870f7988a4717208a",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "cc2192899d502e3321e60cf1e91421e7309d089c",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "bf310b044e85d4de670c94295c5d8e4c5bc5e7bc",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "ae02e603c0b39b29f3ce6fe3efe01b286af1a2a4",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "6d91479174240f39e9edea250d95fa08c678a207",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
},
{
"lessThan": "654fe7505dc6889724d4094fa64f89991afabfc3",
"status": "affected",
"version": "f1bd904175e8190ce14aedee37e207ab51fe3b30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/apparmor/label.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.13"
},
{
"lessThan": "4.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: aa_label_alloc use aa_label_free on alloc failure\n\naa_label_alloc() allocates a secid before allocating or taking the label\nproxy. If the later proxy step fails, the error path only freed the label\nmemory, leaking any resources initialized by aa_label_init().\n\nUse aa_label_free() on the failure path so partially initialized labels\nrelease their secid and other label resources before the backing memory is\nfreed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in AppArmor LSM label allocation reached only through local kernel entry points (open/read/exec, unix socket mediation, change_hat/change_profile procattr) on AppArmor-enabled systems, not via remote network packet handling.\nAC:L - Triggering proxy allocation failure after secid allocation requires memory pressure, but an attacker can reliably induce kmalloc/GFP_ATOMIC exhaustion locally (memfd, large mappings, stress) while driving aa_label_merge through routine file or socket operations.\nPR:L - Any unprivileged local process running under AppArmor (default on Ubuntu, Debian, SUSE, Android) can reach aa_label_merge/aa_label_alloc through normal permitted file access, exec domain transitions, or unix-socket mediation without real-root or CAP_MAC_ADMIN.\nUI:N - Exploitation requires no victim or administrator interaction; the attacker uses only their own credentials and syscalls to create memory pressure and invoke AppArmor label-merge paths.\nS:U - Impact is kernel memory corruption, information disclosure, and denial of service within the host kernel security domain; it does not cross a VM, container, or IOMMU security boundary by itself.\nC:H - The error path called kfree() without aa_free_secid(), leaving the global secid xarray pointing at freed aa_label memory; aa_secid_to_label()/apparmor_secid_to_secctx() then dereference attacker-influenced freed slab for arbitrary kernel memory reads.\nI:H - Orphaned secid entries retain dangling aa_label pointers whose vec/profile fields can be reclaimed and sprayed; UAF traversal of those structures is a standard path to heap control and arbitrary kernel writes or code execution.\nA:H - Dereferencing stale label/profile pointers can cause kernel oops/panic, and each successful trigger permanently leaks a secid slot until reboot, eventually exhausting the global secid table and denying all future AppArmor label creation system-wide."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:25.217Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b14fbacad77d64594228983ec20d61a224f3f491"
},
{
"url": "https://git.kernel.org/stable/c/b5a9da5d36162d34db0f36abb15420e295176793"
},
{
"url": "https://git.kernel.org/stable/c/7cb69e109610bba500e1ecb870f7988a4717208a"
},
{
"url": "https://git.kernel.org/stable/c/cc2192899d502e3321e60cf1e91421e7309d089c"
},
{
"url": "https://git.kernel.org/stable/c/bf310b044e85d4de670c94295c5d8e4c5bc5e7bc"
},
{
"url": "https://git.kernel.org/stable/c/ae02e603c0b39b29f3ce6fe3efe01b286af1a2a4"
},
{
"url": "https://git.kernel.org/stable/c/6d91479174240f39e9edea250d95fa08c678a207"
},
{
"url": "https://git.kernel.org/stable/c/654fe7505dc6889724d4094fa64f89991afabfc3"
}
],
"title": "apparmor: aa_label_alloc use aa_label_free on alloc failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72459",
"datePublished": "2026-08-15T05:57:04.794Z",
"dateReserved": "2026-08-09T03:40:39.932Z",
"dateUpdated": "2026-08-17T05:44:25.217Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90413 (GCVE-0-2026-90413)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/isert: reject login PDUs declaring more data than was received
isert_login_recv_done() records how many bytes the HCA actually placed in
the login buffer, but nothing compares that against the length the login
PDU's BHS declares. isert_rx_login_req() copies min(login_req_len,
MAX_KEY_VALUE_PAIRS) bytes into login->req_buf, and the login code then
reads the declared length back out of that buffer - for the first PDU in
iscsi_target_locate_portal(),
payload_length = ntoh24(login_req->dlength);
tmpbuf = kmemdup_nul(login->req_buf, payload_length, GFP_KERNEL);
and for the ones after it in iscsi_decode_text_input(), reached from
iscsi_target_do_login().
login->req_buf is a fixed MAX_KEY_VALUE_PAIRS (8192) byte allocation, so
an initiator that declares more than it sends reads off the end of it,
before authentication and with the length under its control:
BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80
Read of size 8193 at addr ffff8881056a8000 by task iscsi_np/167
__asan_memcpy+0x23/0x60
kmemdup_nul+0x43/0x80
iscsi_target_locate_portal+0x48d/0x1180
iscsi_target_login_thread+0x19a9/0x3350
Allocated by task 167:
__kmalloc_cache_noprof+0x158/0x370
iscsi_target_login_thread+0x971/0x3350
which belongs to the cache kmalloc-8k of size 8192
allocated 8192-byte region
Falsifying the second login PDU instead reaches the other reader, on the
same buffer:
BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80
Read of size 8193 at addr ffff888104d10000 by task kworker/1:1/50
Workqueue: isert_login_wq iscsi_target_do_login_rx
__asan_memcpy+0x23/0x60
kmemdup_nul+0x43/0x80
iscsi_decode_text_input+0xc6/0x11c0
iscsi_target_do_login+0x261/0x1470
iscsi_target_do_login_rx+0x51d/0x7d0
iscsit over TCP is not exposed: iscsit_get_login_rx() validates the
declared length with iscsi_target_check_login_request() and then reads
exactly that many bytes off the socket, so the declared length governs
how much arrives rather than how much is copied out of an already-filled
buffer. isert does not call iscsi_target_check_login_request() at all.
Reject a login PDU whose declared DataSegmentLength exceeds what was
received, in both paths that reach isert_rx_login_req():
isert_get_login_rx() for the first login PDU and isert_login_recv_done()
for the ones after it. dlength <= login_req_len is allowed because the
received count can include up to three bytes of iSCSI padding.
Once the check is in place the copy out can no longer exceed the copy in:
the posted login SGE is ISER_RX_PAYLOAD_SIZE, so login_req_len cannot
exceed MAX_KEY_VALUE_PAIRS and the min() in isert_rx_login_req() is
login_req_len.
Like the existing short-PDU check added by 29e7b925ae6d, the reject in
isert_login_recv_done() returns without completing login_req_comp, so a
malformed subsequent PDU leaves the login to be torn down by the login
timer rather than failing immediately. The first-PDU path returns an
error and fails straight away.
Reproduced on 7.2.0-rc4 with soft-RoCE (rdma_rxe) under KASAN, using an
initiator that sends the real key=value payload while declaring 8193 in
the BHS, on the first login PDU and on the second in separate runs. The
reported read size tracks the declared value exactly; 16384 and 61440
behave the same. Unpatched 3 of 3 runs report on each of the two paths,
patched 0 of 3 on both, run alternately in a single session, and a normal
login still completes on the patched build.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b1f3313e7b3e396e4985fea5c709477387e0a065",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "228aaa620fe6a7bc8b5b21dd348b4836b1760c61",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "0d9c0586af703890afe1bd0cfe641e3a3af1c32d",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "44fe800ec13386c88bd5b32bcd1deaa1e17535d5",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "71ec8bbfa4a183f1e623662f9cfbcd702e433bdb",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "c345d9d0b3eefc990bb90cf565325785aab06aab",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "48812c8103071d550d9ab4a3431be5bdc52255bc",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "2488b5b4827e5415768afc8daf097e8eb83c98df",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/isert: reject login PDUs declaring more data than was received\n\nisert_login_recv_done() records how many bytes the HCA actually placed in\nthe login buffer, but nothing compares that against the length the login\nPDU\u0027s BHS declares. isert_rx_login_req() copies min(login_req_len,\nMAX_KEY_VALUE_PAIRS) bytes into login-\u003ereq_buf, and the login code then\nreads the declared length back out of that buffer - for the first PDU in\niscsi_target_locate_portal(),\n\n\tpayload_length = ntoh24(login_req-\u003edlength);\n\ttmpbuf = kmemdup_nul(login-\u003ereq_buf, payload_length, GFP_KERNEL);\n\nand for the ones after it in iscsi_decode_text_input(), reached from\niscsi_target_do_login().\n\nlogin-\u003ereq_buf is a fixed MAX_KEY_VALUE_PAIRS (8192) byte allocation, so\nan initiator that declares more than it sends reads off the end of it,\nbefore authentication and with the length under its control:\n\n BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80\n Read of size 8193 at addr ffff8881056a8000 by task iscsi_np/167\n __asan_memcpy+0x23/0x60\n kmemdup_nul+0x43/0x80\n iscsi_target_locate_portal+0x48d/0x1180\n iscsi_target_login_thread+0x19a9/0x3350\n Allocated by task 167:\n __kmalloc_cache_noprof+0x158/0x370\n iscsi_target_login_thread+0x971/0x3350\n which belongs to the cache kmalloc-8k of size 8192\n allocated 8192-byte region\n\nFalsifying the second login PDU instead reaches the other reader, on the\nsame buffer:\n\n BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80\n Read of size 8193 at addr ffff888104d10000 by task kworker/1:1/50\n Workqueue: isert_login_wq iscsi_target_do_login_rx\n __asan_memcpy+0x23/0x60\n kmemdup_nul+0x43/0x80\n iscsi_decode_text_input+0xc6/0x11c0\n iscsi_target_do_login+0x261/0x1470\n iscsi_target_do_login_rx+0x51d/0x7d0\n\niscsit over TCP is not exposed: iscsit_get_login_rx() validates the\ndeclared length with iscsi_target_check_login_request() and then reads\nexactly that many bytes off the socket, so the declared length governs\nhow much arrives rather than how much is copied out of an already-filled\nbuffer. isert does not call iscsi_target_check_login_request() at all.\n\nReject a login PDU whose declared DataSegmentLength exceeds what was\nreceived, in both paths that reach isert_rx_login_req():\nisert_get_login_rx() for the first login PDU and isert_login_recv_done()\nfor the ones after it. dlength \u003c= login_req_len is allowed because the\nreceived count can include up to three bytes of iSCSI padding.\n\nOnce the check is in place the copy out can no longer exceed the copy in:\nthe posted login SGE is ISER_RX_PAYLOAD_SIZE, so login_req_len cannot\nexceed MAX_KEY_VALUE_PAIRS and the min() in isert_rx_login_req() is\nlogin_req_len.\n\nLike the existing short-PDU check added by 29e7b925ae6d, the reject in\nisert_login_recv_done() returns without completing login_req_comp, so a\nmalformed subsequent PDU leaves the login to be torn down by the login\ntimer rather than failing immediately. The first-PDU path returns an\nerror and fails straight away.\n\nReproduced on 7.2.0-rc4 with soft-RoCE (rdma_rxe) under KASAN, using an\ninitiator that sends the real key=value payload while declaring 8193 in\nthe BHS, on the first login PDU and on the second in separate runs. The\nreported read size tracks the declared value exactly; 16384 and 61440\nbehave the same. Unpatched 3 of 3 runs report on each of the two paths,\npatched 0 of 3 on both, run alternately in a single session, and a normal\nlogin still completes on the patched build."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The forged length is the iSCSI Login Request BHS DataSegmentLength (hdr-\u003edlength) delivered in an RDMA Send that completes in isert_login_recv_done(); isert_setup_id() rdma_bind_addr()/rdma_listen()s that portal on an IP sockaddr with RDMA_PS_TCP (RoCEv2/iWARP), so the bytes arrive on a routable IP transport.\nAC:L - The initiator sets dlength independently of wc-\u003ebyte_len. isert_rx_login_req() copies only min(login_req_len, MAX_KEY_VALUE_PAIRS) into login-\u003ereq_buf, then iscsi_target_locate_portal()/iscsi_decode_text_input() pass ntoh24(dlength) to kmemdup_nul(); declared lengths 8193, 16384 and 61440 hit with no race.\nPR:N - iscsi_target_locate_portal() runs in iscsi_target_login_thread() immediately after isert_get_login_rx() returns the first Login Request, before iscsi_target_start_negotiation() or CHAP; isert_connect_request() accepts the RDMA CM CONNECT_REQUEST whenever np-\u003eenabled, with no credentials.\nUI:N - The attacker itself performs the RDMA CM connect and sends the crafted Login Request; no local user action is required once the isert portal is already listening.\nS:U - kmemdup_nul() over-reads the host kernel\u0027s login-\u003ereq_buf in iscsi_target_locate_portal() and iscsi_decode_text_input() on the iSER target; the impact stays in that kernel and does not cross a guest/host or IOMMU boundary.\nC:H - ntoh24(login_req-\u003edlength) is a 24-bit attacker-chosen size passed to kmemdup_nul(login-\u003ereq_buf, payload_length), which memcpy-reads that many bytes from the 8192-byte req_buf object, an unbounded slab-out-of-bounds read of adjacent kernel memory rather than a few-byte leak.\nI:N - kmemdup_nul() writes only into a newly allocated tmpbuf of size payload_length+1, so the bug is a source over-read of req_buf, not a write into neighboring objects; parsing that copy as key=value does not give the initiator an attacker-controlled kernel write.\nA:H - KASAN reports a slab-out-of-bounds read in kmemdup_nul() from iscsi_target_locate_portal() on the first PDU and from iscsi_decode_text_input() on later PDUs; a declared length of 61440 walks tens of kilobytes past the kmalloc-8k object and faults the target."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:17.470Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b1f3313e7b3e396e4985fea5c709477387e0a065"
},
{
"url": "https://git.kernel.org/stable/c/228aaa620fe6a7bc8b5b21dd348b4836b1760c61"
},
{
"url": "https://git.kernel.org/stable/c/0d9c0586af703890afe1bd0cfe641e3a3af1c32d"
},
{
"url": "https://git.kernel.org/stable/c/44fe800ec13386c88bd5b32bcd1deaa1e17535d5"
},
{
"url": "https://git.kernel.org/stable/c/71ec8bbfa4a183f1e623662f9cfbcd702e433bdb"
},
{
"url": "https://git.kernel.org/stable/c/c345d9d0b3eefc990bb90cf565325785aab06aab"
},
{
"url": "https://git.kernel.org/stable/c/48812c8103071d550d9ab4a3431be5bdc52255bc"
},
{
"url": "https://git.kernel.org/stable/c/2488b5b4827e5415768afc8daf097e8eb83c98df"
}
],
"title": "IB/isert: reject login PDUs declaring more data than was received",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90413",
"datePublished": "2026-09-17T16:09:39.383Z",
"dateReserved": "2026-09-11T19:38:34.813Z",
"dateUpdated": "2026-10-19T09:03:17.470Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74286 (GCVE-0-2026-74286)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: pfcp: allocate per-cpu tstats for PFCP netdevs
PFCP uses dev_get_tstats64() as its ndo_get_stats64 callback, but
pfcp_link_setup() does not request NETDEV_PCPU_STAT_TSTATS. The net
core therefore leaves dev->tstats NULL for PFCP devices.
Creating a PFCP rtnetlink device can immediately ask the new netdev for
stats while building the RTM_NEWLINK notification. That reaches
dev_get_tstats64() and dereferences the NULL dev->tstats pointer.
Set pcpu_stat_type to NETDEV_PCPU_STAT_TSTATS during PFCP link setup so
the net core allocates the storage expected by dev_get_tstats64().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/pfcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "56b4ad500fd1282ef04db3c4beae5b54ab093a53",
"status": "affected",
"version": "76c8764ef36a5d37ea2e551bda28ac7f028383ba",
"versionType": "git"
},
{
"lessThan": "51a1d9836acc76a1bd16170b2f4b35f11036593f",
"status": "affected",
"version": "76c8764ef36a5d37ea2e551bda28ac7f028383ba",
"versionType": "git"
},
{
"lessThan": "67e4b283de36d9eebf95acdea5d6674b6ef4b2f4",
"status": "affected",
"version": "76c8764ef36a5d37ea2e551bda28ac7f028383ba",
"versionType": "git"
},
{
"lessThan": "24041543da8cd84eb5d8ae738c534372fff54820",
"status": "affected",
"version": "76c8764ef36a5d37ea2e551bda28ac7f028383ba",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/pfcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: pfcp: allocate per-cpu tstats for PFCP netdevs\n\nPFCP uses dev_get_tstats64() as its ndo_get_stats64 callback, but\npfcp_link_setup() does not request NETDEV_PCPU_STAT_TSTATS. The net\ncore therefore leaves dev-\u003etstats NULL for PFCP devices.\n\nCreating a PFCP rtnetlink device can immediately ask the new netdev for\nstats while building the RTM_NEWLINK notification. That reaches\ndev_get_tstats64() and dereferences the NULL dev-\u003etstats pointer.\n\nSet pcpu_stat_type to NETDEV_PCPU_STAT_TSTATS during PFCP link setup so\nthe net core allocates the storage expected by dev_get_tstats64()."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:16:32.000Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/56b4ad500fd1282ef04db3c4beae5b54ab093a53"
},
{
"url": "https://git.kernel.org/stable/c/51a1d9836acc76a1bd16170b2f4b35f11036593f"
},
{
"url": "https://git.kernel.org/stable/c/67e4b283de36d9eebf95acdea5d6674b6ef4b2f4"
},
{
"url": "https://git.kernel.org/stable/c/24041543da8cd84eb5d8ae738c534372fff54820"
}
],
"title": "net: pfcp: allocate per-cpu tstats for PFCP netdevs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74286",
"datePublished": "2026-08-15T05:57:54.529Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-08-17T05:16:32.000Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64448 (GCVE-0-2026-64448)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: restrict implied bcc[0] exemption to responses without data area
smb2_check_message() has a long-standing quirk that accepts a response
whose calculated length is one byte larger than the bytes actually
received ("server can return one byte more due to implied bcc[0]").
This was introduced to accommodate servers that omit the trailing bcc[0]
overlap byte when no data area is present.
However, the exemption is applied unconditionally, regardless of whether
the command actually carries a data area (has_smb2_data_area[]). When a
response with a data area is subject to the +1 exemption, the reported
data can extend one byte beyond the bytes actually received, yet
smb2_check_message() still accepts it. The subsequent decoder then reads
past the end of the receive buffer. This is reachable during NEGOTIATE
and SESSION_SETUP, before the session is established.
The resulting out-of-bounds reads are visible under KASAN when mounting
against a non-conforming server; both the SPNEGO/negTokenInit and the
NTLMSSP challenge decoders are affected:
BUG: KASAN: slab-out-of-bounds in asn1_ber_decoder+0x16a7/0x1b00
Read of size 1 at addr ffff8880084d67c0 by task mount.cifs/81
CPU: 1 UID: 0 PID: 81 Comm: mount.cifs Not tainted 7.1.0-rc6 #1
Call Trace:
<TASK>
dump_stack_lvl+0x4e/0x70
print_report+0x157/0x4c9
kasan_report+0xce/0x100
asn1_ber_decoder+0x16a7/0x1b00
decode_negTokenInit+0x19/0x30
SMB2_negotiate+0x31d9/0x4c90
cifs_negotiate_protocol+0x1f2/0x3f0
cifs_get_smb_ses+0x93f/0x17e0
cifs_mount_get_session+0x7f/0x3a0
cifs_mount+0xb4/0xcf0
cifs_smb3_do_mount+0x23a/0x1500
smb3_get_tree+0x3b0/0x630
vfs_get_tree+0x82/0x2d0
fc_mount+0x10/0x1b0
path_mount+0x50d/0x1de0
__x64_sys_mount+0x20b/0x270
do_syscall_64+0xee/0x590
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
Allocated by task 85:
kmem_cache_alloc_noprof+0x106/0x380
mempool_alloc_noprof+0x116/0x1e0
cifs_small_buf_get+0x31/0x80
allocate_buffers+0x10d/0x2b0
cifs_demultiplex_thread+0x1d5/0x1d50
kthread+0x2c6/0x390
ret_from_fork+0x36e/0x5a0
ret_from_fork_asm+0x1a/0x30
The buggy address is located 0 bytes to the right of
allocated 448-byte region [ffff8880084d6600, ffff8880084d67c0)
which belongs to the cache cifs_small_rq of size 448
BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x36/0x50
Read of size 329 at addr ffff88800726c678 by task mount.cifs/89
CPU: 0 UID: 0 PID: 89 Comm: mount.cifs Tainted: G B 7.1.0-rc6 #1
Call Trace:
<TASK>
dump_stack_lvl+0x4e/0x70
print_report+0x157/0x4c9
kasan_report+0xce/0x100
kasan_check_range+0x10f/0x1e0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x36/0x50
decode_ntlmssp_challenge+0x457/0x680
SMB2_sess_auth_rawntlmssp_negotiate+0x6f0/0xcb0
SMB2_sess_setup+0x219/0x4f0
cifs_setup_session+0x248/0xaf0
cifs_get_smb_ses+0xf79/0x17e0
cifs_mount_get_session+0x7f/0x3a0
cifs_mount+0xb4/0xcf0
cifs_smb3_do_mount+0x23a/0x1500
smb3_get_tree+0x3b0/0x630
vfs_get_tree+0x82/0x2d0
fc_mount+0x10/0x1b0
path_mount+0x50d/0x1de0
__x64_sys_mount+0x20b/0x270
do_syscall_64+0xee/0x590
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
Allocated by task 93:
kmem_cache_alloc_noprof+0x106/0x380
mempool_alloc_noprof+0x116/0x1e0
cifs_small_buf_get+0x31/0x80
allocate_buffers+0x10d/0x2b0
cifs_demultiplex_thread+0x1d5/0x1d50
kthread+0x2c6/0x390
ret_from_fork+0x36e/0x5a0
ret_from_fork_asm+0x1a/0x30
The buggy address is located 120 bytes inside of
allocated 448-byte region [ffff88800726c600, ffff88800726c7c0)
which belongs to the cache cifs_small_rq of size 448
Restrict the +1 exemption to responses that have no data area, so that
it still covers the bcc[0] omission it was meant for. When a data area
is present, the +1 discrepancy instead means the reported data length
overruns the
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 Version: 093b2bdad3221e3fae3c26d89387e7297a157664 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64448",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:41:01.162608Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:30.137Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8d0bbc78046d264bbf6a574ea6f9072258a43e35",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "b6a381c01e2ac98a48e32ac0f2a45bbadd9e26b0",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "31c6312608c60b72a1feb99a5afb680645a3e8a3",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "573e502d14714d2947e22e7eff40ec20a6a44a42",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "419ec1b604d7fb60c10aec2dc062371f9fcd4940",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "ceb875a375dedbf51c9425c1d13a2d7a8435c08c",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "6e9d10f62773b99bd927940fd9cbdfe7207e23ff",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
},
{
"lessThan": "53b7c271f06be4dd5cfc8c6ef552a8355c891a7f",
"status": "affected",
"version": "093b2bdad3221e3fae3c26d89387e7297a157664",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: restrict implied bcc[0] exemption to responses without data area\n\nsmb2_check_message() has a long-standing quirk that accepts a response\nwhose calculated length is one byte larger than the bytes actually\nreceived (\"server can return one byte more due to implied bcc[0]\").\nThis was introduced to accommodate servers that omit the trailing bcc[0]\noverlap byte when no data area is present.\n\nHowever, the exemption is applied unconditionally, regardless of whether\nthe command actually carries a data area (has_smb2_data_area[]). When a\nresponse with a data area is subject to the +1 exemption, the reported\ndata can extend one byte beyond the bytes actually received, yet\nsmb2_check_message() still accepts it. The subsequent decoder then reads\npast the end of the receive buffer. This is reachable during NEGOTIATE\nand SESSION_SETUP, before the session is established.\n\nThe resulting out-of-bounds reads are visible under KASAN when mounting\nagainst a non-conforming server; both the SPNEGO/negTokenInit and the\nNTLMSSP challenge decoders are affected:\n\n BUG: KASAN: slab-out-of-bounds in asn1_ber_decoder+0x16a7/0x1b00\n Read of size 1 at addr ffff8880084d67c0 by task mount.cifs/81\n CPU: 1 UID: 0 PID: 81 Comm: mount.cifs Not tainted 7.1.0-rc6 #1\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x4e/0x70\n print_report+0x157/0x4c9\n kasan_report+0xce/0x100\n asn1_ber_decoder+0x16a7/0x1b00\n decode_negTokenInit+0x19/0x30\n SMB2_negotiate+0x31d9/0x4c90\n cifs_negotiate_protocol+0x1f2/0x3f0\n cifs_get_smb_ses+0x93f/0x17e0\n cifs_mount_get_session+0x7f/0x3a0\n cifs_mount+0xb4/0xcf0\n cifs_smb3_do_mount+0x23a/0x1500\n smb3_get_tree+0x3b0/0x630\n vfs_get_tree+0x82/0x2d0\n fc_mount+0x10/0x1b0\n path_mount+0x50d/0x1de0\n __x64_sys_mount+0x20b/0x270\n do_syscall_64+0xee/0x590\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n \u003c/TASK\u003e\n Allocated by task 85:\n kmem_cache_alloc_noprof+0x106/0x380\n mempool_alloc_noprof+0x116/0x1e0\n cifs_small_buf_get+0x31/0x80\n allocate_buffers+0x10d/0x2b0\n cifs_demultiplex_thread+0x1d5/0x1d50\n kthread+0x2c6/0x390\n ret_from_fork+0x36e/0x5a0\n ret_from_fork_asm+0x1a/0x30\n The buggy address is located 0 bytes to the right of\n allocated 448-byte region [ffff8880084d6600, ffff8880084d67c0)\n which belongs to the cache cifs_small_rq of size 448\n\n BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x36/0x50\n Read of size 329 at addr ffff88800726c678 by task mount.cifs/89\n CPU: 0 UID: 0 PID: 89 Comm: mount.cifs Tainted: G B 7.1.0-rc6 #1\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x4e/0x70\n print_report+0x157/0x4c9\n kasan_report+0xce/0x100\n kasan_check_range+0x10f/0x1e0\n __asan_memcpy+0x23/0x60\n kmemdup_noprof+0x36/0x50\n decode_ntlmssp_challenge+0x457/0x680\n SMB2_sess_auth_rawntlmssp_negotiate+0x6f0/0xcb0\n SMB2_sess_setup+0x219/0x4f0\n cifs_setup_session+0x248/0xaf0\n cifs_get_smb_ses+0xf79/0x17e0\n cifs_mount_get_session+0x7f/0x3a0\n cifs_mount+0xb4/0xcf0\n cifs_smb3_do_mount+0x23a/0x1500\n smb3_get_tree+0x3b0/0x630\n vfs_get_tree+0x82/0x2d0\n fc_mount+0x10/0x1b0\n path_mount+0x50d/0x1de0\n __x64_sys_mount+0x20b/0x270\n do_syscall_64+0xee/0x590\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n \u003c/TASK\u003e\n Allocated by task 93:\n kmem_cache_alloc_noprof+0x106/0x380\n mempool_alloc_noprof+0x116/0x1e0\n cifs_small_buf_get+0x31/0x80\n allocate_buffers+0x10d/0x2b0\n cifs_demultiplex_thread+0x1d5/0x1d50\n kthread+0x2c6/0x390\n ret_from_fork+0x36e/0x5a0\n ret_from_fork_asm+0x1a/0x30\n The buggy address is located 120 bytes inside of\n allocated 448-byte region [ffff88800726c600, ffff88800726c7c0)\n which belongs to the cache cifs_small_rq of size 448\n\nRestrict the +1 exemption to responses that have no data area, so that\nit still covers the bcc[0] omission it was meant for. When a data area\nis present, the +1 discrepancy instead means the reported data length\noverruns the\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A malicious or compromised SMB server can trigger the flaw through crafted TCP responses, typically over port 445.\nAC:L - The server directly controls the frame length, data offset, and declared data length, so no race or condition outside the attacker\u0027s control is required.\nPR:N - NEGOTIATE and SESSION_SETUP responses are processed before authentication and signature verification, requiring no attacker credentials or local capabilities.\nUI:N - An existing persistent SMB mount automatically renegotiates after a server-induced reconnect, allowing exploitation without contemporaneous user action.\nS:U - The vulnerable SMB decoder and resulting kernel impact remain within the host kernel\u0027s security authority.\nC:L - The discrepancy permits exactly one byte beyond the received data to be read; the NTLM path can preserve and reflect that byte in subsequent authentication data, but the disclosure is strictly bounded.\nI:N - The flaw performs an out-of-bounds read and copies data into valid allocations; it provides no out-of-bounds write or other demonstrated memory-modification primitive.\nA:H - The demonstrated slab out-of-bounds access raises a KASAN BUG and can panic hardened kernels, and a malicious peer can retrigger it during negotiation or reconnection."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:51.813Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8d0bbc78046d264bbf6a574ea6f9072258a43e35"
},
{
"url": "https://git.kernel.org/stable/c/b6a381c01e2ac98a48e32ac0f2a45bbadd9e26b0"
},
{
"url": "https://git.kernel.org/stable/c/31c6312608c60b72a1feb99a5afb680645a3e8a3"
},
{
"url": "https://git.kernel.org/stable/c/573e502d14714d2947e22e7eff40ec20a6a44a42"
},
{
"url": "https://git.kernel.org/stable/c/419ec1b604d7fb60c10aec2dc062371f9fcd4940"
},
{
"url": "https://git.kernel.org/stable/c/ceb875a375dedbf51c9425c1d13a2d7a8435c08c"
},
{
"url": "https://git.kernel.org/stable/c/6e9d10f62773b99bd927940fd9cbdfe7207e23ff"
},
{
"url": "https://git.kernel.org/stable/c/53b7c271f06be4dd5cfc8c6ef552a8355c891a7f"
}
],
"title": "smb: client: restrict implied bcc[0] exemption to responses without data area",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64448",
"datePublished": "2026-07-25T08:51:18.796Z",
"dateReserved": "2026-07-19T15:36:31.788Z",
"dateUpdated": "2026-10-19T20:38:30.137Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74386 (GCVE-0-2026-74386)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: fix page fragment cache leak in error path
In nvmet_tcp_alloc_queue(), when a connection is closed during the
allocation process (e.g., nvmet_tcp_set_queue_sock() returns -ENOTCONN),
the error handling jumps to out_destroy_sq and then to out_ida_remove
without draining the page fragment cache.
Although nvmet_tcp_free_cmd() is called in some error paths to release
individual page fragments, the underlying page cache reference held by
queue->pf_cache is never released. The first allocation using pf_cache
is the call to nvmet_tcp_alloc_cmd() for queue->connect, which happens
after ida_alloc() returns successfully. This results in a page leak each
time a connection fails during allocation, which could lead to memory
exhaustion over time if connections are repeatedly opened and closed.
Fix this by calling page_frag_cache_drain() before freeing the queue
structure in the out_ida_remove label.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fc11e3f0daaadb6e600a86e54b089d4662d0a464",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "a43a9abc1ebf663f0aa56a729106f68dd9c77da6",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "ba3209704b3cd46961e4e081af5c52a780785648",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "5fbe83a374f09561a0f0c1f4aa021501ffd681eb",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "4dae393956093c807212918fd91a8fc70df15338",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: fix page fragment cache leak in error path\n\nIn nvmet_tcp_alloc_queue(), when a connection is closed during the\nallocation process (e.g., nvmet_tcp_set_queue_sock() returns -ENOTCONN),\nthe error handling jumps to out_destroy_sq and then to out_ida_remove\nwithout draining the page fragment cache.\n\nAlthough nvmet_tcp_free_cmd() is called in some error paths to release\nindividual page fragments, the underlying page cache reference held by\nqueue-\u003epf_cache is never released. The first allocation using pf_cache\nis the call to nvmet_tcp_alloc_cmd() for queue-\u003econnect, which happens\nafter ida_alloc() returns successfully. This results in a page leak each\ntime a connection fails during allocation, which could lead to memory\nexhaustion over time if connections are repeatedly opened and closed.\n\nFix this by calling page_frag_cache_drain() before freeing the queue\nstructure in the out_ida_remove label."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:34.958Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fc11e3f0daaadb6e600a86e54b089d4662d0a464"
},
{
"url": "https://git.kernel.org/stable/c/a43a9abc1ebf663f0aa56a729106f68dd9c77da6"
},
{
"url": "https://git.kernel.org/stable/c/ba3209704b3cd46961e4e081af5c52a780785648"
},
{
"url": "https://git.kernel.org/stable/c/5fbe83a374f09561a0f0c1f4aa021501ffd681eb"
},
{
"url": "https://git.kernel.org/stable/c/4dae393956093c807212918fd91a8fc70df15338"
}
],
"title": "nvmet-tcp: fix page fragment cache leak in error path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74386",
"datePublished": "2026-08-15T05:59:01.786Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-10-21T12:45:34.958Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64235 (GCVE-0-2026-64235)
Vulnerability from cvelistv5
Published
2026-07-24 15:27
Modified
2026-10-19 20:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines
With CONFIG_CALL_DEPTH_TRACKING enabled on an x86 retbleed-affected platform
(eg: Skylake), with retbleed=stuff, registering a dynamic ftrace trampoline
crashes on the first call into the traced function:
BUG: unable to handle page fault for address: ffff88817ae18880
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 4b53067 P4D 4b53067 PUD 0
Oops: Oops: 0002 [#1] SMP PTI
CPU: 3 UID: 0 PID: 187 Comm: usleep Not tainted 7.0.10 #243 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.17.0-2-2 04/01/2014
Code: 24 78 00 00 00 00 48 89 ea 48 89 54 24 20 48 8b b4 24 b8 00 00 00 48 8b bc 24 b0 00 00 00 48 89 bc 24 80 00 00 00 48 83 ef 05 <65> 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89
Call Trace:
<TASK>
? find_held_lock
? exc_page_fault
? lock_release
? __x64_sys_clock_nanosleep
? lockdep_hardirqs_on_prepare
? trace_hardirqs_on
__x64_sys_clock_nanosleep
do_syscall_64
? exc_page_fault
? call_depth_return_thunk
entry_SYSCALL_64_after_hwframe
...
Kernel panic - not syncing: Fatal exception
This small reproducer allows to easily trigger the crash:
# echo 'p __x64_sys_clock_nanosleep' > /sys/kernel/tracing/kprobe_events
# echo 1 > /sys/kernel/tracing/events/kprobes/p___x64_sys_clock_nanosleep_0/enable
# usleep 1
Monitoring the crash under GDB points to the exact instruction in charge of
incrementing the call depth:
sarq $5, %gs:__x86_call_depth(%rip)
This instruction matches the one inserted by the ftrace_regs_caller from
ftrace_64.S. This emitted code was likely working fine until the introduction
of
59bec00ace28 ("x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR()"):
it has made the call depth accounting addressing relative to $rip, instead of
being based on an absolute address.
As this code exact location depends on where the trampoline lives in memory,
the corresponding displacement needs to be adjusted at runtime to actually
correctly find the per-cpu __x86_call_depth value, otherwise the targeted
address is wrong, leading to the page fault seen above.
Fix the %rip-relative displacement of the copied CALL_DEPTH_ACCOUNT
instruction (from ftrace_regs_caller) by calling text_poke_apply_relocation(),
as it is done for example by the x86 BPF JIT compiler through
x86_call_depth_emit_accounting(). This corrects both CALL_DEPTH_ACCOUNT slots,
in ftrace_caller and ftrace_regs_caller.
[ bp: Massage. ]
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64235",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:37:47.446270Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "CWE-476 NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:28:16.189Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/ftrace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8093442a2d1d4b42b9340a86023ccb2afb30b93a",
"status": "affected",
"version": "59bec00ace28d565ae0a68b23063ef3b961d82d5",
"versionType": "git"
},
{
"lessThan": "d59cc66b702757e3c5a711e78a38583eac0c2738",
"status": "affected",
"version": "59bec00ace28d565ae0a68b23063ef3b961d82d5",
"versionType": "git"
},
{
"lessThan": "9edff632ca216169846f8a63a5a3dc467e239c7a",
"status": "affected",
"version": "59bec00ace28d565ae0a68b23063ef3b961d82d5",
"versionType": "git"
},
{
"lessThan": "a17dc12bfed8868e6a86f3b45c16065a70641acb",
"status": "affected",
"version": "59bec00ace28d565ae0a68b23063ef3b961d82d5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/ftrace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines\n\nWith CONFIG_CALL_DEPTH_TRACKING enabled on an x86 retbleed-affected platform\n(eg: Skylake), with retbleed=stuff, registering a dynamic ftrace trampoline\ncrashes on the first call into the traced function:\n\n BUG: unable to handle page fault for address: ffff88817ae18880\n #PF: supervisor write access in kernel mode\n #PF: error_code(0x0002) - not-present page\n PGD 4b53067 P4D 4b53067 PUD 0\n Oops: Oops: 0002 [#1] SMP PTI\n CPU: 3 UID: 0 PID: 187 Comm: usleep Not tainted 7.0.10 #243 PREEMPT(full)\n Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.17.0-2-2 04/01/2014\n Code: 24 78 00 00 00 00 48 89 ea 48 89 54 24 20 48 8b b4 24 b8 00 00 00 48 8b bc 24 b0 00 00 00 48 89 bc 24 80 00 00 00 48 83 ef 05 \u003c65\u003e 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89\n Call Trace:\n \u003cTASK\u003e\n ? find_held_lock\n ? exc_page_fault\n ? lock_release\n ? __x64_sys_clock_nanosleep\n ? lockdep_hardirqs_on_prepare\n ? trace_hardirqs_on\n __x64_sys_clock_nanosleep\n do_syscall_64\n ? exc_page_fault\n ? call_depth_return_thunk\n entry_SYSCALL_64_after_hwframe\n ...\n Kernel panic - not syncing: Fatal exception\n\nThis small reproducer allows to easily trigger the crash:\n\n # echo \u0027p __x64_sys_clock_nanosleep\u0027 \u003e /sys/kernel/tracing/kprobe_events\n # echo 1 \u003e /sys/kernel/tracing/events/kprobes/p___x64_sys_clock_nanosleep_0/enable\n # usleep 1\n\nMonitoring the crash under GDB points to the exact instruction in charge of\nincrementing the call depth:\n\n sarq $5, %gs:__x86_call_depth(%rip)\n\nThis instruction matches the one inserted by the ftrace_regs_caller from\nftrace_64.S. This emitted code was likely working fine until the introduction\nof\n\n 59bec00ace28 (\"x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR()\"):\n\nit has made the call depth accounting addressing relative to $rip, instead of\nbeing based on an absolute address.\n\nAs this code exact location depends on where the trampoline lives in memory,\nthe corresponding displacement needs to be adjusted at runtime to actually\ncorrectly find the per-cpu __x86_call_depth value, otherwise the targeted\naddress is wrong, leading to the page fault seen above.\n\nFix the %rip-relative displacement of the copied CALL_DEPTH_ACCOUNT\ninstruction (from ftrace_regs_caller) by calling text_poke_apply_relocation(),\nas it is done for example by the x86 BPF JIT compiler through\nx86_call_depth_emit_accounting(). This corrects both CALL_DEPTH_ACCOUNT slots,\nin ftrace_caller and ftrace_regs_caller.\n\n [ bp: Massage. ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - With a dynamic ftrace/kprobe trampoline monitoring a receive-path function such as tcp_v4_rcv, an unauthenticated remote attacker reaches the faulty trampoline by sending a valid network packet.\nAC:H - Exploitation requires an affected Intel x86 platform using the non-default retbleed=stuff mitigation and an active dynamic trampoline on attacker-reachable code, conditions normally outside the attacker\u0027s control.\nPR:N - In a preconfigured network-monitoring deployment, the attacker only sends packets and needs no credentials. Creating the probe is privileged through tracefs DAC or init-namespace capabilities, but deployed observability infrastructure can establish it beforehand.\nUI:N - Tracing may be enabled automatically by deployed monitoring infrastructure, and no human action is required when the attacker triggers the traced function.\nS:U - The erroneous access and resulting compromise occur within the host kernel\u0027s existing security authority without crossing a VM, IOMMU, or other scope boundary.\nC:H - The stale displacement causes an out-of-bounds 8-byte read-modify-write that can land in mapped direct-map RAM on sufficiently large systems; corruption of kernel objects can plausibly enable code execution and arbitrary kernel-memory disclosure.\nI:H - The sarq instruction writes to unrelated direct-map memory, and repeated invocations can corrupt kernel objects or control data, potentially enabling kernel control-flow hijacking.\nA:H - The documented first invocation produces a supervisor write page fault followed by a fatal kernel oops and panic, causing complete system unavailability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:40:13.850Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8093442a2d1d4b42b9340a86023ccb2afb30b93a"
},
{
"url": "https://git.kernel.org/stable/c/d59cc66b702757e3c5a711e78a38583eac0c2738"
},
{
"url": "https://git.kernel.org/stable/c/9edff632ca216169846f8a63a5a3dc467e239c7a"
},
{
"url": "https://git.kernel.org/stable/c/a17dc12bfed8868e6a86f3b45c16065a70641acb"
}
],
"title": "x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64235",
"datePublished": "2026-07-24T15:27:40.814Z",
"dateReserved": "2026-07-19T15:36:31.771Z",
"dateUpdated": "2026-10-19T20:28:16.189Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74535 (GCVE-0-2026-74535)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: avoid deadlocks in iso_sock_timeout
iso_sock_timeout() takes lock_sock, so sync disabling the timer while
holding that lock may deadlock.
iso_sock_timeout() may also run concurrently with iso_conn_del(), which
leads to UAF
[Task 1] [Task hdev->workqueue]
iso_sock_timeout iso_conn_del
iso_conn_hold_unless_zero iso_chan_del
`------------> iso_conn_put
caller frees hcon
iso_conn_put
iso_conn_free
conn->hcon->iso_data = NULL; /* UAF */
Fix the deadlock by removing the disable from the lock_sock sections.
Move the timer from iso_conn to iso_pinfo to decouple it from iso_conn
which may need to be freed in lock_sock section. Convert some of the
clear_timer to disable_timer.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a58d0f5dac322e16cc75334d000666512341bde5 Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: f53e7489273dc2bb307bf50f319b3762d45534f0 Version: 6.12.2 ≤ Version: 6.11.11 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74535",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:30.482999Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:53.982Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "16d89a63e08280abeef7218970a3bbd7ca62b021",
"status": "affected",
"version": "a58d0f5dac322e16cc75334d000666512341bde5",
"versionType": "git"
},
{
"lessThan": "82e982f54f962f72646868ddbb2c3bd9ea178568",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "3c3d5f85db80145636bb991a6005e2760012b985",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "200fa1629c57a3ca2b03d3ca63fd3a9bfd910c43",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"status": "affected",
"version": "f53e7489273dc2bb307bf50f319b3762d45534f0",
"versionType": "git"
},
{
"lessThan": "6.12.103",
"status": "affected",
"version": "6.12.2",
"versionType": "semver"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.12.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: avoid deadlocks in iso_sock_timeout\n\niso_sock_timeout() takes lock_sock, so sync disabling the timer while\nholding that lock may deadlock.\n\niso_sock_timeout() may also run concurrently with iso_conn_del(), which\nleads to UAF\n\n [Task 1] [Task hdev-\u003eworkqueue]\n iso_sock_timeout iso_conn_del\n iso_conn_hold_unless_zero iso_chan_del\n `------------\u003e iso_conn_put\n caller frees hcon\n iso_conn_put\n iso_conn_free\n conn-\u003ehcon-\u003eiso_data = NULL; /* UAF */\n\nFix the deadlock by removing the disable from the lock_sock sections.\nMove the timer from iso_conn to iso_pinfo to decouple it from iso_conn\nwhich may need to be freed in lock_sock section. Convert some of the\nclear_timer to disable_timer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is in the Bluetooth ISO socket layer (BTPROTO_ISO); iso_sock_timeout and iso_conn_del are reached via HCI disconnect/connect events from an adjacent BLE peer and local ISO socket syscalls, which per kernel guidance is Adjacent not Network.\nAC:L - Exploitation is a race between iso_sock_timeout and iso_conn_del that an attacker can reliably force by controlling ISO connect/disconnect timing and socket send timeouts (SO_SNDTIMEO) on concurrent workqueues, so success does not depend on uncontrollable conditions.\nPR:N - An adjacent Bluetooth attacker can trigger iso_conn_del through remote HCI disconnect/failure events without any credentials or privileges on the victim host; only a normal active or pending ISO/LE Audio session must exist on the target.\nUI:N - No deliberate victim interaction beyond routine Bluetooth/LE Audio operation is required; exploitation can occur in the background while an ISO connection is pending or active, without opening files or performing a separate enabling action.\nS:U - The UAF/deadlock corrupts kernel heap memory on the host and enables local privilege escalation within the kernel security boundary, not a cross-boundary escape such as VM guest-to-host or IOMMU bypass.\nC:H - iso_conn_free dereferences conn-\u003ehcon after concurrent iso_conn_del frees the hci_conn (UAF on conn-\u003ehcon-\u003eiso_data), enabling arbitrary kernel memory read/disclosure through heap corruption per UAF guidance.\nI:H - The UAF permits writes through conn-\u003ehcon-\u003eiso_data and hci_conn_drop on freed hci_conn memory, providing heap corruption primitives that can be leveraged for arbitrary kernel writes or code execution.\nA:H - The UAF causes kernel oops/panic on freed hci_conn access, and the lock_sock versus disable_delayed_work_sync deadlock in iso_sock_timeout/iso_conn_del paths can hang the system; both crash and deadlock map to High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:48:24.441Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/16d89a63e08280abeef7218970a3bbd7ca62b021"
},
{
"url": "https://git.kernel.org/stable/c/82e982f54f962f72646868ddbb2c3bd9ea178568"
},
{
"url": "https://git.kernel.org/stable/c/3c3d5f85db80145636bb991a6005e2760012b985"
},
{
"url": "https://git.kernel.org/stable/c/200fa1629c57a3ca2b03d3ca63fd3a9bfd910c43"
}
],
"title": "Bluetooth: ISO: avoid deadlocks in iso_sock_timeout",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74535",
"datePublished": "2026-08-15T12:27:48.449Z",
"dateReserved": "2026-08-15T05:44:03.913Z",
"dateUpdated": "2026-10-16T19:05:53.982Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63838 (GCVE-0-2026-63838)
Vulnerability from cvelistv5
Published
2026-07-19 14:04
Modified
2026-07-19 14:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ASoC: rsnd: Fix potential out-of-bounds access of component_dais[]
component_dais[RSND_MAX_COMPONENT] is initially zero-initialized
and later populated in rsnd_dai_of_node(). However, the existing boundary check:
if (i >= RSND_MAX_COMPONENT)
does not guarantee that the last valid element remains zero. As a result,
the loop can rely on component_dais[RSND_MAX_COMPONENT] being zero,
which may lead to an out-of-bounds access.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/soc/renesas/rcar/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9f1daac27ca28e98c8c0e4450de42bb68d547250",
"status": "affected",
"version": "547b02f74e4ac1e7d295a6266d5bc93a647cd4ac",
"versionType": "git"
},
{
"lessThan": "15e7b2ac2455995a6af02b9d3da7a432837aaf72",
"status": "affected",
"version": "547b02f74e4ac1e7d295a6266d5bc93a647cd4ac",
"versionType": "git"
},
{
"lessThan": "134c61925e9e9ee0f4fdbab5c3984d5bb024f5f5",
"status": "affected",
"version": "547b02f74e4ac1e7d295a6266d5bc93a647cd4ac",
"versionType": "git"
},
{
"lessThan": "a62b3e6e42359a79158c134e3cf5c74fe160c3f5",
"status": "affected",
"version": "547b02f74e4ac1e7d295a6266d5bc93a647cd4ac",
"versionType": "git"
},
{
"lessThan": "f9e437cddf6cf9e603bdaefe148c1f4792aaf39c",
"status": "affected",
"version": "547b02f74e4ac1e7d295a6266d5bc93a647cd4ac",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/soc/renesas/rcar/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.141",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.91",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.33",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.141",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.91",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.33",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.10",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: rsnd: Fix potential out-of-bounds access of component_dais[]\n\ncomponent_dais[RSND_MAX_COMPONENT] is initially zero-initialized\nand later populated in rsnd_dai_of_node(). However, the existing boundary check:\n if (i \u003e= RSND_MAX_COMPONENT)\n\ndoes not guarantee that the last valid element remains zero. As a result,\nthe loop can rely on component_dais[RSND_MAX_COMPONENT] being zero,\nwhich may lead to an out-of-bounds access.\n\nFound by Linux Verification Center (linuxtesting.org) with SVACE."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T14:04:34.454Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9f1daac27ca28e98c8c0e4450de42bb68d547250"
},
{
"url": "https://git.kernel.org/stable/c/15e7b2ac2455995a6af02b9d3da7a432837aaf72"
},
{
"url": "https://git.kernel.org/stable/c/134c61925e9e9ee0f4fdbab5c3984d5bb024f5f5"
},
{
"url": "https://git.kernel.org/stable/c/a62b3e6e42359a79158c134e3cf5c74fe160c3f5"
},
{
"url": "https://git.kernel.org/stable/c/f9e437cddf6cf9e603bdaefe148c1f4792aaf39c"
}
],
"title": "ASoC: rsnd: Fix potential out-of-bounds access of component_dais[]",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63838",
"datePublished": "2026-07-19T14:04:34.454Z",
"dateReserved": "2026-07-19T07:54:57.015Z",
"dateUpdated": "2026-07-19T14:04:34.454Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80880 (GCVE-0-2026-80880)
Vulnerability from cvelistv5
Published
2026-09-04 16:49
Modified
2026-09-04 16:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/mlx5: Properly support implicit ODP rereg_mr
Due to all the child mkeys in the implicit ODP configuration we cannot
change anything in place for the parent mkey. Instead the whole thing
needs to be rebuilt if any change is requested. If the user does not
specify a translation then force the implicit values which will then fall
through the logic into mlx5_ib_reg_user_mr() to allocate a completely new
MR.
Since implicit children were also touching the mr->pd, this removes
another case where the access was racy.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 Version: ef3642c4f54d3493c92c71faf46139b2473bc532 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/mr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cbc9982c8573fb9e35040063aa78c8ebe768a1ff",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "ee914ef54a7e707453ecb43eb30fb0a5c6dd0d69",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "94f7e50eb6b2ce7fbd9aeac1db22460d2013a3fb",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "eb7cb798e563b3f3b3baeb9cc6f7455764267e50",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "d4f84bfa089fe71f775d25beb29303e844494c25",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "5d02b9a2efd11d28d2a8feac7769686b1b871d9c",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
},
{
"lessThan": "ee7a8335069150c3f1893a697ab30bbeca00d796",
"status": "affected",
"version": "ef3642c4f54d3493c92c71faf46139b2473bc532",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/mr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/mlx5: Properly support implicit ODP rereg_mr\n\nDue to all the child mkeys in the implicit ODP configuration we cannot\nchange anything in place for the parent mkey. Instead the whole thing\nneeds to be rebuilt if any change is requested. If the user does not\nspecify a translation then force the implicit values which will then fall\nthrough the logic into mlx5_ib_reg_user_mr() to allocate a completely new\nMR.\n\nSince implicit children were also touching the mr-\u003epd, this removes\nanother case where the access was racy."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T16:49:05.562Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cbc9982c8573fb9e35040063aa78c8ebe768a1ff"
},
{
"url": "https://git.kernel.org/stable/c/ee914ef54a7e707453ecb43eb30fb0a5c6dd0d69"
},
{
"url": "https://git.kernel.org/stable/c/94f7e50eb6b2ce7fbd9aeac1db22460d2013a3fb"
},
{
"url": "https://git.kernel.org/stable/c/eb7cb798e563b3f3b3baeb9cc6f7455764267e50"
},
{
"url": "https://git.kernel.org/stable/c/d4f84bfa089fe71f775d25beb29303e844494c25"
},
{
"url": "https://git.kernel.org/stable/c/5d02b9a2efd11d28d2a8feac7769686b1b871d9c"
},
{
"url": "https://git.kernel.org/stable/c/ee7a8335069150c3f1893a697ab30bbeca00d796"
}
],
"title": "IB/mlx5: Properly support implicit ODP rereg_mr",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80880",
"datePublished": "2026-09-04T16:49:05.562Z",
"dateReserved": "2026-08-26T14:34:25.799Z",
"dateUpdated": "2026-09-04T16:49:05.562Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74696 (GCVE-0-2026-74696)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tcp: fix TFO max_qlen accounting across reuseport migration
A listener's TCP_FASTOPEN max_qlen stops being accurate and lets through
far more pending Fast Open requests than it was configured for.
This only shows up with SO_REUSEPORT listener migration, where closing a
listener hands its still-pending TFO children over to a surviving one.
fastopenq.qlen is charged in tcp_fastopen_create_child() when the child
is created and uncharged in reqsk_fastopen_remove() when the handshake
completes. The uncharge follows rsk_listener of the request the child
points at, and inet_reqsk_clone() has repointed the child at a new
request owned by the new listener, so the ++ and the -- land on two
different sockets. The new listener's qlen drifts negative and its
limit no longer binds.
Charge the new listener during migration, like reqsk_queue_migrated()
already does for queue->young and queue->qlen.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 Version: 54b92e84193749c9968aff2dd46e3b0f42643e18 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74696",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:45.391260Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:09.811Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/inet_connection_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e98f0d80b9cccb5f828425d2004f9686e7d1ae24",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "b6247e0f96bd825ffb2005257f6177b5e642dee6",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "585fc5247d14939a561056aa2addd9b7c2b1f670",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "6e10ee56524a26b250229ad348637825646ddb88",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "a66e869cf0c90c1e47ae75f72b6482acbfc808ff",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "d974618b2097453778389d385e3741629c40e0a3",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
},
{
"lessThan": "a0ab2ba83e35159d81cec830a92e885ecf8139be",
"status": "affected",
"version": "54b92e84193749c9968aff2dd46e3b0f42643e18",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/inet_connection_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntcp: fix TFO max_qlen accounting across reuseport migration\n\nA listener\u0027s TCP_FASTOPEN max_qlen stops being accurate and lets through\nfar more pending Fast Open requests than it was configured for.\n\nThis only shows up with SO_REUSEPORT listener migration, where closing a\nlistener hands its still-pending TFO children over to a surviving one.\n\nfastopenq.qlen is charged in tcp_fastopen_create_child() when the child\nis created and uncharged in reqsk_fastopen_remove() when the handshake\ncompletes. The uncharge follows rsk_listener of the request the child\npoints at, and inet_reqsk_clone() has repointed the child at a new\nrequest owned by the new listener, so the ++ and the -- land on two\ndifferent sockets. The new listener\u0027s qlen drifts negative and its\nlimit no longer binds.\n\nCharge the new listener during migration, like reqsk_queue_migrated()\nalready does for queue-\u003eyoung and queue-\u003eqlen."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the inbound TCP SYN/TFO server path (tcp_v4_rcv/tcp_conn_request/tcp_try_fastopen), reachable by sending TCP Fast Open SYN packets to any internet-facing listener with server-side TFO enabled.\nAC:L - An attacker fully controls the TFO SYN flood; once a SO_REUSEPORT worker closes while TFO children are pending (routine nginx/k8s reloads), migration deterministically skews qlen negative with no narrow race or special memory layout required.\nPR:N - Exploitation needs only unauthenticated network reachability to the listening TCP port; no target credentials, capabilities, or local access are required because TFO SYN processing occurs before any application authentication.\nUI:N - No victim user action is needed beyond normal server operation; the remote attacker sends crafted TFO SYN traffic and benefits automatically when reuseport listener migration occurs during ordinary worker shutdown or reload.\nS:U - Impact is confined to the target host kernel TCP stack resource limits and availability; it does not cross VM, container, or IOMMU security boundaries to affect a different authority.\nC:N - The flaw is a signed counter accounting mismatch on fastopenq.qlen; it does not corrupt memory, leak kernel pointers, or provide an out-of-bounds read or use-after-free disclosure primitive.\nI:N - No arbitrary memory write, control-flow hijack, or unauthorized persistent data modification occurs; bypassing max_qlen only relaxes a rate limit while TFO cookie validation and normal TCP semantics still govern accepted data.\nA:H - With max_qlen disabled, a remote attacker can create far more pending TFO child sockets and SYN-carrying skbs than configured, exhausting kernel memory and socket tables and causing severe denial of service or OOM-induced host instability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:40.079Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e98f0d80b9cccb5f828425d2004f9686e7d1ae24"
},
{
"url": "https://git.kernel.org/stable/c/b6247e0f96bd825ffb2005257f6177b5e642dee6"
},
{
"url": "https://git.kernel.org/stable/c/585fc5247d14939a561056aa2addd9b7c2b1f670"
},
{
"url": "https://git.kernel.org/stable/c/6e10ee56524a26b250229ad348637825646ddb88"
},
{
"url": "https://git.kernel.org/stable/c/a66e869cf0c90c1e47ae75f72b6482acbfc808ff"
},
{
"url": "https://git.kernel.org/stable/c/d974618b2097453778389d385e3741629c40e0a3"
},
{
"url": "https://git.kernel.org/stable/c/a0ab2ba83e35159d81cec830a92e885ecf8139be"
}
],
"title": "tcp: fix TFO max_qlen accounting across reuseport migration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74696",
"datePublished": "2026-08-22T15:32:58.414Z",
"dateReserved": "2026-08-15T05:44:03.926Z",
"dateUpdated": "2026-10-16T19:16:09.811Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74541 (GCVE-0-2026-74541)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: clear iso_data always when detaching conn from hcon
When setting conn->hcon = NULL, also conn->hcon->iso_data = NULL is
necessary, otherwise later iso_conn_free() will UAF.
Fix clearing of iso_data in iso_sock_disconn()
Fixes KASAN: slab-use-after-free in iso_conn_hold_unless_zero on
iso_sock_release() followed by hci_abort_conn_sync().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fbdc4bc47268953c80853489f696e02d61f9a2c6 Version: fbdc4bc47268953c80853489f696e02d61f9a2c6 Version: fbdc4bc47268953c80853489f696e02d61f9a2c6 Version: fbdc4bc47268953c80853489f696e02d61f9a2c6 Version: fbdc4bc47268953c80853489f696e02d61f9a2c6 Version: c03a10bd5b6ccb22921e04bcddc987410df7e7a9 Version: 6.5.12 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74541",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:46.525127Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:54.748Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cc1d39946d62bc568551dfb81149724de1e91338",
"status": "affected",
"version": "fbdc4bc47268953c80853489f696e02d61f9a2c6",
"versionType": "git"
},
{
"lessThan": "7b51a9c25e9698b64df9f2218f10eecf7dc7e2d0",
"status": "affected",
"version": "fbdc4bc47268953c80853489f696e02d61f9a2c6",
"versionType": "git"
},
{
"lessThan": "63c0f396a18b767eb28e895eb95bbdce6c172c59",
"status": "affected",
"version": "fbdc4bc47268953c80853489f696e02d61f9a2c6",
"versionType": "git"
},
{
"lessThan": "69a4a7b162b3db6ac337e3094cdee38f24d42ff7",
"status": "affected",
"version": "fbdc4bc47268953c80853489f696e02d61f9a2c6",
"versionType": "git"
},
{
"lessThan": "d57e506f6a1e3929611340fae87c1e4823f4d85c",
"status": "affected",
"version": "fbdc4bc47268953c80853489f696e02d61f9a2c6",
"versionType": "git"
},
{
"status": "affected",
"version": "c03a10bd5b6ccb22921e04bcddc987410df7e7a9",
"versionType": "git"
},
{
"lessThan": "6.6",
"status": "affected",
"version": "6.5.12",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.5.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: clear iso_data always when detaching conn from hcon\n\nWhen setting conn-\u003ehcon = NULL, also conn-\u003ehcon-\u003eiso_data = NULL is\nnecessary, otherwise later iso_conn_free() will UAF.\n\nFix clearing of iso_data in iso_sock_disconn()\n\nFixes KASAN: slab-use-after-free in iso_conn_hold_unless_zero on\niso_sock_release() followed by hci_abort_conn_sync()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The flaw is in the Bluetooth ISO stack (net/bluetooth/iso.c); exploitation occurs during ISO connection teardown reachable from adjacent Bluetooth LE Audio/CIS/BIS deployments on phones, laptops, and embedded systems where ISO HCI traffic is processed wirelessly.\nAC:L - The KASAN reproducer (iso_sock_release() then hci_abort_conn_sync()) is reliably triggered by closing an ISO socket while hci_conn_drop() runs; the attacker controls both the socket lifecycle and concurrent teardown timing without depending on uncontrollable memory layout.\nPR:N - AF_BLUETOOTH/BTPROTO_ISO sockets require no CAP_NET_ADMIN or CAP_NET_RAW; any unprivileged process in init_net can open, connect, and close ISO sockets, and adjacent Bluetooth peers can also dereference the stale hcon-\u003eiso_data via iso_recv() without host credentials.\nUI:N - No victim interaction is required when a malicious or compromised local process creates and closes its own ISO connection to trigger iso_sock_disconn(); exploitation does not depend on mounting filesystems or opening specific user files.\nS:U - The UAF corrupts kernel heap memory during ISO connection teardown, enabling standard local privilege escalation within the kernel security boundary rather than crossing VM, container, or IOMMU isolation boundaries.\nC:H - iso_conn_hold_unless_zero() performs kref_get_unless_zero() on a freed iso_conn slab object, a classic use-after-free that can expose adjacent kernel heap contents and be leveraged for arbitrary kernel memory disclosure.\nI:H - The UAF on iso_conn (containing kref, spinlock, and socket pointers) enables heap spraying and memory corruption primitives that can be chained for arbitrary kernel writes and control-flow hijacking.\nA:H - The bug was confirmed by KASAN as a slab use-after-free in iso_conn_hold_unless_zero during ISO socket release and hci_abort_conn_sync(), which causes kernel oops or panic and denial of service on affected systems."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:48:29.921Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cc1d39946d62bc568551dfb81149724de1e91338"
},
{
"url": "https://git.kernel.org/stable/c/7b51a9c25e9698b64df9f2218f10eecf7dc7e2d0"
},
{
"url": "https://git.kernel.org/stable/c/63c0f396a18b767eb28e895eb95bbdce6c172c59"
},
{
"url": "https://git.kernel.org/stable/c/69a4a7b162b3db6ac337e3094cdee38f24d42ff7"
},
{
"url": "https://git.kernel.org/stable/c/d57e506f6a1e3929611340fae87c1e4823f4d85c"
}
],
"title": "Bluetooth: ISO: clear iso_data always when detaching conn from hcon",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74541",
"datePublished": "2026-08-15T12:27:52.120Z",
"dateReserved": "2026-08-15T05:44:03.914Z",
"dateUpdated": "2026-10-16T19:05:54.748Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93269 (GCVE-0-2026-93269)
Vulnerability from cvelistv5
Published
2026-09-24 15:52
Modified
2026-10-19 09:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix circular lock dependency in ext4_ext_migrate
Move iput(tmp_inode) after ext4_writepages_up_write() to avoid a
circular lock dependency between s_writepages_rwsem and sb_internal
(freeze protection).
The deadlock scenario:
CPU0 (EXT4_IOC_MIGRATE) CPU1 (orphan cleanup during mount)
---- ----
ext4_ext_migrate()
ext4_writepages_down_write()
s_writepages_rwsem (write)
ext4_evict_inode()
sb_start_intwrite() [sb_internal]
...
ext4_writepages()
s_writepages_rwsem (read) [BLOCKED]
iput(tmp_inode)
ext4_evict_inode()
sb_start_intwrite() [BLOCKED]
The tmp_inode is a temporary inode with nlink=0 created solely for
building the extent tree. Its eviction does not require
s_writepages_rwsem protection, so deferring iput() until after
releasing the rwsem is safe.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cb85f4d23f794e24127f3e562cb3b54b0803f456 Version: cb85f4d23f794e24127f3e562cb3b54b0803f456 Version: cb85f4d23f794e24127f3e562cb3b54b0803f456 Version: cb85f4d23f794e24127f3e562cb3b54b0803f456 Version: cb85f4d23f794e24127f3e562cb3b54b0803f456 Version: eb799e163dc2bc1ea0a4820b66f79d32a5e907df Version: bcc1eab71a67c46b9e24544ac7923f44444174ce Version: 8cf20fb73e73a4c4df0328b5297842c5ef34fdd9 Version: e5d25003d059649e18a249635ed5ca7a7b1de5ad Version: 69f8a7991fd93c49096ddd11574db3e7df238b7b Version: 4.9.215 ≤ Version: 4.14.172 ≤ Version: 4.19.107 ≤ Version: 5.4.23 ≤ Version: 5.5.7 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/migrate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "452950461241dfed8b1d32e94b227db38c99c5af",
"status": "affected",
"version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
"versionType": "git"
},
{
"lessThan": "ada23457d4748d6e9c36c6f871fc29a6f558c48c",
"status": "affected",
"version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
"versionType": "git"
},
{
"lessThan": "e4223231b6860141813637a6413c2371ae4d6fa8",
"status": "affected",
"version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
"versionType": "git"
},
{
"lessThan": "32f7ab52875ec7f800ca67e7176e5743a84baddf",
"status": "affected",
"version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
"versionType": "git"
},
{
"lessThan": "a897682793eba5de51ee6f3152760374afa629cf",
"status": "affected",
"version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
"versionType": "git"
},
{
"status": "affected",
"version": "eb799e163dc2bc1ea0a4820b66f79d32a5e907df",
"versionType": "git"
},
{
"status": "affected",
"version": "bcc1eab71a67c46b9e24544ac7923f44444174ce",
"versionType": "git"
},
{
"status": "affected",
"version": "8cf20fb73e73a4c4df0328b5297842c5ef34fdd9",
"versionType": "git"
},
{
"status": "affected",
"version": "e5d25003d059649e18a249635ed5ca7a7b1de5ad",
"versionType": "git"
},
{
"status": "affected",
"version": "69f8a7991fd93c49096ddd11574db3e7df238b7b",
"versionType": "git"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.215",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.172",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.107",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.23",
"versionType": "semver"
},
{
"lessThan": "5.6",
"status": "affected",
"version": "5.5.7",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/migrate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.215",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.172",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.107",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix circular lock dependency in ext4_ext_migrate\n\nMove iput(tmp_inode) after ext4_writepages_up_write() to avoid a\ncircular lock dependency between s_writepages_rwsem and sb_internal\n(freeze protection).\n\nThe deadlock scenario:\n\n CPU0 (EXT4_IOC_MIGRATE) CPU1 (orphan cleanup during mount)\n ---- ----\n ext4_ext_migrate()\n ext4_writepages_down_write()\n s_writepages_rwsem (write)\n ext4_evict_inode()\n sb_start_intwrite() [sb_internal]\n ...\n ext4_writepages()\n s_writepages_rwsem (read) [BLOCKED]\n iput(tmp_inode)\n ext4_evict_inode()\n sb_start_intwrite() [BLOCKED]\n\nThe tmp_inode is a temporary inode with nlink=0 created solely for\nbuilding the extent tree. Its eviction does not require\ns_writepages_rwsem protection, so deferring iput() until after\nreleasing the rwsem is safe."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:08:23.592Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/452950461241dfed8b1d32e94b227db38c99c5af"
},
{
"url": "https://git.kernel.org/stable/c/ada23457d4748d6e9c36c6f871fc29a6f558c48c"
},
{
"url": "https://git.kernel.org/stable/c/e4223231b6860141813637a6413c2371ae4d6fa8"
},
{
"url": "https://git.kernel.org/stable/c/32f7ab52875ec7f800ca67e7176e5743a84baddf"
},
{
"url": "https://git.kernel.org/stable/c/a897682793eba5de51ee6f3152760374afa629cf"
}
],
"title": "ext4: fix circular lock dependency in ext4_ext_migrate",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93269",
"datePublished": "2026-09-24T15:52:09.047Z",
"dateReserved": "2026-09-17T16:02:15.097Z",
"dateUpdated": "2026-10-19T09:08:23.592Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68258 (GCVE-0-2026-68258)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Check bounds on CRIU restore queue type and mqd size
We weren't checking whether the values provided in the private
data in kfd CRIU restore were within bounds.
For queue type, add a KFD_QUEUE_TYPE_MAX and ensure the provided
type is less than it.
For mqd_size, add new function mqd_size_from_queue_type and confirm
that the provided mqd_size matches expectations.
(cherry picked from commit f19d8086f6644083c913d70bfdeee20e1b6f46a5)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68258",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:19.338740Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:58.519Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c",
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h",
"drivers/gpu/drm/amd/amdkfd/kfd_priv.h",
"drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2b817c0dfc653bf33d0e0ab8155ff7807a617487",
"status": "affected",
"version": "42c6c48214b726c30918e8dc80e2168607d13ae4",
"versionType": "git"
},
{
"lessThan": "1956aa246c65c5895589664ccb37d0710aa8d304",
"status": "affected",
"version": "42c6c48214b726c30918e8dc80e2168607d13ae4",
"versionType": "git"
},
{
"lessThan": "fd1691ec62701c982ea32e749678988c67fd4c21",
"status": "affected",
"version": "42c6c48214b726c30918e8dc80e2168607d13ae4",
"versionType": "git"
},
{
"lessThan": "cc10a5839756982504ee8568fc1e1625962ab7f8",
"status": "affected",
"version": "42c6c48214b726c30918e8dc80e2168607d13ae4",
"versionType": "git"
},
{
"lessThan": "47ea05f246bebc81c7796f56265cffd812cf0601",
"status": "affected",
"version": "42c6c48214b726c30918e8dc80e2168607d13ae4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c",
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h",
"drivers/gpu/drm/amd/amdkfd/kfd_priv.h",
"drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: Check bounds on CRIU restore queue type and mqd size\n\nWe weren\u0027t checking whether the values provided in the private\ndata in kfd CRIU restore were within bounds.\n\nFor queue type, add a KFD_QUEUE_TYPE_MAX and ensure the provided\ntype is less than it.\n\nFor mqd_size, add new function mqd_size_from_queue_type and confirm\nthat the provided mqd_size matches expectations.\n\n(cherry picked from commit f19d8086f6644083c913d70bfdeee20e1b6f46a5)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable code is reached only through the AMDKFD_IOC_CRIU_OP ioctl on the local /dev/kfd character device; there is no remote or adjacent-network path into amdkfd CRIU restore handling.\nAC:L - The attacker directly supplies mqd_size and type in the CRIU private data, so a single ioctl deterministically triggers the over-read or the ZERO_SIZE_PTR dereference; restore runs under p-\u003emutex so no race must be won.\nPR:L - The attacker needs /dev/kfd access (render group) plus CAP_CHECKPOINT_RESTORE or CAP_SYS_ADMIN; CAP_CHECKPOINT_RESTORE is a delegated, non-root capability routinely granted to CRIU tooling and container checkpoint/restore services, so this is a limited privilege rather than full administrative control.\nUI:N - The attacker issues the CRIU restore and checkpoint ioctls entirely against its own KFD process context; no action by another user or victim process is required.\nS:U - The out-of-bounds read and resulting crash stay within the kernel\u0027s own security authority on the host; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - restore_mqd() memcpy\u0027s a full ASIC MQD (e.g. sizeof(struct v9_mqd)) out of a kmalloc buffer sized by the attacker\u0027s smaller mqd_size, and criu_checkpoint_queues_device() then copies the entire MQD back to userspace, disclosing adjacent kernel slab contents.\nI:N - The destination MQD buffer is allocated by the mqd manager at its own correct size and ctl_stack_size is validated against node_props, so nothing is written out of bounds; the defect is purely a source-side over-read.\nA:H - With mqd_size and ctl_stack_size both zero, kmalloc(0) returns ZERO_SIZE_PTR and the memcpy faults reading address 0x10 while dqm_lock is held, oopsing the kernel; an out-of-range queue type also trips WARN(), panicking systems with panic_on_warn."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:41.233Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2b817c0dfc653bf33d0e0ab8155ff7807a617487"
},
{
"url": "https://git.kernel.org/stable/c/1956aa246c65c5895589664ccb37d0710aa8d304"
},
{
"url": "https://git.kernel.org/stable/c/fd1691ec62701c982ea32e749678988c67fd4c21"
},
{
"url": "https://git.kernel.org/stable/c/cc10a5839756982504ee8568fc1e1625962ab7f8"
},
{
"url": "https://git.kernel.org/stable/c/47ea05f246bebc81c7796f56265cffd812cf0601"
}
],
"title": "drm/amdkfd: Check bounds on CRIU restore queue type and mqd size",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68258",
"datePublished": "2026-08-10T12:01:32.149Z",
"dateReserved": "2026-07-30T09:28:09.378Z",
"dateUpdated": "2026-10-21T12:43:41.233Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72166 (GCVE-0-2026-72166)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/9p: fix infinite loop in p9_client_rpc on fatal signal
When p9_client_rpc() is called with type P9_TFLUSH and the transport
has no peer (e.g. fd transport backed by pipes with no 9p server),
a fatal signal causes an infinite loop:
again:
err = io_wait_event_killable(req->wq, ...)
/* SIGKILL wakes the task, returns -ERESTARTSYS */
if (err == -ERESTARTSYS && c->status == Connected &&
type == P9_TFLUSH) {
sigpending = 1;
clear_thread_flag(TIF_SIGPENDING);
goto again;
}
clear_thread_flag() clears TIF_SIGPENDING before jumping back to
io_wait_event_killable(). signal_pending_state() checks TIF_SIGPENDING,
finds it zero, and the task goes to sleep again. The task can only wake
on the next signal delivery that calls signal_wake_up() and sets
TIF_SIGPENDING again. When that happens the loop repeats, clears
TIF_SIGPENDING, and sleeps again indefinitely.
This is triggered in practice by coredump_wait(): when a thread in a
multi-threaded process causes a coredump (e.g. via SIGSYS from Syscall
User Dispatch), coredump_wait() sends SIGKILL to all other threads and
waits for them to call mm_release(). If one of those threads is blocked
in p9_client_rpc() over an fd transport with no peer, it enters the
P9_TFLUSH loop and never calls mm_release(), so coredump_wait() stalls
forever:
INFO: task syz.0.18:676 blocked for more than 143 seconds.
Not tainted 6.12.77+ #1
task:syz.0.18 state:D stack:27600 pid:676 tgid:673 ppid:630 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5344 [inline]
__schedule+0xcb4/0x5d50 kernel/sched/core.c:6724
__schedule_loop kernel/sched/core.c:6801 [inline]
schedule+0xe5/0x350 kernel/sched/core.c:6816
schedule_timeout+0x253/0x290 kernel/time/timer.c:2593
do_wait_for_common kernel/sched/completion.c:95 [inline]
__wait_for_common+0x409/0x600 kernel/sched/completion.c:116
wait_for_common kernel/sched/completion.c:127 [inline]
wait_for_completion_state+0x1d/0x40 kernel/sched/completion.c:264
coredump_wait fs/coredump.c:448 [inline]
do_coredump+0x854/0x4350 fs/coredump.c:629
get_signal+0x1425/0x2730 kernel/signal.c:2903
arch_do_signal_or_restart+0x81/0x880 arch/x86/kernel/signal.c:337
exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
syscall_exit_to_user_mode+0xf9/0x160 kernel/entry/common.c:218
do_syscall_64+0x102/0x220 arch/x86/entry/common.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
Fix: check fatal_signal_pending() before clearing TIF_SIGPENDING in the
P9_TFLUSH retry loop. At that point TIF_SIGPENDING is still set, so
fatal_signal_pending() works correctly. If a fatal signal is pending,
jump to recalc_sigpending to restore TIF_SIGPENDING and return
-ERESTARTSYS to the caller.
The same defect is present in stable kernels back to 5.4. On those
kernels the infinite loop is broken earlier by a second SIGKILL from
the parent process (e.g. kill_and_wait() retrying after a timeout),
resulting in a zombie process and a shutdown delay rather than a
permanent D-state hang, but the underlying flaw is the same.
Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad Version: 91b8534fa8f5e01f249b1bf8df0a2540053549ad |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/9p/client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "18a3427526e2141f80050f82c1d26b19a454707d",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "378481cc60a937ef8ea4ef6e4f95f0dbc4e21414",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "4f621ae3a2d99b0bac50e8d66cbf7f68323c01e8",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "f62a1f245a71680033260a6f6d74011cc3acb3cd",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "dc892cbb1e4341d427b1f940ebd6abd69bf8e479",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "a8874c34c4a973f9922908a4b8be1d1278f01e42",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "823886a1b089b49bcd349bc8bd3417b7910cd1ac",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
},
{
"lessThan": "6b4f48728faa8bb514368f7eacda05565dea8696",
"status": "affected",
"version": "91b8534fa8f5e01f249b1bf8df0a2540053549ad",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/9p/client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.28"
},
{
"lessThan": "2.6.28",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.28",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/9p: fix infinite loop in p9_client_rpc on fatal signal\n\nWhen p9_client_rpc() is called with type P9_TFLUSH and the transport\nhas no peer (e.g. fd transport backed by pipes with no 9p server),\na fatal signal causes an infinite loop:\n\n again:\n\terr = io_wait_event_killable(req-\u003ewq, ...)\n\t/* SIGKILL wakes the task, returns -ERESTARTSYS */\n\n\tif (err == -ERESTARTSYS \u0026\u0026 c-\u003estatus == Connected \u0026\u0026\n\t\ttype == P9_TFLUSH) {\n\t\tsigpending = 1;\n\t\tclear_thread_flag(TIF_SIGPENDING);\n\t\tgoto again;\n\t}\n\nclear_thread_flag() clears TIF_SIGPENDING before jumping back to\nio_wait_event_killable(). signal_pending_state() checks TIF_SIGPENDING,\nfinds it zero, and the task goes to sleep again. The task can only wake\non the next signal delivery that calls signal_wake_up() and sets\nTIF_SIGPENDING again. When that happens the loop repeats, clears\nTIF_SIGPENDING, and sleeps again indefinitely.\n\nThis is triggered in practice by coredump_wait(): when a thread in a\nmulti-threaded process causes a coredump (e.g. via SIGSYS from Syscall\nUser Dispatch), coredump_wait() sends SIGKILL to all other threads and\nwaits for them to call mm_release(). If one of those threads is blocked\nin p9_client_rpc() over an fd transport with no peer, it enters the\nP9_TFLUSH loop and never calls mm_release(), so coredump_wait() stalls\nforever:\n\nINFO: task syz.0.18:676 blocked for more than 143 seconds.\n Not tainted 6.12.77+ #1\ntask:syz.0.18 state:D stack:27600 pid:676 tgid:673 ppid:630 flags:0x00000004\nCall Trace:\n \u003cTASK\u003e\n context_switch kernel/sched/core.c:5344 [inline]\n __schedule+0xcb4/0x5d50 kernel/sched/core.c:6724\n __schedule_loop kernel/sched/core.c:6801 [inline]\n schedule+0xe5/0x350 kernel/sched/core.c:6816\n schedule_timeout+0x253/0x290 kernel/time/timer.c:2593\n do_wait_for_common kernel/sched/completion.c:95 [inline]\n __wait_for_common+0x409/0x600 kernel/sched/completion.c:116\n wait_for_common kernel/sched/completion.c:127 [inline]\n wait_for_completion_state+0x1d/0x40 kernel/sched/completion.c:264\n coredump_wait fs/coredump.c:448 [inline]\n do_coredump+0x854/0x4350 fs/coredump.c:629\n get_signal+0x1425/0x2730 kernel/signal.c:2903\n arch_do_signal_or_restart+0x81/0x880 arch/x86/kernel/signal.c:337\n exit_to_user_mode_loop kernel/entry/common.c:111 [inline]\n exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]\n __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]\n syscall_exit_to_user_mode+0xf9/0x160 kernel/entry/common.c:218\n do_syscall_64+0x102/0x220 arch/x86/entry/common.c:84\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n \u003c/TASK\u003e\n\nFix: check fatal_signal_pending() before clearing TIF_SIGPENDING in the\nP9_TFLUSH retry loop. At that point TIF_SIGPENDING is still set, so\nfatal_signal_pending() works correctly. If a fatal signal is pending,\njump to recalc_sigpending to restore TIF_SIGPENDING and return\n-ERESTARTSYS to the caller.\n\nThe same defect is present in stable kernels back to 5.4. On those\nkernels the infinite loop is broken earlier by a second SIGKILL from\nthe parent process (e.g. kill_and_wait() retrying after a timeout),\nresulting in a zombie process and a shutdown delay rather than a\npermanent D-state hang, but the underlying flaw is the same.\n\nFound by Linux Verification Center (linuxtesting.org) with Syzkaller."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:57.100Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/18a3427526e2141f80050f82c1d26b19a454707d"
},
{
"url": "https://git.kernel.org/stable/c/378481cc60a937ef8ea4ef6e4f95f0dbc4e21414"
},
{
"url": "https://git.kernel.org/stable/c/4f621ae3a2d99b0bac50e8d66cbf7f68323c01e8"
},
{
"url": "https://git.kernel.org/stable/c/f62a1f245a71680033260a6f6d74011cc3acb3cd"
},
{
"url": "https://git.kernel.org/stable/c/dc892cbb1e4341d427b1f940ebd6abd69bf8e479"
},
{
"url": "https://git.kernel.org/stable/c/a8874c34c4a973f9922908a4b8be1d1278f01e42"
},
{
"url": "https://git.kernel.org/stable/c/823886a1b089b49bcd349bc8bd3417b7910cd1ac"
},
{
"url": "https://git.kernel.org/stable/c/6b4f48728faa8bb514368f7eacda05565dea8696"
}
],
"title": "net/9p: fix infinite loop in p9_client_rpc on fatal signal",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72166",
"datePublished": "2026-08-15T05:53:33.383Z",
"dateReserved": "2026-08-09T03:40:39.909Z",
"dateUpdated": "2026-08-23T12:46:57.100Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80756 (GCVE-0-2026-80756)
Vulnerability from cvelistv5
Published
2026-09-03 08:26
Modified
2026-09-03 08:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
selinux: do not cancel a policy conversion that never started
sel_write_load() calls selinux_policy_cancel() when sel_make_policy_nodes()
fails, and that helper dereferences the outgoing policy to cancel its
sidtab conversion. On the first policy load there is no outgoing policy:
security_load_policy() returns early for that case, before it converts
anything, and state->policy is still NULL. A first load that fails while
building the selinuxfs tree therefore takes a NULL dereference in
selinux_policy_cancel(), reached from a write(2) to /sys/fs/selinux/load.
Skip the cancel when there is no old policy, mirroring the check
security_load_policy() already makes before it converts.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 Version: 02a52c5c8c3b8cbad0f12009cde9f36dbefb6972 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/selinux/ss/services.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d29983104f06f5b0babcd5a25a0f0408272cd27",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "a4f182f8715cb0819445f0850cd5436828f4bafc",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "1059789ae9f99cbbe3a78e361e9c0976beb5958b",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "1acc317d67a755a45e32419a15d70e403fa43f0e",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "a42932c6aa33d0aac683cacdf1ec7009b955ba5d",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "1b4ff94ae7c580c880291519fb0e3e2bd075beef",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "219c96de5d9b6b4af7e8576ad897b774cc3ee9a7",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
},
{
"lessThan": "e5c0235a3c4e9eb047a16cd02323fe4ecf2f570e",
"status": "affected",
"version": "02a52c5c8c3b8cbad0f12009cde9f36dbefb6972",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/selinux/ss/services.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nselinux: do not cancel a policy conversion that never started\n\nsel_write_load() calls selinux_policy_cancel() when sel_make_policy_nodes()\nfails, and that helper dereferences the outgoing policy to cancel its\nsidtab conversion. On the first policy load there is no outgoing policy:\nsecurity_load_policy() returns early for that case, before it converts\nanything, and state-\u003epolicy is still NULL. A first load that fails while\nbuilding the selinuxfs tree therefore takes a NULL dereference in\nselinux_policy_cancel(), reached from a write(2) to /sys/fs/selinux/load.\n\nSkip the cancel when there is no old policy, mirroring the check\nsecurity_load_policy() already makes before it converts."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-03T08:26:34.396Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2d29983104f06f5b0babcd5a25a0f0408272cd27"
},
{
"url": "https://git.kernel.org/stable/c/a4f182f8715cb0819445f0850cd5436828f4bafc"
},
{
"url": "https://git.kernel.org/stable/c/1059789ae9f99cbbe3a78e361e9c0976beb5958b"
},
{
"url": "https://git.kernel.org/stable/c/1acc317d67a755a45e32419a15d70e403fa43f0e"
},
{
"url": "https://git.kernel.org/stable/c/a42932c6aa33d0aac683cacdf1ec7009b955ba5d"
},
{
"url": "https://git.kernel.org/stable/c/1b4ff94ae7c580c880291519fb0e3e2bd075beef"
},
{
"url": "https://git.kernel.org/stable/c/219c96de5d9b6b4af7e8576ad897b774cc3ee9a7"
},
{
"url": "https://git.kernel.org/stable/c/e5c0235a3c4e9eb047a16cd02323fe4ecf2f570e"
}
],
"title": "selinux: do not cancel a policy conversion that never started",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80756",
"datePublished": "2026-09-03T08:26:34.396Z",
"dateReserved": "2026-08-26T14:34:25.791Z",
"dateUpdated": "2026-09-03T08:26:34.396Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93800 (GCVE-0-2026-93800)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix use-after-free on reloc root after error in insert_dirty_subvol()
If during relocation we fail in insert_dirty_subvol() because
btrfs_update_reloc_root() returned an error, we will leave a root's
reloc_root field pointing to a reloc root that was freed instead of NULL,
resulting later in a use-after-free, or double free attempt during
unmount.
The sequence of steps is this:
1) During relocation the call to btrfs_update_reloc_root() in
insert_dirty_subvol() fails, so insert_dirty_subvol() returns the
error to merge_reloc_root() without adding the root to the list
rc->dirty_subvol_roots;
2) Then merge_reloc_root() aborts the current transaction because
insert_dirty_subvol() returned an error;
3) Up the call chain, merge_reloc_roots() gets the error, adds the
reloc root for root X to the local reloc_roots list and jumps to the
'out' label, where it calls free_reloc_roots() to free all the reloc
roots in the local reloc_roots list. This frees the reloc root for
root X;
4) We go up the call chain to relocate_block_group() which calls
clean_dirty_subvols() to go over dirty roots and set their
->reloc_root field to NULL, but root X is not in the dirty_subvol_roots
list, so its ->reloc_root still points to a reloc root;
5) Relocation finishes, with an error and a transaction abort, but the
->reloc_root field for root X still points to the reloc root that was
freed in step 3;
6) When unmounting the fs we end up calling:
btrfs_free_fs_roots()
btrfs_drop_and_free_fs_root()
--> calls btrfs_put_root() against root X's ->reloc_root
which is not NULL and points to the already freed
reloc root in step 4 above
Resulting in a use-after-free to a double free attempt.
Syzbot reported this with the following dmesg/syslog:
[ 106.004389][ T5339] BTRFS error (device loop0 state A): Transaction aborted (error -5)
[ 106.014266][ T5339] BTRFS: error (device loop0 state A) in merge_reloc_root:1655: errno=-5 IO failure
[ 106.021891][ T1061] BTRFS error (device loop0 state A): error while writing out transaction: -5
[ 106.026964][ T1061] BTRFS warning (device loop0 state A): Skipping commit of aborted transaction.
[ 106.033807][ T5340] BTRFS error (device loop0 state A): bdev /dev/loop0 errs: wr 3, rd 0, flush 0, corrupt 0, gen 0
[ 106.039265][ T1061] BTRFS: error (device loop0 state A) in cleanup_transaction:2067: errno=-5 IO failure
[ 106.044382][ T5339] BTRFS info (device loop0 state EA): forced readonly
[ 106.074329][ T5339] BTRFS: error (device loop0 state EA) in merge_reloc_roots:1887: errno=-5 IO failure
[ 106.081004][ T5356] BTRFS info (device loop0 state EA): scrub: started on devid 1
[ 106.085611][ T5339] BTRFS info (device loop0 state EA): balance: ended with status: -30
[ 106.089517][ T5356] BTRFS info (device loop0 state EA): scrub: not finished on devid 1 with status: -30
[ 106.662365][ T5338] BTRFS info (device loop0 state EA): last unmount of filesystem 3a375e4e-b156-4d76-a2ad-16e198ce1409
[ 106.682946][ T5338] ==================================================================
[ 106.686574][ T5338] BUG: KASAN: slab-use-after-free in btrfs_put_root+0x2f/0x250
[ 106.690090][ T5338] Write of size 4 at addr ffff88803f978630 by task syz.0.0/5338
[ 106.693173][ T5338]
[ 106.694279][ T5338] CPU: 0 UID: 0 PID: 5338 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
[ 106.694293][ T5338] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[ 106.694300][ T5338] Call Trace:
[ 106.694308][ T5338] <TASK>
[ 106.694314][ T5338] dump_stack_lvl+0xe8/0x150
[ 106.694331][ T5338] print_address_description+0x55/0x1e0
[ 106.694343][ T5338] ? btrfs_put_root+0x2f/0x250
[ 106.694358][ T5338] print_report+0x58/0x70
[ 106.
---truncated---
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f32b84d7c977e1906a4781b93b3c93090b6cd675 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: 592fbcd50c99b8adf999a2a54f9245caff333139 Version: aa18bc1ff8a51f082d5b3b6d07693797637b4028 Version: 4cb0aea2e250eee35ccfac5f5395cd8f3238a9e5 Version: 5.10.36 ≤ Version: 5.11.20 ≤ Version: 5.12.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/relocation.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5a247097c5f94b51ffc991b444d998ad6e85875f",
"status": "affected",
"version": "f32b84d7c977e1906a4781b93b3c93090b6cd675",
"versionType": "git"
},
{
"lessThan": "6372dd394ea907cd85a7a8063db320ec73dfaed0",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"lessThan": "9f599d120b2b79d2d937c3935b7cdf2697514283",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"lessThan": "a01837ae174a2a968c245a30e6dd010f50eaf05d",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"lessThan": "97a540d72ebcb21853d11f2a56782fe377f358e7",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"lessThan": "fda1b6636ff1846f00643e791099db5564b547d9",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"lessThan": "83201804efa4a5168be754e1dfc9b2faee760cac",
"status": "affected",
"version": "592fbcd50c99b8adf999a2a54f9245caff333139",
"versionType": "git"
},
{
"status": "affected",
"version": "aa18bc1ff8a51f082d5b3b6d07693797637b4028",
"versionType": "git"
},
{
"status": "affected",
"version": "4cb0aea2e250eee35ccfac5f5395cd8f3238a9e5",
"versionType": "git"
},
{
"lessThan": "5.10.271",
"status": "affected",
"version": "5.10.36",
"versionType": "semver"
},
{
"lessThan": "5.12",
"status": "affected",
"version": "5.11.20",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/relocation.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "5.10.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix use-after-free on reloc root after error in insert_dirty_subvol()\n\nIf during relocation we fail in insert_dirty_subvol() because\nbtrfs_update_reloc_root() returned an error, we will leave a root\u0027s\nreloc_root field pointing to a reloc root that was freed instead of NULL,\nresulting later in a use-after-free, or double free attempt during\nunmount.\n\nThe sequence of steps is this:\n\n1) During relocation the call to btrfs_update_reloc_root() in\n insert_dirty_subvol() fails, so insert_dirty_subvol() returns the\n error to merge_reloc_root() without adding the root to the list\n rc-\u003edirty_subvol_roots;\n\n2) Then merge_reloc_root() aborts the current transaction because\n insert_dirty_subvol() returned an error;\n\n3) Up the call chain, merge_reloc_roots() gets the error, adds the\n reloc root for root X to the local reloc_roots list and jumps to the\n \u0027out\u0027 label, where it calls free_reloc_roots() to free all the reloc\n roots in the local reloc_roots list. This frees the reloc root for\n root X;\n\n4) We go up the call chain to relocate_block_group() which calls\n clean_dirty_subvols() to go over dirty roots and set their\n -\u003ereloc_root field to NULL, but root X is not in the dirty_subvol_roots\n list, so its -\u003ereloc_root still points to a reloc root;\n\n5) Relocation finishes, with an error and a transaction abort, but the\n -\u003ereloc_root field for root X still points to the reloc root that was\n freed in step 3;\n\n6) When unmounting the fs we end up calling:\n\n btrfs_free_fs_roots()\n btrfs_drop_and_free_fs_root()\n --\u003e calls btrfs_put_root() against root X\u0027s -\u003ereloc_root\n which is not NULL and points to the already freed\n reloc root in step 4 above\n\n Resulting in a use-after-free to a double free attempt.\n\nSyzbot reported this with the following dmesg/syslog:\n\n [ 106.004389][ T5339] BTRFS error (device loop0 state A): Transaction aborted (error -5)\n [ 106.014266][ T5339] BTRFS: error (device loop0 state A) in merge_reloc_root:1655: errno=-5 IO failure\n [ 106.021891][ T1061] BTRFS error (device loop0 state A): error while writing out transaction: -5\n [ 106.026964][ T1061] BTRFS warning (device loop0 state A): Skipping commit of aborted transaction.\n [ 106.033807][ T5340] BTRFS error (device loop0 state A): bdev /dev/loop0 errs: wr 3, rd 0, flush 0, corrupt 0, gen 0\n [ 106.039265][ T1061] BTRFS: error (device loop0 state A) in cleanup_transaction:2067: errno=-5 IO failure\n [ 106.044382][ T5339] BTRFS info (device loop0 state EA): forced readonly\n [ 106.074329][ T5339] BTRFS: error (device loop0 state EA) in merge_reloc_roots:1887: errno=-5 IO failure\n [ 106.081004][ T5356] BTRFS info (device loop0 state EA): scrub: started on devid 1\n [ 106.085611][ T5339] BTRFS info (device loop0 state EA): balance: ended with status: -30\n [ 106.089517][ T5356] BTRFS info (device loop0 state EA): scrub: not finished on devid 1 with status: -30\n [ 106.662365][ T5338] BTRFS info (device loop0 state EA): last unmount of filesystem 3a375e4e-b156-4d76-a2ad-16e198ce1409\n [ 106.682946][ T5338] ==================================================================\n [ 106.686574][ T5338] BUG: KASAN: slab-use-after-free in btrfs_put_root+0x2f/0x250\n [ 106.690090][ T5338] Write of size 4 at addr ffff88803f978630 by task syz.0.0/5338\n [ 106.693173][ T5338]\n [ 106.694279][ T5338] CPU: 0 UID: 0 PID: 5338 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)\n [ 106.694293][ T5338] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\n [ 106.694300][ T5338] Call Trace:\n [ 106.694308][ T5338] \u003cTASK\u003e\n [ 106.694314][ T5338] dump_stack_lvl+0xe8/0x150\n [ 106.694331][ T5338] print_address_description+0x55/0x1e0\n [ 106.694343][ T5338] ? btrfs_put_root+0x2f/0x250\n [ 106.694358][ T5338] print_report+0x58/0x70\n [ 106.\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:34.733Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5a247097c5f94b51ffc991b444d998ad6e85875f"
},
{
"url": "https://git.kernel.org/stable/c/6372dd394ea907cd85a7a8063db320ec73dfaed0"
},
{
"url": "https://git.kernel.org/stable/c/9f599d120b2b79d2d937c3935b7cdf2697514283"
},
{
"url": "https://git.kernel.org/stable/c/a01837ae174a2a968c245a30e6dd010f50eaf05d"
},
{
"url": "https://git.kernel.org/stable/c/97a540d72ebcb21853d11f2a56782fe377f358e7"
},
{
"url": "https://git.kernel.org/stable/c/fda1b6636ff1846f00643e791099db5564b547d9"
},
{
"url": "https://git.kernel.org/stable/c/83201804efa4a5168be754e1dfc9b2faee760cac"
}
],
"title": "btrfs: fix use-after-free on reloc root after error in insert_dirty_subvol()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93800",
"datePublished": "2026-09-24T16:02:34.370Z",
"dateReserved": "2026-09-18T17:59:28.789Z",
"dateUpdated": "2026-10-03T10:57:34.733Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93829 (GCVE-0-2026-93829)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix races in cifsd thread creation
The cifsd demultiplex thread can run and access tcp_ses before the parent
thread has finished populating tcp_ses, which the worker thread accesses
locklessly.
Also, the kthread_run macro may start the thread before returning the
thread pointer. Because the pointer is part of the structure that the
thread can access, if the kernel is preempted after the thread is spawned,
but before the thread pointer is populated and the thread attempts to exit,
it will sleep, waiting for a SIGKILL signal.
Fix this by moving creation of the thread to after all of tcp_ses'es
fields are populated, and spawning the thread last, using a split
kthread_create/wake_up_process logic.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/connect.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cfa09f63e75cf440c9be97d1e73d509bfbb2c2c5",
"status": "affected",
"version": "aaf737adb6937339494d5a7111f0433cd9676db8",
"versionType": "git"
},
{
"lessThan": "ee8f811cbac56ffb738b3a73671a9e75b0f56e99",
"status": "affected",
"version": "aaf737adb6937339494d5a7111f0433cd9676db8",
"versionType": "git"
},
{
"lessThan": "0eee1e6cddd1d9ce14da06e0238ca8d3362dec90",
"status": "affected",
"version": "aaf737adb6937339494d5a7111f0433cd9676db8",
"versionType": "git"
},
{
"lessThan": "e8a5cf2ff5a13fefb228f2069e29dd7d8e37185d",
"status": "affected",
"version": "aaf737adb6937339494d5a7111f0433cd9676db8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/connect.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix races in cifsd thread creation\n\nThe cifsd demultiplex thread can run and access tcp_ses before the parent\nthread has finished populating tcp_ses, which the worker thread accesses\nlocklessly.\n\nAlso, the kthread_run macro may start the thread before returning the\nthread pointer. Because the pointer is part of the structure that the\nthread can access, if the kernel is preempted after the thread is spawned,\nbut before the thread pointer is populated and the thread attempts to exit,\nit will sleep, waiting for a SIGKILL signal.\n\nFix this by moving creation of the thread to after all of tcp_ses\u0027es\nfields are populated, and spawning the thread last, using a split\nkthread_create/wake_up_process logic."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:59.082Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cfa09f63e75cf440c9be97d1e73d509bfbb2c2c5"
},
{
"url": "https://git.kernel.org/stable/c/ee8f811cbac56ffb738b3a73671a9e75b0f56e99"
},
{
"url": "https://git.kernel.org/stable/c/0eee1e6cddd1d9ce14da06e0238ca8d3362dec90"
},
{
"url": "https://git.kernel.org/stable/c/e8a5cf2ff5a13fefb228f2069e29dd7d8e37185d"
}
],
"title": "smb: client: fix races in cifsd thread creation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93829",
"datePublished": "2026-09-24T16:03:11.886Z",
"dateReserved": "2026-09-18T17:59:28.793Z",
"dateUpdated": "2026-10-03T10:57:59.082Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72017 (GCVE-0-2026-72017)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: macb: drop in-flight Tx SKBs on close
The MACB driver has since forever leaked the outgoing SKBs that
have not yet been marked as completed. They live in queue->tx_skb
which gets freed without remorse nor checking.
macb_free_consistent() gets called in a few codepaths, but only close will
trigger the added expressions. In macb_open() and macb_alloc_consistent()
failure cases, queues' tx_skb just got allocated and are empty.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be Version: 89e5785fc8a6b9eafd37f2318a9a76d479c796be |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/cadence/macb_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0e9797dc4ebdefe1b7f931b1f92d5e98e5dbf655",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
},
{
"lessThan": "6124bd785073659c99385094657b77382ebce11b",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
},
{
"lessThan": "2143fdc0ce27adbb1caaa1a97e0bfb9f3750aef4",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
},
{
"lessThan": "26b131b2d5b55a81ef6182769d28105a870c0eb2",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
},
{
"lessThan": "109241d9880488aafd8e104832b4d4859ad57244",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
},
{
"lessThan": "27f575836cfebbf872dec020428742b10650a955",
"status": "affected",
"version": "89e5785fc8a6b9eafd37f2318a9a76d479c796be",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/cadence/macb_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.20"
},
{
"lessThan": "2.6.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "2.6.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "2.6.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.20",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: macb: drop in-flight Tx SKBs on close\n\nThe MACB driver has since forever leaked the outgoing SKBs that\nhave not yet been marked as completed. They live in queue-\u003etx_skb\nwhich gets freed without remorse nor checking.\n\nmacb_free_consistent() gets called in a few codepaths, but only close will\ntrigger the added expressions. In macb_open() and macb_alloc_consistent()\nfailure cases, queues\u0027 tx_skb just got allocated and are empty."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:26.593Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0e9797dc4ebdefe1b7f931b1f92d5e98e5dbf655"
},
{
"url": "https://git.kernel.org/stable/c/6124bd785073659c99385094657b77382ebce11b"
},
{
"url": "https://git.kernel.org/stable/c/2143fdc0ce27adbb1caaa1a97e0bfb9f3750aef4"
},
{
"url": "https://git.kernel.org/stable/c/26b131b2d5b55a81ef6182769d28105a870c0eb2"
},
{
"url": "https://git.kernel.org/stable/c/109241d9880488aafd8e104832b4d4859ad57244"
},
{
"url": "https://git.kernel.org/stable/c/27f575836cfebbf872dec020428742b10650a955"
}
],
"title": "net: macb: drop in-flight Tx SKBs on close",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72017",
"datePublished": "2026-08-15T05:51:44.698Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-08-23T12:46:26.593Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74397 (GCVE-0-2026-74397)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/mlx5: Fix transport-domain rollback and initialize lb mutex earlier
mlx5_ib_alloc_transport_domain() allocates a transport domain and then
may fail in mlx5_ib_enable_lb(). In that case, the allocated TD is leaked.
Fix this by deallocating the TD when mlx5_ib_enable_lb() returns an
error. Also return 0 explicitly in the no-loopback-capability success
branch, and move dev->lb.mutex initialization to mlx5_ib_stage_init_init().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74397",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:25.351057Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:41.192Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2c3b2667dad69d56774b79db763acb3a1bee0fc0",
"status": "affected",
"version": "146d2f1af3245a10b13eef263687e54f4e253d1d",
"versionType": "git"
},
{
"lessThan": "37fc3cc0f924fd8d0f0cf87b92672dec75a32e57",
"status": "affected",
"version": "146d2f1af3245a10b13eef263687e54f4e253d1d",
"versionType": "git"
},
{
"lessThan": "65e344925fa30abf50c8de8c150b397715fa2066",
"status": "affected",
"version": "146d2f1af3245a10b13eef263687e54f4e253d1d",
"versionType": "git"
},
{
"lessThan": "f88e12c95fc19f719e06ca1e9eb20fdad68ef61a",
"status": "affected",
"version": "146d2f1af3245a10b13eef263687e54f4e253d1d",
"versionType": "git"
},
{
"lessThan": "e79389115b9d27287ff6230a9750675106ed7668",
"status": "affected",
"version": "146d2f1af3245a10b13eef263687e54f4e253d1d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.5"
},
{
"lessThan": "4.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/mlx5: Fix transport-domain rollback and initialize lb mutex earlier\n\nmlx5_ib_alloc_transport_domain() allocates a transport domain and then\nmay fail in mlx5_ib_enable_lb(). In that case, the allocated TD is leaked.\n\nFix this by deallocating the TD when mlx5_ib_enable_lb() returns an\nerror. Also return 0 explicitly in the no-loopback-capability success\nbranch, and move dev-\u003elb.mutex initialization to mlx5_ib_stage_init_init()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reachable only via local ibverbs syscalls (ioctl/write) on /dev/infiniband/uverbsX through mlx5_ib_alloc_ucontext() and mlx5_ib_create_qp(); not via remote RoCE/IB packet handling.\nAC:L - An attacker can reliably open uverbs and create raw-packet QPs with self-loopback flags to invoke mlx5_ib_enable_lb(); TD leaks are repeatable by looping alloc_ucontext and can force enable_lb failure via memory pressure or firmware errors.\nPR:L - Kernel creates uverbs device nodes as world-accessible (0666); alloc_ucontext and create_qp require no real root/CAP_SYS_ADMIN, only local access to the mlx5 RDMA character device on hosts with the hardware.\nUI:N - Exploitation needs only attacker-driven ibverbs calls; no victim interaction such as mounting filesystems, clicking links, or opening files is required.\nS:U - Impact stays within the host kernel mlx5 RDMA driver scope; this is not a VM escape, IOMMU/DMA boundary bypass, or other cross-security-authority compromise per kernel CVSS guidance.\nC:H - Locking an uninitialized dev-\u003elb.mutex in mlx5_ib_enable_lb()/disable_lb is undefined behavior that can corrupt kernel memory and be leveraged for arbitrary kernel memory disclosure.\nI:H - Uninitialized mutex use during ucontext transport-domain setup or raw-packet QP creation can corrupt adjacent kernel structures and enable arbitrary write or control-flow hijack primitives.\nA:H - Invalid mutex operations can kernel panic/oops; repeated alloc_ucontext without TD rollback on mlx5_ib_enable_lb() failure exhausts transport domains and denies further RDMA context/QP creation (DoS)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:42.049Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2c3b2667dad69d56774b79db763acb3a1bee0fc0"
},
{
"url": "https://git.kernel.org/stable/c/37fc3cc0f924fd8d0f0cf87b92672dec75a32e57"
},
{
"url": "https://git.kernel.org/stable/c/65e344925fa30abf50c8de8c150b397715fa2066"
},
{
"url": "https://git.kernel.org/stable/c/f88e12c95fc19f719e06ca1e9eb20fdad68ef61a"
},
{
"url": "https://git.kernel.org/stable/c/e79389115b9d27287ff6230a9750675106ed7668"
}
],
"title": "IB/mlx5: Fix transport-domain rollback and initialize lb mutex earlier",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74397",
"datePublished": "2026-08-15T05:59:09.329Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-10-16T19:05:41.192Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64216 (GCVE-0-2026-64216)
Vulnerability from cvelistv5
Published
2026-07-24 15:23
Modified
2026-08-27 12:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()
netfs_unlock_abandoned_read_pages(rreq) accesses the index of the folios it
is wanting to unlock and compares that to rreq->no_unlock_folio so that it
doesn't unlock a folio being read for netfs_perform_write() or
netfs_write_begin().
However, given that netfs_unlock_abandoned_read_pages() is called _after_
NETFS_RREQ_IN_PROGRESS is cleared, the one folio that it's not allowed to
dereference is the one specified by ->no_unlock_folio as ownership
immediately reverts to the caller.
Fix this by storing the folio pointer instead and using that rather than
the index. Also fix netfs_unlock_read_folio() where the same applies.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/read_collect.c",
"fs/netfs/read_retry.c",
"include/linux/netfs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d4ae8dba90b89e7bb4d1045d1cb26afbaf13ee5c",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "6080fa3ecfbb4448a3b47368629534c09b6ec750",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "3866d015f33aeedf81338dd99154703bef33faef",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "dbe556972100fabb8e5a1b3d2163831ff07b1e8e",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/read_collect.c",
"fs/netfs/read_retry.c",
"include/linux/netfs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()\n\nnetfs_unlock_abandoned_read_pages(rreq) accesses the index of the folios it\nis wanting to unlock and compares that to rreq-\u003eno_unlock_folio so that it\ndoesn\u0027t unlock a folio being read for netfs_perform_write() or\nnetfs_write_begin().\n\nHowever, given that netfs_unlock_abandoned_read_pages() is called _after_\nNETFS_RREQ_IN_PROGRESS is cleared, the one folio that it\u0027s not allowed to\ndereference is the one specified by -\u003eno_unlock_folio as ownership\nimmediately reverts to the caller.\n\nFix this by storing the folio pointer instead and using that rather than\nthe index. Also fix netfs_unlock_read_folio() where the same applies."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable read-for-write completion is used by network filesystem clients including Ceph, SMB, 9P, and AFS. A malicious filesystem peer can induce failed or malformed reads and control completion timing.\nAC:L - Partial buffered writes and concurrent invalidation can repeatedly trigger the race, with an adjacent bug reproducing approximately 30% of repeated attempts. The attacker can influence completion, reuse, and retry timing.\nPR:N - A malicious filesystem server requires no privileges on the victim client; mount and session credentials belong to the victim.\nUI:N - Once the network filesystem is mounted, ordinary or automated writes can exercise the vulnerable path without further human action.\nS:U - The UAF corrupts resources within the host kernel\u0027s existing security authority and does not inherently cross a VM, IOMMU, or sandbox boundary.\nC:H - The stale folio can be freed and reused, and premature unlocking of a replacement page can expose page-cache or kernel contents.\nI:H - If the folio is reused, folio_unlock() can toggle PG_locked on an unrelated page, enabling concurrent memory corruption and potentially code execution.\nA:H - The condition can trigger a VM_BUG_ON_FOLIO kernel crash; incorrect PG_locked state can also cause permanent page-lock waits and system hangs."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:42.119Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d4ae8dba90b89e7bb4d1045d1cb26afbaf13ee5c"
},
{
"url": "https://git.kernel.org/stable/c/6080fa3ecfbb4448a3b47368629534c09b6ec750"
},
{
"url": "https://git.kernel.org/stable/c/3866d015f33aeedf81338dd99154703bef33faef"
},
{
"url": "https://git.kernel.org/stable/c/dbe556972100fabb8e5a1b3d2163831ff07b1e8e"
}
],
"title": "netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64216",
"datePublished": "2026-07-24T15:23:04.673Z",
"dateReserved": "2026-07-19T15:36:31.770Z",
"dateUpdated": "2026-08-27T12:39:42.119Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90177 (GCVE-0-2026-90177)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Check pointer type for all atomic RMW paths
Atomic RMW verification records an instruction pointer type only when the
current destination is PTR_TO_ARENA. A second path can therefore reach the
same instruction with an ordinary pointer without comparing it against the
saved arena type.
The post-verification fixup uses the saved type to rewrite the instruction
to BPF_PROBE_ATOMIC for every path. Record the actual destination type for
all atomic RMW paths so the existing mismatch check rejects incompatible
uses of one instruction.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/bpf/verifier.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b14dabe9656c1029abf3aa01e69c0d62f37f2f88",
"status": "affected",
"version": "d503a04f8bc0c75dc9db9452d8cc79d748afb752",
"versionType": "git"
},
{
"lessThan": "d4ba9d888ac0a8f12c78071fff73e1205a0b9293",
"status": "affected",
"version": "d503a04f8bc0c75dc9db9452d8cc79d748afb752",
"versionType": "git"
},
{
"lessThan": "eb287c6e81dedef92da01eb947f380d0aae513c3",
"status": "affected",
"version": "d503a04f8bc0c75dc9db9452d8cc79d748afb752",
"versionType": "git"
},
{
"lessThan": "4bc49ae344d65cfcef738f281ac575cf73ca2fc5",
"status": "affected",
"version": "d503a04f8bc0c75dc9db9452d8cc79d748afb752",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/bpf/verifier.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Check pointer type for all atomic RMW paths\n\nAtomic RMW verification records an instruction pointer type only when the\ncurrent destination is PTR_TO_ARENA. A second path can therefore reach the\nsame instruction with an ordinary pointer without comparing it against the\nsaved arena type.\n\nThe post-verification fixup uses the saved type to rewrite the instruction\nto BPF_PROBE_ATOMIC for every path. Record the actual destination type for\nall atomic RMW paths so the existing mismatch check rejects incompatible\nuses of one instruction."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker-controlled input is the BPF instruction stream copied in bpf_prog_load() from bpf(2) BPF_PROG_LOAD (__sys_bpf). do_check_insn() then check_atomic() then check_atomic_rmw() sees a mixed PTR_TO_ARENA versus kernel-pointer atomic; that bytecode is local syscall input, not a remote protocol payload.\nAC:L - The attacker authors both verifier paths: one branch with a PTR_TO_ARENA destination and another with PTR_TO_MAP_VALUE or PTR_TO_STACK at the same BPF_ATOMIC RMW. check_atomic_rmw() records only the arena type, bpf_convert_ctx_accesses() rewrites it to BPF_PROBE_ATOMIC, and bpf_prog_test_run_syscall() takes the non-arena path on demand.\nPR:L - The mixed path needs a BPF_MAP_TYPE_ARENA map; check_map_prog_compatibility() rejects that unless env-\u003ebpf_capable and env-\u003eallow_ptr_leaks (bpf_token_capable(CAP_BPF) and bpf_token_capable(CAP_PERFMON)). bpf_token_capable() uses ns_capable() on a delegated token userns, so this is not init-namespace root.\nUI:N - The attacker creates the arena with BPF_MAP_CREATE, loads the mixed-path program with BPF_PROG_LOAD, and executes it via bpf_prog_test_run() to bpf_prog_test_run_syscall(); no other user must mount, open a file, or otherwise cooperate.\nS:U - The confused BPF_PROBE_ATOMIC is JITed as emit_atomic_rmw_index() adding arena kern_vm_start (R12) onto a kernel map or stack pointer and runs in the host kernel; that is host memory corruption, not a KVM/Xen guest-to-host escape or IOMMU bypass.\nC:H - After bpf_convert_ctx_accesses() rewrites the shared RMW to BPF_PROBE_ATOMIC, the non-arena path executes lock xchg/cmpxchg/fetch-add at (PTR_TO_MAP_VALUE or PTR_TO_STACK + bpf_arena_get_kern_vm_start()). BPF_FETCH, XCHG, and CMPXCHG return the old value from that address, an arbitrary kernel read.\nI:H - The same instruction performs an attacker-chosen atomic RMW (BPF_ADD/AND/OR/XOR/XCHG/CMPXCHG in check_atomic_rmw) at kernel_ptr+kern_vm_start. With CONFIG_VMAP_STACK or a vmalloc map, that sum is a canonical direct-map address, giving a kernel write primitive.\nA:H - An atomic RMW into the direct map corrupts live kernel state and can panic; a non-canonical or unmapped sum that a JIT does not cover with an exception table oopses. Type-confused kernel atomics are Availability High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:19.113Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b14dabe9656c1029abf3aa01e69c0d62f37f2f88"
},
{
"url": "https://git.kernel.org/stable/c/d4ba9d888ac0a8f12c78071fff73e1205a0b9293"
},
{
"url": "https://git.kernel.org/stable/c/eb287c6e81dedef92da01eb947f380d0aae513c3"
},
{
"url": "https://git.kernel.org/stable/c/4bc49ae344d65cfcef738f281ac575cf73ca2fc5"
}
],
"title": "bpf: Check pointer type for all atomic RMW paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90177",
"datePublished": "2026-09-17T16:07:03.097Z",
"dateReserved": "2026-09-11T19:38:34.791Z",
"dateUpdated": "2026-10-21T12:50:19.113Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74471 (GCVE-0-2026-74471)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Check return value of __register_event() in trace_module_add_events()
trace_module_add_events() ignores the return value of __register_event()
and unconditionally calls __add_event_to_tracers() for each event.
If __register_event() fails (for example, if event_init() fails), the
trace_event_call is not added to ftrace_events list, but
__add_event_to_tracers() still creates a trace_event_file pointing to it.
If module loading subsequently fails and module memory is freed, tracing
state retains a stale trace_event_call pointer in trace_event_file,
leading to a use-after-free when tracefs or tracing subsystem operations
are later executed.
Fix this by checking the return value of __register_event() and only
calling __add_event_to_tracers() if event registration succeeded.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 Version: ae63b31e4d0e2ec09c569306ea46f664508ef717 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74471",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:21.390624Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:47.824Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3bf965a2827c44f03294107703e7ba53fbd0a69a",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "9d6d79744f01eacaf3d5522f4fcd59939581abfd",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "54b7a358f6399c1242d2fb7f4f96085af34baa5e",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "d61ee2a27dfd5eb43ddc18af40168f5b9eb1cea5",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "22f954f7a8afe975e85517aff41b35defe05144b",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "cbb5ed3be9cae70e1c12b1991009b4e12bf4a4ca",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "000765dcdc3edf128990762790543adc4b868f6c",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
},
{
"lessThan": "ac8719969e6c3c54e939834df812bc41f25453cf",
"status": "affected",
"version": "ae63b31e4d0e2ec09c569306ea46f664508ef717",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Check return value of __register_event() in trace_module_add_events()\n\ntrace_module_add_events() ignores the return value of __register_event()\nand unconditionally calls __add_event_to_tracers() for each event.\n\nIf __register_event() fails (for example, if event_init() fails), the\ntrace_event_call is not added to ftrace_events list, but\n__add_event_to_tracers() still creates a trace_event_file pointing to it.\nIf module loading subsequently fails and module memory is freed, tracing\nstate retains a stale trace_event_call pointer in trace_event_file,\nleading to a use-after-free when tracefs or tracing subsystem operations\nare later executed.\n\nFix this by checking the return value of __register_event() and only\ncalling __add_event_to_tracers() if event registration succeeded."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local init_module/finit_module module loading (MODULE_STATE_COMING notifier) and subsequent tracefs/tracing operations on poisoned event files; there is no network, adjacent-wireless, or physical-device input path into trace_module_add_events() or the stale trace_event_file dereferences.\nAC:L - An attacker can deterministically craft a module whose trace events fail event_init()/__register_event() while __add_event_to_tracers() still runs, then force module-load failure or rmmod to free module memory; no uncontrollable race, rare kernel config, or victim-specific memory layout is required.\nPR:L - Triggering the UAF requires only local tracefs/tracing access, which tracing_check_open() gates solely with LOCKDOWN_TRACEFS and DAC (no capable() check), commonly granted to tracing-group/Android/ChromeOS diagnostics users; priming stale pointers via init_module uses capable(CAP_SYS_MODULE) but is achievable on permissive dev/container hosts loading attacker modules.\nUI:N - Once tracefs is accessible, the attacker can read/write event enable/format files or invoke tracing helpers that iterate tr-\u003eevents and dereference the stale trace_event_call without any separate victim user performing mounts, clicks, or configuration changes.\nS:U - The use-after-free corrupts kernel tracing heap/metadata within the same OS security authority and enables local privilege escalation; it does not cross VM, container, IOMMU, or hardware trust boundaries.\nC:H - Stale trace_event_file-\u003eevent_call pointers reference freed module slab memory; subsequent trace_event_name(), call-\u003eclass, and reg/unreg callbacks read attacker-influenced reclaimed heap contents, giving an arbitrary kernel memory read primitive typical of UAF bugs.\nI:H - Operations such as __ftrace_event_enable_disable() invoke call-\u003eclass-\u003ereg() through the dangling trace_event_call and manipulate event flags/filters on reclaimed objects, providing controllable kernel writes and a standard UAF path to code execution.\nA:H - Dereferencing freed module-resident trace_event_call structures from tracefs or tracing subsystem operations readily causes kernel oops/panic; even without full exploitation, the UAF reliably threatens system availability and can be retriggered at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:20.725Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3bf965a2827c44f03294107703e7ba53fbd0a69a"
},
{
"url": "https://git.kernel.org/stable/c/9d6d79744f01eacaf3d5522f4fcd59939581abfd"
},
{
"url": "https://git.kernel.org/stable/c/54b7a358f6399c1242d2fb7f4f96085af34baa5e"
},
{
"url": "https://git.kernel.org/stable/c/d61ee2a27dfd5eb43ddc18af40168f5b9eb1cea5"
},
{
"url": "https://git.kernel.org/stable/c/22f954f7a8afe975e85517aff41b35defe05144b"
},
{
"url": "https://git.kernel.org/stable/c/cbb5ed3be9cae70e1c12b1991009b4e12bf4a4ca"
},
{
"url": "https://git.kernel.org/stable/c/000765dcdc3edf128990762790543adc4b868f6c"
},
{
"url": "https://git.kernel.org/stable/c/ac8719969e6c3c54e939834df812bc41f25453cf"
}
],
"title": "tracing: Check return value of __register_event() in trace_module_add_events()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74471",
"datePublished": "2026-08-15T12:27:08.128Z",
"dateReserved": "2026-08-15T05:44:03.902Z",
"dateUpdated": "2026-10-16T19:05:47.824Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64154 (GCVE-0-2026-64154)
Vulnerability from cvelistv5
Published
2026-07-19 15:40
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/msm/adreno: Fix a reference leak in a6xx_gpu_init()
In a6xx_gpu_init(), node is obtained via of_parse_phandle().
While there was a manual of_node_put() at the end of the
common path, several early error returns would bypass this call,
resulting in a reference leak.
Fix this by using the __free(device_node) cleanup handler to
release the reference when the variable goes out of scope.
Patchwork: https://patchwork.freedesktop.org/patch/700661/
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/msm/adreno/a6xx_gpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bdad77438cc2ba006b041eb02adccb0b9f8cffad",
"status": "affected",
"version": "5a903a44a98471cedf0021fac0a6a64bbe86943f",
"versionType": "git"
},
{
"lessThan": "bd750e4043bbd9e2ef69de50b11bd6f98c366cc0",
"status": "affected",
"version": "5a903a44a98471cedf0021fac0a6a64bbe86943f",
"versionType": "git"
},
{
"lessThan": "b76568c6721840a4ddb65e24e2849db0f8e83461",
"status": "affected",
"version": "5a903a44a98471cedf0021fac0a6a64bbe86943f",
"versionType": "git"
},
{
"lessThan": "2be24c945e76cd538ce5dd2e50f5d3e7d848c175",
"status": "affected",
"version": "5a903a44a98471cedf0021fac0a6a64bbe86943f",
"versionType": "git"
},
{
"lessThan": "e64bca63647db1d5518198d6c5ca2dbcc66b182b",
"status": "affected",
"version": "5a903a44a98471cedf0021fac0a6a64bbe86943f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/msm/adreno/a6xx_gpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.5"
},
{
"lessThan": "6.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm/adreno: Fix a reference leak in a6xx_gpu_init()\n\nIn a6xx_gpu_init(), node is obtained via of_parse_phandle().\nWhile there was a manual of_node_put() at the end of the\ncommon path, several early error returns would bypass this call,\nresulting in a reference leak.\nFix this by using the __free(device_node) cleanup handler to\nrelease the reference when the variable goes out of scope.\n\nPatchwork: https://patchwork.freedesktop.org/patch/700661/"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:07.993Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bdad77438cc2ba006b041eb02adccb0b9f8cffad"
},
{
"url": "https://git.kernel.org/stable/c/bd750e4043bbd9e2ef69de50b11bd6f98c366cc0"
},
{
"url": "https://git.kernel.org/stable/c/b76568c6721840a4ddb65e24e2849db0f8e83461"
},
{
"url": "https://git.kernel.org/stable/c/2be24c945e76cd538ce5dd2e50f5d3e7d848c175"
},
{
"url": "https://git.kernel.org/stable/c/e64bca63647db1d5518198d6c5ca2dbcc66b182b"
}
],
"title": "drm/msm/adreno: Fix a reference leak in a6xx_gpu_init()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64154",
"datePublished": "2026-07-19T15:40:42.807Z",
"dateReserved": "2026-07-19T07:54:57.038Z",
"dateUpdated": "2026-10-21T12:43:07.993Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93264 (GCVE-0-2026-93264)
Vulnerability from cvelistv5
Published
2026-09-24 15:52
Modified
2026-10-19 09:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/efa: Fix PBL chunk length computation
On register MR, when creating the PBL, if it's an indirect PBL we create
a chunk list to hold the PBL pages pointers. Each chunk is 4KB in size
and can hold 510 addresses (EFA_PTRS_PER_CHUNK) and has a 12-byte
control buffer at the end of it holding the next chunk's pointer and its
length.
If the PBL number of pages is a multiple of EFA_PTRS_PER_CHUNK, the
calculated last chunk length is wrongly computed as 0, even though that
chunk is fully populated with 510 real page pointers. This wrong length
is used both to DMA map the chunk and is propagated to the device,
causing the device to see the chunk as empty and reject the memory
registration.
Fix the calculation so it will be performed only if the number of pages
isn't a multiple of EFA_PTRS_PER_CHUNK, if it is, its already handled in
the above loop correctly.
Also prevent out-of-bounds reach in the chunks array in such scenario.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a Version: 40909f664d279765af430acc5db348a0b71c9b0a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/efa/efa_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "665cd418b8561a099c3854443f8ad8ae751b72a0",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "932e5684906a090644a9061fae2d254041c3b8f2",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "489b28f2377afa70c18c45b06a6387f3d39bb123",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "aadf3f9b5edb7f0a77e9172b237d2e07c754829c",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "3982714e15512b83115897806dacc94899683420",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "da7805f0211af19968584e621074f253ac07dba7",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "1d4b5902773475fc97151379b7e5f09cad0fa57b",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
},
{
"lessThan": "229b42d7450c1cf96f45ec39ebb69211b06bc036",
"status": "affected",
"version": "40909f664d279765af430acc5db348a0b71c9b0a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/efa/efa_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/efa: Fix PBL chunk length computation\n\nOn register MR, when creating the PBL, if it\u0027s an indirect PBL we create\na chunk list to hold the PBL pages pointers. Each chunk is 4KB in size\nand can hold 510 addresses (EFA_PTRS_PER_CHUNK) and has a 12-byte\ncontrol buffer at the end of it holding the next chunk\u0027s pointer and its\nlength.\n\nIf the PBL number of pages is a multiple of EFA_PTRS_PER_CHUNK, the\ncalculated last chunk length is wrongly computed as 0, even though that\nchunk is fully populated with 510 real page pointers. This wrong length\nis used both to DMA map the chunk and is propagated to the device,\ncausing the device to see the chunk as empty and reject the memory\nregistration.\n\nFix the calculation so it will be performed only if the number of pages\nisn\u0027t a multiple of EFA_PTRS_PER_CHUNK, if it is, its already handled in\nthe above loop correctly.\nAlso prevent out-of-bounds reach in the chunks array in such scenario."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:08:17.409Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/665cd418b8561a099c3854443f8ad8ae751b72a0"
},
{
"url": "https://git.kernel.org/stable/c/932e5684906a090644a9061fae2d254041c3b8f2"
},
{
"url": "https://git.kernel.org/stable/c/489b28f2377afa70c18c45b06a6387f3d39bb123"
},
{
"url": "https://git.kernel.org/stable/c/aadf3f9b5edb7f0a77e9172b237d2e07c754829c"
},
{
"url": "https://git.kernel.org/stable/c/3982714e15512b83115897806dacc94899683420"
},
{
"url": "https://git.kernel.org/stable/c/da7805f0211af19968584e621074f253ac07dba7"
},
{
"url": "https://git.kernel.org/stable/c/1d4b5902773475fc97151379b7e5f09cad0fa57b"
},
{
"url": "https://git.kernel.org/stable/c/229b42d7450c1cf96f45ec39ebb69211b06bc036"
}
],
"title": "RDMA/efa: Fix PBL chunk length computation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93264",
"datePublished": "2026-09-24T15:52:03.741Z",
"dateReserved": "2026-09-17T16:02:15.097Z",
"dateUpdated": "2026-10-19T09:08:17.409Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93826 (GCVE-0-2026-93826)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
HID: hidpp: fix potential UAF in hidpp_connect_event()
If input_register_device() fails, we call input_free_device(), but keep
stale pointer to the old device in hidpp->input, which could potentially
lead to UAF. Fix that by resetting it to NULL before returning from
hidpp_connect_event().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hid/hid-logitech-hidpp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e03fd646adad7f97fa4429ec5f38cee9bde5276e",
"status": "affected",
"version": "c39e3d5fc9dd3e16c6f59dd94d827540040de66d",
"versionType": "git"
},
{
"lessThan": "5d7637f4d050d105177217e64b869f56f9825060",
"status": "affected",
"version": "c39e3d5fc9dd3e16c6f59dd94d827540040de66d",
"versionType": "git"
},
{
"lessThan": "3b8b2e58b078cd30e121401535541bb8a6d57133",
"status": "affected",
"version": "c39e3d5fc9dd3e16c6f59dd94d827540040de66d",
"versionType": "git"
},
{
"lessThan": "3303398cc2aa255ba251650a30024e11d48ea6c3",
"status": "affected",
"version": "c39e3d5fc9dd3e16c6f59dd94d827540040de66d",
"versionType": "git"
},
{
"lessThan": "6df6b1f2c49678211f65647c300bc51dda02893b",
"status": "affected",
"version": "c39e3d5fc9dd3e16c6f59dd94d827540040de66d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hid/hid-logitech-hidpp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: hidpp: fix potential UAF in hidpp_connect_event()\n\nIf input_register_device() fails, we call input_free_device(), but keep\nstale pointer to the old device in hidpp-\u003einput, which could potentially\nlead to UAF. Fix that by resetting it to NULL before returning from\nhidpp_connect_event()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The UAF is in hidpp_connect_event(), reached from hidpp_probe() and from hidpp_raw_hidpp_event() on a HID++ short report with rap.sub_id 0x41. DELAYED_INIT devices are Unifying DJ children (PIDs 0x4011/0x4101/0x402d via logi_dj_recv_add_djhid_device) and Bluetooth T651, so the trigger arrives over Unifying 2.4 GHz or Bluetooth HIDP.\nAC:H - The dangling hidpp-\u003einput is created only when hidpp_populate_input() stores the new device and input_register_device() then fails, so hidpp_connect_event() calls input_free_device() without clearing the pointer. That register fails on GFP_KERNEL ENOMEM (devres_alloc/input_device_tune_vals), device_add(), or -EINTR on input_mutex, which a HID++ peer cannot induce on demand.\nPR:N - logi_dj_raw_event() delivers Unifying pairing/connect notifications and HID++ reports to the child with no host credential check, and hidpp_probe() binds logitech-hidpp-device during that enumeration; Bluetooth T651 HIDP bind is likewise unauthenticated. No OS account or capability is required.\nUI:N - A REPORT_TYPE_NOTIF_DEVICE_PAIRED/CONNECTED notification (or T651 HIDP connect) runs hidpp_probe() which schedules hidpp_connect_event(); after the failed register, later HID reports handled by wtp_raw_event()/m560_raw_event() dereference hidpp-\u003einput. The attacker\u0027s peripheral generates both without a victim mount, click, or prompt.\nS:U - The freed object is the delayed struct input_dev allocated by hidpp_allocate_input() and stored in hidpp-\u003einput; the UAF stays inside the host kernel HID/input authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After input_free_device(), wtp_raw_event()/m560_raw_event() still see a non-NULL hidpp-\u003einput and call input_mt_get_slot_by_key()/input_event()/input_sync() on the freed input_dev (vals, absinfo, mt slots). UAF of that heap object is an arbitrary-read primitive once the slab is reused.\nI:H - The same dangling hidpp-\u003einput is used for input_mt_slot(), input_report_key/rel(), and input_sync(), which write event state and walk handlers on the freed input_dev; heap spray of that object yields arbitrary kernel writes and control-flow hijack.\nA:H - Dereferencing the freed input_dev in wtp_touch_event()/m560_raw_event() after hidpp_connect_event()\u0027s input_free_device() oopses or panics when the object is not reused; hidpp_probe() still succeeds, and DJ\u0027s no-op logi_dj_ll_close() keeps delivering reports that retrigger the crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:57.986Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e03fd646adad7f97fa4429ec5f38cee9bde5276e"
},
{
"url": "https://git.kernel.org/stable/c/5d7637f4d050d105177217e64b869f56f9825060"
},
{
"url": "https://git.kernel.org/stable/c/3b8b2e58b078cd30e121401535541bb8a6d57133"
},
{
"url": "https://git.kernel.org/stable/c/3303398cc2aa255ba251650a30024e11d48ea6c3"
},
{
"url": "https://git.kernel.org/stable/c/6df6b1f2c49678211f65647c300bc51dda02893b"
}
],
"title": "HID: hidpp: fix potential UAF in hidpp_connect_event()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93826",
"datePublished": "2026-09-24T16:03:04.711Z",
"dateReserved": "2026-09-18T17:59:28.792Z",
"dateUpdated": "2026-10-03T10:57:57.986Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90183 (GCVE-0-2026-90183)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
blk-iolatency: clear delay state when freeing policy data
io.latency can throttle a group which has no latency target of its own.
When a sibling misses its target, check_scale_change() scales down its
peers, and a peer that reaches queue depth one gets blkcg_use_delay()
called on it on every further scale-down, even with min_lat_nsec == 0.
iolatency_pd_offline() resets the target through
iolatency_set_min_lat_nsec(), which clears the delay only on a nonzero
to zero transition, so it never clears such a peer. Freeing the policy
data then leaves blkg->use_delay set and blkcg->congestion_count
elevated with nothing left that can drop it.
blk_cgroup_congested() then returns true for every task in that cgroup
and its descendants for as long as the cgroup lives: page_cache_sync_ra()
cuts readahead to a single page, page_cache_async_ra() skips it
altogether, and __folio_throttle_swaprate() takes swap_avail_lock and
schedules a throttle on anonymous folio allocation.
Clear the delay in iolatency_pd_free(). By then bio-held blkg
references have drained, or the queue is frozen for policy
deactivation, so check_scale_change() cannot re-arm it. The free
callback can also see policy data which was never attached to a blkg,
hence the pd->blkg check.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"block/blk-iolatency.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "53ccb4b967edc5f82ff6f9c066fb96c31aa7561a",
"status": "affected",
"version": "d70675121546c35feaceebf7ed9caed8716640f3",
"versionType": "git"
},
{
"lessThan": "b6449a915d1826e1450f6368fc379fe44caa06ca",
"status": "affected",
"version": "d70675121546c35feaceebf7ed9caed8716640f3",
"versionType": "git"
},
{
"lessThan": "5c6593422eb3c3a21505436ccf74599a433584c8",
"status": "affected",
"version": "d70675121546c35feaceebf7ed9caed8716640f3",
"versionType": "git"
},
{
"lessThan": "02f1b90ab33ef99c89dd96a385b432ff57abc64d",
"status": "affected",
"version": "d70675121546c35feaceebf7ed9caed8716640f3",
"versionType": "git"
},
{
"lessThan": "8935bf22c0a0db517a7f72f7097300e05dd852f5",
"status": "affected",
"version": "d70675121546c35feaceebf7ed9caed8716640f3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"block/blk-iolatency.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-iolatency: clear delay state when freeing policy data\n\nio.latency can throttle a group which has no latency target of its own.\nWhen a sibling misses its target, check_scale_change() scales down its\npeers, and a peer that reaches queue depth one gets blkcg_use_delay()\ncalled on it on every further scale-down, even with min_lat_nsec == 0.\n\niolatency_pd_offline() resets the target through\niolatency_set_min_lat_nsec(), which clears the delay only on a nonzero\nto zero transition, so it never clears such a peer. Freeing the policy\ndata then leaves blkg-\u003euse_delay set and blkcg-\u003econgestion_count\nelevated with nothing left that can drop it.\n\nblk_cgroup_congested() then returns true for every task in that cgroup\nand its descendants for as long as the cgroup lives: page_cache_sync_ra()\ncuts readahead to a single page, page_cache_async_ra() skips it\naltogether, and __folio_throttle_swaprate() takes swap_avail_lock and\nschedules a throttle on anonymous folio allocation.\n\nClear the delay in iolatency_pd_free(). By then bio-held blkg\nreferences have drained, or the queue is frozen for policy\ndeactivation, so check_scale_change() cannot re-arm it. The free\ncallback can also see policy data which was never attached to a blkg,\nhence the pd-\u003eblkg check."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:22.454Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/53ccb4b967edc5f82ff6f9c066fb96c31aa7561a"
},
{
"url": "https://git.kernel.org/stable/c/b6449a915d1826e1450f6368fc379fe44caa06ca"
},
{
"url": "https://git.kernel.org/stable/c/5c6593422eb3c3a21505436ccf74599a433584c8"
},
{
"url": "https://git.kernel.org/stable/c/02f1b90ab33ef99c89dd96a385b432ff57abc64d"
},
{
"url": "https://git.kernel.org/stable/c/8935bf22c0a0db517a7f72f7097300e05dd852f5"
}
],
"title": "blk-iolatency: clear delay state when freeing policy data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90183",
"datePublished": "2026-09-17T16:07:07.045Z",
"dateReserved": "2026-09-11T19:38:34.791Z",
"dateUpdated": "2026-10-21T12:50:22.454Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97947 (GCVE-0-2026-97947)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-19 09:11
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/amd_node: Fix potential NULL pointer dereference
amd_smn_read/write() are exported functions around __amd_smn_rw(), so
they are always available even if amd_smn_init() fails. In that case,
'amd_roots' is NULL and __amd_smn_rw() will access uninitialized memory.
Then, commit:
83518453074d ("x86/amd_node: Add SMN offsets to exclusive region access")
added the 'smn_exclusive' flag, which indicated the calls to
pci_request_config_region_exclusive() succeeded, to prevent
concurrent userspace access.
Commit:
0a4b61d9c2e4 ("x86/amd_node: Fix AMD root device caching")
re-ordered initialization so pci_request_config_region_exclusive() is
called earlier and a failure exits amd_smn_init() before allocating
'amd_roots'. The setting of 'smn_exclusive' moved to the end of
amd_smn_init(), after 'amd_roots' is allocated. It became redundant
and can be removed.
Replace 'smn_exclusive' with directly checking 'amd_roots', to fix a
potential NULL pointer dereference and to simplify the logic.
[ bp: Reorg commit message, touchup comment. ]
[ mingo: Rebase & further touchups. ]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/amd_node.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fcd19bc829eca237742a3b123f839ad1c473ec85",
"status": "affected",
"version": "77466b798d59d6761501ff36094cf430d3876549",
"versionType": "git"
},
{
"lessThan": "a797a2331e5d2ecdbccbae222ea71c759fdb2c2b",
"status": "affected",
"version": "77466b798d59d6761501ff36094cf430d3876549",
"versionType": "git"
},
{
"lessThan": "aefdbd574a362dcf7569bada6d72f64a006b9fb9",
"status": "affected",
"version": "77466b798d59d6761501ff36094cf430d3876549",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/amd_node.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.14"
},
{
"lessThan": "6.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/amd_node: Fix potential NULL pointer dereference\n\namd_smn_read/write() are exported functions around __amd_smn_rw(), so\nthey are always available even if amd_smn_init() fails. In that case,\n\u0027amd_roots\u0027 is NULL and __amd_smn_rw() will access uninitialized memory.\n\nThen, commit:\n\n 83518453074d (\"x86/amd_node: Add SMN offsets to exclusive region access\")\n\nadded the \u0027smn_exclusive\u0027 flag, which indicated the calls to\npci_request_config_region_exclusive() succeeded, to prevent\nconcurrent userspace access.\n\nCommit:\n\n 0a4b61d9c2e4 (\"x86/amd_node: Fix AMD root device caching\")\n\nre-ordered initialization so pci_request_config_region_exclusive() is\ncalled earlier and a failure exits amd_smn_init() before allocating\n\u0027amd_roots\u0027. The setting of \u0027smn_exclusive\u0027 moved to the end of\namd_smn_init(), after \u0027amd_roots\u0027 is allocated. It became redundant\nand can be removed.\n\nReplace \u0027smn_exclusive\u0027 with directly checking \u0027amd_roots\u0027, to fix a\npotential NULL pointer dereference and to simplify the logic.\n\n [ bp: Reorg commit message, touchup comment. ]\n [ mingo: Rebase \u0026 further touchups. ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:13.582Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fcd19bc829eca237742a3b123f839ad1c473ec85"
},
{
"url": "https://git.kernel.org/stable/c/a797a2331e5d2ecdbccbae222ea71c759fdb2c2b"
},
{
"url": "https://git.kernel.org/stable/c/aefdbd574a362dcf7569bada6d72f64a006b9fb9"
}
],
"title": "x86/amd_node: Fix potential NULL pointer dereference",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97947",
"datePublished": "2026-09-25T10:22:57.163Z",
"dateReserved": "2026-09-25T10:18:58.204Z",
"dateUpdated": "2026-10-19T09:11:13.582Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72449 (GCVE-0-2026-72449)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: fix list_del corruption in kfd_criu_resume_svm
The cleanup tail of kfd_criu_resume_svm() walks
svms->criu_svm_metadata_list and kfree()s each struct criu_svm_metadata
without removing it from the list. The list head is left pointing at
freed kmalloc-96 objects.
A second AMDKFD_IOC_CRIU_OP from the same process re-enters: list_empty()
reads the dangling ->next (use-after-free), the loop walks freed entries,
and each is kfree()'d again (double-free). This is reachable by an
unprivileged render-group user via /dev/kfd with no capabilities required.
Add list_del() before the kfree() so the list is properly emptied. The
list_for_each_entry_safe() iterator already caches the next pointer, so
unlinking during the walk is safe.
(cherry picked from commit 6322d278a298e2c1430b9d2697743d3a04b788b1)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba Version: 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72449",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:12.270854Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.681Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_svm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c8a8d350a273c005a48c64c4519d21b2a51c5ceb",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
},
{
"lessThan": "506e635aed05dbdeef11e3c59f6e42980cda5b6d",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
},
{
"lessThan": "838b57b3e7ce8cce0fda56d0861add3d464dd6c8",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
},
{
"lessThan": "96ac562a9ea3020981f536384711190841c81aa8",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
},
{
"lessThan": "e33a3bd5cb8d0cf1557dee014115f812c9686130",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
},
{
"lessThan": "8fa5655da368d0306c03e9dc9cda8ae2a7840926",
"status": "affected",
"version": "2a909ae718715b3bac75d945e38dc0a5e4a0f1ba",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_svm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: fix list_del corruption in kfd_criu_resume_svm\n\nThe cleanup tail of kfd_criu_resume_svm() walks\nsvms-\u003ecriu_svm_metadata_list and kfree()s each struct criu_svm_metadata\nwithout removing it from the list. The list head is left pointing at\nfreed kmalloc-96 objects.\n\nA second AMDKFD_IOC_CRIU_OP from the same process re-enters: list_empty()\nreads the dangling -\u003enext (use-after-free), the loop walks freed entries,\nand each is kfree()\u0027d again (double-free). This is reachable by an\nunprivileged render-group user via /dev/kfd with no capabilities required.\n\nAdd list_del() before the kfree() so the list is properly emptied. The\nlist_for_each_entry_safe() iterator already caches the next pointer, so\nunlinking during the walk is safe.\n\n(cherry picked from commit 6322d278a298e2c1430b9d2697743d3a04b788b1)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via the local AMDKFD_IOC_CRIU_OP ioctl on /dev/kfd (unlocked_ioctl -\u003e kfd_ioctl_criu -\u003e criu_resume -\u003e kfd_criu_resume_svm); there is no network, adjacent-radio, or physical-device entry path.\nAC:L - An attacker who can open /dev/kfd controls the full CRIU restore/resume ioctl sequence and can deterministically trigger the bug by issuing KFD_CRIU_OP_RESUME twice after restore populates criu_svm_metadata_list; no uncontrollable race or rare layout is required.\nPR:L - The fix commit and ioctl path show exploitation by a local render-group user opening /dev/kfd; CAP_CHECKPOINT_RESTORE/SYS_ADMIN gates CRIU ioctls but are obtainable in a user namespace, matching basic local user privilege rather than init-namespace root only.\nUI:N - Exploitation requires only the attacker\u0027s own ioctl calls to /dev/kfd after CRIU restore; no victim click, mount, file open, or other interactive action is needed.\nS:U - Corruption is confined to kernel heap list metadata in amdkfd for the calling KFD process context; impact stays within the kernel security authority and does not cross a VM, IOMMU, or hypervisor boundary.\nC:H - After the first resume, list_empty() and list iteration dereference freed kmalloc-96 criu_svm_metadata objects (use-after-free reads of -\u003enext/list pointers), enabling attacker-influenced heap disclosure beyond a bounded leak.\nI:H - A second resume walks the corrupted list and kfree()s the same objects again (double-free on kmalloc-96 slabs), a standard exploitable kernel heap primitive for arbitrary memory corruption and potential privilege escalation.\nA:H - The use-after-free and double-free reliably corrupt kernel heap state and commonly cause BUG/KASAN faults, oops, or panic when the dangling list is traversed again, producing system-wide denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:18.630Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c8a8d350a273c005a48c64c4519d21b2a51c5ceb"
},
{
"url": "https://git.kernel.org/stable/c/506e635aed05dbdeef11e3c59f6e42980cda5b6d"
},
{
"url": "https://git.kernel.org/stable/c/838b57b3e7ce8cce0fda56d0861add3d464dd6c8"
},
{
"url": "https://git.kernel.org/stable/c/96ac562a9ea3020981f536384711190841c81aa8"
},
{
"url": "https://git.kernel.org/stable/c/e33a3bd5cb8d0cf1557dee014115f812c9686130"
},
{
"url": "https://git.kernel.org/stable/c/8fa5655da368d0306c03e9dc9cda8ae2a7840926"
}
],
"title": "drm/amdkfd: fix list_del corruption in kfd_criu_resume_svm",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72449",
"datePublished": "2026-08-15T05:56:58.313Z",
"dateReserved": "2026-08-09T03:40:39.931Z",
"dateUpdated": "2026-10-16T18:55:24.681Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72437 (GCVE-0-2026-72437)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid1: free r1_bio when REQ_NOWAIT is set and read would block on retry
When a read is retried, raid1_read_request() may be called with a
pre-allocated r1_bio. If wait_read_barrier() fails for a REQ_NOWAIT
read, the bio is completed and the function returns immediately. In this
case the existing r1_bio is leaked.
This fixes a leak of pre-allocated r1_bio structures for retried reads.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca Version: 5aa705039c4fca84575539bfa2b8a28454a3d2ca |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/raid1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d1eda529a4bf6b866d02755723ee0eb1f037a5ed",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "c66ed3e6371f5dba8f5d8ab810d6683ddc99201e",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "db58075bc9c2ad2731f9c063859b47104bc2e7ef",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "6d92dbd73d19a0622f60352ce9d9379f7a760112",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "c6e6354295845698d2fdfa20b71fc404786f7e93",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "69ad6ce47f9bf2b9fe0ed69b042db993d33bbf12",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/raid1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid1: free r1_bio when REQ_NOWAIT is set and read would block on retry\n\nWhen a read is retried, raid1_read_request() may be called with a\npre-allocated r1_bio. If wait_read_barrier() fails for a REQ_NOWAIT\nread, the bio is completed and the function returns immediately. In this\ncase the existing r1_bio is leaked.\n\nThis fixes a leak of pre-allocated r1_bio structures for retried reads."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:14:37.742Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d1eda529a4bf6b866d02755723ee0eb1f037a5ed"
},
{
"url": "https://git.kernel.org/stable/c/c66ed3e6371f5dba8f5d8ab810d6683ddc99201e"
},
{
"url": "https://git.kernel.org/stable/c/db58075bc9c2ad2731f9c063859b47104bc2e7ef"
},
{
"url": "https://git.kernel.org/stable/c/6d92dbd73d19a0622f60352ce9d9379f7a760112"
},
{
"url": "https://git.kernel.org/stable/c/c6e6354295845698d2fdfa20b71fc404786f7e93"
},
{
"url": "https://git.kernel.org/stable/c/69ad6ce47f9bf2b9fe0ed69b042db993d33bbf12"
}
],
"title": "md/raid1: free r1_bio when REQ_NOWAIT is set and read would block on retry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72437",
"datePublished": "2026-08-15T05:56:50.732Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-08-17T05:14:37.742Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80848 (GCVE-0-2026-80848)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: espintcp: fix UAF during close
ZDI reported and analyzed a race condition during close for espintcp
sockets:
espintcp_close() frees emsg->skb via kfree_skb() without holding
any socket lock. Concurrently, the xfrm_trans_reinject work queue
invokes esp_output_tcp_finish() -> espintcp_push_skb() ->
espintcp_push_msgs() -> skb_send_sock_locked(), which reads the
same skb as a data source.
Fix this by adding a synchronize_rcu() call after resetting sk_prot,
since esp_output_tcp_finish() runs under RCU and won't use a socket
with sk_prot == &tcp_prot. Simply taking the socket lock in
espintcp_close() could lead to leaks, if esp_output_tcp_finish()
re-adds an skb in the slot we just freed. After this, the existing
barrier() is no longer needed.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/espintcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "29121c5e6591da527e8e36ddac7120dc527f574d",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "ed5d9102190c45fc70121c036b0626b740040b75",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "4bc0dfa28dca6fc0084203732695968049c44072",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "ff8dd7a932f34409a56e1b91a1219340f17457e9",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "4b31a875693c480c611519faca46216514e3e052",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "24efebecf415ba264adba0f0491cec436463a14f",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "eb3bbf29c723fe75c0eb92be14f0ec92971fe272",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "54b41ad14da9a981131ab6e4d3f79321a503ea5d",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "deb232e884877bf10b4ce2580909eedec986c284",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/espintcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: espintcp: fix UAF during close\n\nZDI reported and analyzed a race condition during close for espintcp\nsockets:\n\n espintcp_close() frees emsg-\u003eskb via kfree_skb() without holding\n any socket lock. Concurrently, the xfrm_trans_reinject work queue\n invokes esp_output_tcp_finish() -\u003e espintcp_push_skb() -\u003e\n espintcp_push_msgs() -\u003e skb_send_sock_locked(), which reads the\n same skb as a data source.\n\nFix this by adding a synchronize_rcu() call after resetting sk_prot,\nsince esp_output_tcp_finish() runs under RCU and won\u0027t use a socket\nwith sk_prot == \u0026tcp_prot. Simply taking the socket lock in\nespintcp_close() could lead to leaks, if esp_output_tcp_finish()\nre-adds an skb in the slot we just freed. After this, the existing\nbarrier() is no longer needed."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:42.445Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/29121c5e6591da527e8e36ddac7120dc527f574d"
},
{
"url": "https://git.kernel.org/stable/c/ed5d9102190c45fc70121c036b0626b740040b75"
},
{
"url": "https://git.kernel.org/stable/c/4bc0dfa28dca6fc0084203732695968049c44072"
},
{
"url": "https://git.kernel.org/stable/c/ff8dd7a932f34409a56e1b91a1219340f17457e9"
},
{
"url": "https://git.kernel.org/stable/c/4b31a875693c480c611519faca46216514e3e052"
},
{
"url": "https://git.kernel.org/stable/c/24efebecf415ba264adba0f0491cec436463a14f"
},
{
"url": "https://git.kernel.org/stable/c/eb3bbf29c723fe75c0eb92be14f0ec92971fe272"
},
{
"url": "https://git.kernel.org/stable/c/54b41ad14da9a981131ab6e4d3f79321a503ea5d"
},
{
"url": "https://git.kernel.org/stable/c/deb232e884877bf10b4ce2580909eedec986c284"
}
],
"title": "xfrm: espintcp: fix UAF during close",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80848",
"datePublished": "2026-09-04T15:54:58.427Z",
"dateReserved": "2026-08-26T14:34:25.797Z",
"dateUpdated": "2026-10-19T08:44:42.445Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74469 (GCVE-0-2026-74469)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: prevent peer transport count overflow
sctp_assoc_add_peer() increments the association's 16-bit transport_count
for every new unique peer. Adding the 65,536th transport wraps the count to
zero.
SCTP sock_diag uses transport_count to reserve the INET_DIAG_PEERS payload,
then copies one sockaddr_storage for every entry in transport_addr_list.
After the wrap, a diagnostic dump reserves an empty payload and writes
8 MiB of peer addresses past the skb tail.
Reject a new unique peer when transport_count has reached U16_MAX. Perform
the check after the existing-peer lookup so a duplicate address continues
to return its existing transport at the limit.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef Version: 8f840e47f190cbe61a96945c13e9551048d42cef |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74469",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:13.238914Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:47.493Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b453e00da1211e997b82743d28af7714c59c05c8",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "dfea32dd76f390e3155177b0038cc47b01386198",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "80f48523a0fe42db2e7375dff4e38a25c117090a",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "546221b86ceeba0d8fec92d46a0604bb7b62be07",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "09e722030e8148ba4ed1e42c6b2ea57bda9f9895",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
},
{
"lessThan": "bd0e9289e2642f6a5c54faad304ce0f41e926d22",
"status": "affected",
"version": "8f840e47f190cbe61a96945c13e9551048d42cef",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: prevent peer transport count overflow\n\nsctp_assoc_add_peer() increments the association\u0027s 16-bit transport_count\nfor every new unique peer. Adding the 65,536th transport wraps the count to\nzero.\n\nSCTP sock_diag uses transport_count to reserve the INET_DIAG_PEERS payload,\nthen copies one sockaddr_storage for every entry in transport_addr_list.\nAfter the wrap, a diagnostic dump reserves an empty payload and writes\n8 MiB of peer addresses past the skb tail.\n\nReject a new unique peer when transport_count has reached U16_MAX. Perform\nthe check after the existing-peer lookup so a duplicate address continues\nto return its existing transport at the limit."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote SCTP peers add unique transports via INIT address parameters and ASCONF ADD_IP chunks processed in sctp_assoc_add_peer(); this is network ingress on SCTP servers (telecom, signaling gateways) before any local diagnostic action.\nAC:L - An attacker controlling an SCTP association can script 65536 unique peer addresses via connectx, repeated ASCONF ADD_IP, or INIT parameters; no race or victim-specific state is required beyond reaching the transport limit.\nPR:L - The heap overflow is triggered via NETLINK_SOCK_DIAG (ss/netlink), reachable by unprivileged users; SCTP socket creation and connectx need no capabilities beyond a normal local account (including user namespaces).\nUI:N - Exploitation requires no victim interaction; the attacker drives transport accumulation and issues the diagnostic dump themselves.\nS:U - Impact is kernel heap corruption within the same kernel security boundary; this is not a VM escape, sandbox breakout, or cross-authority scope change.\nC:H - When transport_count wraps to zero, inet_diag_msg_sctpaddrs_fill() reserves no space but iterates all 65536 transports, writing ~8 MiB past the skb tail and enabling adjacent kernel heap reads.\nI:H - The same diag path performs a massive out-of-bounds write of sockaddr_storage entries past the allocated skb buffer, corrupting adjacent kernel heap objects and enabling control-flow hijacking.\nA:H - Corrupting sk_buff heap metadata and adjacent allocations via an ~8 MiB out-of-bounds write can cause kernel oops, panic, or hang, meeting high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:15.198Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b453e00da1211e997b82743d28af7714c59c05c8"
},
{
"url": "https://git.kernel.org/stable/c/dfea32dd76f390e3155177b0038cc47b01386198"
},
{
"url": "https://git.kernel.org/stable/c/80f48523a0fe42db2e7375dff4e38a25c117090a"
},
{
"url": "https://git.kernel.org/stable/c/546221b86ceeba0d8fec92d46a0604bb7b62be07"
},
{
"url": "https://git.kernel.org/stable/c/09e722030e8148ba4ed1e42c6b2ea57bda9f9895"
},
{
"url": "https://git.kernel.org/stable/c/4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0"
},
{
"url": "https://git.kernel.org/stable/c/6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75"
},
{
"url": "https://git.kernel.org/stable/c/bd0e9289e2642f6a5c54faad304ce0f41e926d22"
}
],
"title": "sctp: prevent peer transport count overflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74469",
"datePublished": "2026-08-15T12:27:06.873Z",
"dateReserved": "2026-08-15T05:44:03.902Z",
"dateUpdated": "2026-10-16T19:05:47.493Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80647 (GCVE-0-2026-80647)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-08-28 06:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/hns: Fix warning in poll cq direct mode
CQs allocated by ib_alloc_cq() always have a comp_handler. Though
in direct mode this handler is never expected to be called, it
is still called when the driver is reset, triggering the following
WARN_ONCE():
Call trace:
ib_cq_completion_direct+0x38/0x60
hns_roce_cq_completion+0x54/0x90 (hns_roce_hw_v2]
hns_roce_handle_device_err+Ox1c8/0x340 [hns_roce_hw_v2]
hns_roce_hw_v2_uninit_instance.constprop.0+0x34/0x70 [hns_roce_hw_v2]
hns_roce_hw_v2_reset_notify+0xc4/0xe0 [hns_roce_hw_v2]
hclge_notify_roce_client+0x60/0xbc [hclge]
hclge_reset_rebuild+0x48/0x34c [hclge]
hclge_reset_subtask+0xcc/0xec [hclge]
hclge_reset_service_task+0x80/0x160 [hclge]
hclge_service_task+0x50/0x80 (hclge]
process_one_work+0x1cc/0x4d0
worker_thread+0x154/0x414
kthread+0x104/0x144
ret_from_fork+0x10/0x18
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 Version: f295e4cece5cb4c60715fed539abcd62468f9ef1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hns/hns_roce_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "95b2e44bc1e5c5d93bb58e178d914dd99a3baa6f",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "e7d363c0ffa836ac1d89657686cad241392c5eb2",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "c028c1977b6e61eee26bb69332453efb6513f83b",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "a075a7acd155ffdd058e72eb3f4cce1207ebafa1",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "9f05319149c14acedb83e2c2842ec4b38992ad9f",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "16138ea9833d6bb1bed37a3321f282242704bf02",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "1e56f8886d64288cf88d80af44c7b9148aeaa98b",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
},
{
"lessThan": "3f19c2a3852e6ba75f3e92dd5edc4e07f3d07f4a",
"status": "affected",
"version": "f295e4cece5cb4c60715fed539abcd62468f9ef1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hns/hns_roce_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"lessThan": "5.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hns: Fix warning in poll cq direct mode\n\nCQs allocated by ib_alloc_cq() always have a comp_handler. Though\nin direct mode this handler is never expected to be called, it\nis still called when the driver is reset, triggering the following\nWARN_ONCE():\n\nCall trace:\nib_cq_completion_direct+0x38/0x60\nhns_roce_cq_completion+0x54/0x90 (hns_roce_hw_v2]\nhns_roce_handle_device_err+Ox1c8/0x340 [hns_roce_hw_v2]\nhns_roce_hw_v2_uninit_instance.constprop.0+0x34/0x70 [hns_roce_hw_v2]\nhns_roce_hw_v2_reset_notify+0xc4/0xe0 [hns_roce_hw_v2]\nhclge_notify_roce_client+0x60/0xbc [hclge]\nhclge_reset_rebuild+0x48/0x34c [hclge]\nhclge_reset_subtask+0xcc/0xec [hclge]\nhclge_reset_service_task+0x80/0x160 [hclge]\nhclge_service_task+0x50/0x80 (hclge]\nprocess_one_work+0x1cc/0x4d0\nworker_thread+0x154/0x414\nkthread+0x104/0x144\nret_from_fork+0x10/0x18"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:48:56.879Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/95b2e44bc1e5c5d93bb58e178d914dd99a3baa6f"
},
{
"url": "https://git.kernel.org/stable/c/e7d363c0ffa836ac1d89657686cad241392c5eb2"
},
{
"url": "https://git.kernel.org/stable/c/c028c1977b6e61eee26bb69332453efb6513f83b"
},
{
"url": "https://git.kernel.org/stable/c/a075a7acd155ffdd058e72eb3f4cce1207ebafa1"
},
{
"url": "https://git.kernel.org/stable/c/9f05319149c14acedb83e2c2842ec4b38992ad9f"
},
{
"url": "https://git.kernel.org/stable/c/16138ea9833d6bb1bed37a3321f282242704bf02"
},
{
"url": "https://git.kernel.org/stable/c/1e56f8886d64288cf88d80af44c7b9148aeaa98b"
},
{
"url": "https://git.kernel.org/stable/c/3f19c2a3852e6ba75f3e92dd5edc4e07f3d07f4a"
}
],
"title": "RDMA/hns: Fix warning in poll cq direct mode",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80647",
"datePublished": "2026-08-28T06:48:56.879Z",
"dateReserved": "2026-08-26T14:34:25.779Z",
"dateUpdated": "2026-08-28T06:48:56.879Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74476 (GCVE-0-2026-74476)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
veth: convert frag_list skbs before running XDP
A frag_list skb can reach veth with data_len set but nr_frags zero.
veth_convert_skb_to_xdp_buff() only converts skbs that are shared,
locked, have frags[], or do not have enough headroom. It later uses
skb_is_nonlinear() to decide whether to set XDP_FLAGS_HAS_FRAGS and
xdp_frags_size.
That exposes frag_list data to XDP as if it were stored in frags[], but
frags[] is empty. AF_XDP copy mode can then trust the bogus XDP fragment
metadata, walk an empty fragment entry, and crash in memcpy() from
__xsk_rcv().
Route non-linear skbs through skb_pp_cow_data() before exposing them to
XDP, and only advertise XDP frags when the resulting skb has frags[].
skb_copy_bits() already handles frag_list input, and skb_pp_cow_data()
builds frags[] output with skb_add_rx_frag(), which is the
representation XDP multi-buffer expects.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74476",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:33.426846Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:48.477Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c",
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0be3632597b8349d43a7dc4244b492dc62a05998",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "04958dba44dc795dc79ce2fcbc117821bbbd6542",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "5c1c15c540fc45820ce3033c319151ec891bc10a",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "b24ba0bbffe3e23eb2f6838881c1fabcb29fb9fb",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "f9c1fff857e93be709c8b52ed1a643f37bd82c66",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "d0d6415963040c401e7a7e4e482a698ba52448cb",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c",
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nveth: convert frag_list skbs before running XDP\n\nA frag_list skb can reach veth with data_len set but nr_frags zero.\nveth_convert_skb_to_xdp_buff() only converts skbs that are shared,\nlocked, have frags[], or do not have enough headroom. It later uses\nskb_is_nonlinear() to decide whether to set XDP_FLAGS_HAS_FRAGS and\nxdp_frags_size.\n\nThat exposes frag_list data to XDP as if it were stored in frags[], but\nfrags[] is empty. AF_XDP copy mode can then trust the bogus XDP fragment\nmetadata, walk an empty fragment entry, and crash in memcpy() from\n__xsk_rcv().\n\nRoute non-linear skbs through skb_pp_cow_data() before exposing them to\nXDP, and only advertise XDP frags when the resulting skb has frags[].\nskb_copy_bits() already handles frag_list input, and skb_pp_cow_data()\nbuilds frags[] output with skb_add_rx_frag(), which is the\nrepresentation XDP multi-buffer expects."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is hit when a received skb traverses veth XDP processing; in cloud/container deployments (e.g. Cloudflare-style edge nodes) remote traffic routed to a veth peer with XDP+AF_XDP can deliver the malformed frag_list skb without local access.\nAC:L - An attacker can reliably supply the required frag_list skb (data_len\u003e0, nr_frags=0) by transmitting from the veth peer via sockets or GRO aggregation, controlling packet size, timing, and content without depending on uncontrollable kernel state.\nPR:N - Remote exploitation needs no attacker privileges when ingress traffic reaches a veth that already has an XDP program redirecting to an AF_XDP socket; only network-delivered skbs trigger veth_convert_skb_to_xdp_buff() and the faulty __xsk_rcv() path.\nUI:N - No victim user action is required beyond normal network traffic reaching the veth interface; exploitation is automatic once a qualifying frag_list skb is received and redirected to AF_XDP copy mode.\nS:U - The flaw causes kernel memory reads and crashes within the host kernel security boundary; it does not cross VM, hypervisor, or IOMMU isolation boundaries.\nC:H - Bogus XDP_FLAGS_HAS_FRAGS metadata makes __xsk_rcv() memcpy from uninitialized frags[] entries via skb_frag_address(), enabling out-of-bounds kernel memory reads into the AF_XDP receive buffer before faulting.\nI:N - The failure mode is a kernel-side memcpy read using invalid fragment metadata; data is copied into the attacker\u0027s AF_XDP ring buffer rather than corrupting kernel or other tenants\u0027 memory for integrity purposes.\nA:H - The commit and code path confirm a kernel crash when __xsk_rcv() follows bogus fragment metadata and memcpy faults on an invalid frags[] source address, causing oops/panic and denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:22.315Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0be3632597b8349d43a7dc4244b492dc62a05998"
},
{
"url": "https://git.kernel.org/stable/c/04958dba44dc795dc79ce2fcbc117821bbbd6542"
},
{
"url": "https://git.kernel.org/stable/c/5c1c15c540fc45820ce3033c319151ec891bc10a"
},
{
"url": "https://git.kernel.org/stable/c/b24ba0bbffe3e23eb2f6838881c1fabcb29fb9fb"
},
{
"url": "https://git.kernel.org/stable/c/f9c1fff857e93be709c8b52ed1a643f37bd82c66"
},
{
"url": "https://git.kernel.org/stable/c/d0d6415963040c401e7a7e4e482a698ba52448cb"
}
],
"title": "veth: convert frag_list skbs before running XDP",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74476",
"datePublished": "2026-08-15T12:27:11.309Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-10-16T19:05:48.477Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74257 (GCVE-0-2026-74257)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sockmap: Fix use-after-free in udp_bpf_recvmsg()
syzbot reported use-after-free of struct sk_msg in sk_msg_recvmsg(). [0]
sk_msg_recvmsg() peeks sk_msg from psock->ingress_msg under a lock,
but its processing is lockless.
Thus, sk_msg_recvmsg() must be serialised by callers, otherwise
multiple threads could touch the same sk_msg.
For example, TCP uses lock_sock(), and AF_UNIX uses unix_sk(sk)->iolock.
Initially, udp_bpf_recvmsg() had used lock_sock(), but the cited
commit removed it.
Let's serialise sk_msg_recvmsg() with lock_sock() in udp_bpf_recvmsg().
Note that holding spin_lock_bh(&sk->sk_receive_queue.lock) is not
an option due to copy_page_to_iter() in sk_msg_recvmsg().
[0]:
BUG: KASAN: slab-use-after-free in sk_msg_recvmsg+0xb54/0xc30 net/core/skmsg.c:428
Read of size 4 at addr ffff88814cdcf000 by task syz.0.24/6020
CPU: 1 UID: 0 PID: 6020 Comm: syz.0.24 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026
Call Trace:
<TASK>
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0xba/0x230 mm/kasan/report.c:482
kasan_report+0x117/0x150 mm/kasan/report.c:595
sk_msg_recvmsg+0xb54/0xc30 net/core/skmsg.c:428
udp_bpf_recvmsg+0x4bd/0xe00 net/ipv4/udp_bpf.c:84
inet_recvmsg+0x260/0x270 net/ipv4/af_inet.c:891
sock_recvmsg_nosec net/socket.c:1078 [inline]
sock_recvmsg+0x1a8/0x270 net/socket.c:1100
____sys_recvmsg+0x1e6/0x4a0 net/socket.c:2812
___sys_recvmsg+0x215/0x590 net/socket.c:2854
do_recvmmsg+0x334/0x800 net/socket.c:2949
__sys_recvmmsg net/socket.c:3023 [inline]
__do_sys_recvmmsg net/socket.c:3046 [inline]
__se_sys_recvmmsg net/socket.c:3039 [inline]
__x64_sys_recvmmsg+0x198/0x250 net/socket.c:3039
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:0x7fb319f9aeb9
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:00007fb31ad97028 EFLAGS: 00000246 ORIG_RAX: 000000000000012b
RAX: ffffffffffffffda RBX: 00007fb31a216090 RCX: 00007fb319f9aeb9
RDX: 0000000000000001 RSI: 0000200000000400 RDI: 0000000000000004
RBP: 00007fb31a008c1f R08: 0000000000000000 R09: 0000000000000000
R10: 0000000040000021 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fb31a216128 R14: 00007fb31a216090 R15: 00007ffe21dd0a98
</TASK>
Allocated by task 6019:
kasan_save_stack mm/kasan/common.c:57 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
poison_kmalloc_redzone mm/kasan/common.c:398 [inline]
__kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:415
kasan_kmalloc include/linux/kasan.h:263 [inline]
__kmalloc_cache_noprof+0x3d1/0x6e0 mm/slub.c:5780
kmalloc_noprof include/linux/slab.h:957 [inline]
kzalloc_noprof include/linux/slab.h:1094 [inline]
alloc_sk_msg net/core/skmsg.c:510 [inline]
sk_psock_skb_ingress_self+0x60/0x350 net/core/skmsg.c:612
sk_psock_verdict_apply net/core/skmsg.c:1038 [inline]
sk_psock_verdict_recv+0x7d9/0x8d0 net/core/skmsg.c:1236
udp_read_skb+0x73e/0x7e0 net/ipv4/udp.c:2045
sk_psock_verdict_data_ready+0x12d/0x550 net/core/skmsg.c:1257
__udp_enqueue_schedule_skb+0xc54/0x10b0 net/ipv4/udp.c:1789
__udp_queue_rcv_skb net/ipv4/udp.c:2346 [inline]
udp_queue_rcv_one_skb+0xac5/0x19c0 net/ipv4/udp.c:2475
__udp4_lib_mcast_deliver+0xc06/0xcf0 net/ipv4/udp.c:2585
__udp4_lib_rcv+0x10f6/0x2620 net/ipv4/udp.c:2724
ip_protocol_deliver_rcu+0x282/0x440 net/ipv4/ip_input.c:207
ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:241
NF_HOOK+0x336/0x3c0 include/linux/netfilter.h:318
dst_input include/net/dst.h:474 [inline]
ip_sublist_rcv_finish+0x221/0x2a0 net/ipv4/ip_input.c:584
ip_list_rcv_finish net/ipv4/ip_inp
---truncated---
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74257",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:30.468106Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:28.234Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6b59007d95aeef6619a72f5ea51f58752c47c198",
"status": "affected",
"version": "9f2470fbc4cb4583c080bb729a998933ba61aca4",
"versionType": "git"
},
{
"lessThan": "05c29e7d42926170f0595c7188d60d8ecb665593",
"status": "affected",
"version": "9f2470fbc4cb4583c080bb729a998933ba61aca4",
"versionType": "git"
},
{
"lessThan": "81567d2b3f4dc4fc32f8b61433738bce2cafd4a1",
"status": "affected",
"version": "9f2470fbc4cb4583c080bb729a998933ba61aca4",
"versionType": "git"
},
{
"lessThan": "39d44ed6904bfa9a1c6d0538672dd50c7b85520e",
"status": "affected",
"version": "9f2470fbc4cb4583c080bb729a998933ba61aca4",
"versionType": "git"
},
{
"lessThan": "c010995b29c8939c6aa69e3cb26f8dbee163d156",
"status": "affected",
"version": "9f2470fbc4cb4583c080bb729a998933ba61aca4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsockmap: Fix use-after-free in udp_bpf_recvmsg()\n\nsyzbot reported use-after-free of struct sk_msg in sk_msg_recvmsg(). [0]\n\nsk_msg_recvmsg() peeks sk_msg from psock-\u003eingress_msg under a lock,\nbut its processing is lockless.\n\nThus, sk_msg_recvmsg() must be serialised by callers, otherwise\nmultiple threads could touch the same sk_msg.\n\nFor example, TCP uses lock_sock(), and AF_UNIX uses unix_sk(sk)-\u003eiolock.\n\nInitially, udp_bpf_recvmsg() had used lock_sock(), but the cited\ncommit removed it.\n\nLet\u0027s serialise sk_msg_recvmsg() with lock_sock() in udp_bpf_recvmsg().\n\nNote that holding spin_lock_bh(\u0026sk-\u003esk_receive_queue.lock) is not\nan option due to copy_page_to_iter() in sk_msg_recvmsg().\n\n[0]:\nBUG: KASAN: slab-use-after-free in sk_msg_recvmsg+0xb54/0xc30 net/core/skmsg.c:428\nRead of size 4 at addr ffff88814cdcf000 by task syz.0.24/6020\n\nCPU: 1 UID: 0 PID: 6020 Comm: syz.0.24 Not tainted syzkaller #0 PREEMPT(full)\nHardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120\n print_address_description mm/kasan/report.c:378 [inline]\n print_report+0xba/0x230 mm/kasan/report.c:482\n kasan_report+0x117/0x150 mm/kasan/report.c:595\n sk_msg_recvmsg+0xb54/0xc30 net/core/skmsg.c:428\n udp_bpf_recvmsg+0x4bd/0xe00 net/ipv4/udp_bpf.c:84\n inet_recvmsg+0x260/0x270 net/ipv4/af_inet.c:891\n sock_recvmsg_nosec net/socket.c:1078 [inline]\n sock_recvmsg+0x1a8/0x270 net/socket.c:1100\n ____sys_recvmsg+0x1e6/0x4a0 net/socket.c:2812\n ___sys_recvmsg+0x215/0x590 net/socket.c:2854\n do_recvmmsg+0x334/0x800 net/socket.c:2949\n __sys_recvmmsg net/socket.c:3023 [inline]\n __do_sys_recvmmsg net/socket.c:3046 [inline]\n __se_sys_recvmmsg net/socket.c:3039 [inline]\n __x64_sys_recvmmsg+0x198/0x250 net/socket.c:3039\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\nRIP: 0033:0x7fb319f9aeb9\nCode: 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 \u003c48\u003e 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48\nRSP: 002b:00007fb31ad97028 EFLAGS: 00000246 ORIG_RAX: 000000000000012b\nRAX: ffffffffffffffda RBX: 00007fb31a216090 RCX: 00007fb319f9aeb9\nRDX: 0000000000000001 RSI: 0000200000000400 RDI: 0000000000000004\nRBP: 00007fb31a008c1f R08: 0000000000000000 R09: 0000000000000000\nR10: 0000000040000021 R11: 0000000000000246 R12: 0000000000000000\nR13: 00007fb31a216128 R14: 00007fb31a216090 R15: 00007ffe21dd0a98\n \u003c/TASK\u003e\n\nAllocated by task 6019:\n kasan_save_stack mm/kasan/common.c:57 [inline]\n kasan_save_track+0x3e/0x80 mm/kasan/common.c:78\n poison_kmalloc_redzone mm/kasan/common.c:398 [inline]\n __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:415\n kasan_kmalloc include/linux/kasan.h:263 [inline]\n __kmalloc_cache_noprof+0x3d1/0x6e0 mm/slub.c:5780\n kmalloc_noprof include/linux/slab.h:957 [inline]\n kzalloc_noprof include/linux/slab.h:1094 [inline]\n alloc_sk_msg net/core/skmsg.c:510 [inline]\n sk_psock_skb_ingress_self+0x60/0x350 net/core/skmsg.c:612\n sk_psock_verdict_apply net/core/skmsg.c:1038 [inline]\n sk_psock_verdict_recv+0x7d9/0x8d0 net/core/skmsg.c:1236\n udp_read_skb+0x73e/0x7e0 net/ipv4/udp.c:2045\n sk_psock_verdict_data_ready+0x12d/0x550 net/core/skmsg.c:1257\n __udp_enqueue_schedule_skb+0xc54/0x10b0 net/ipv4/udp.c:1789\n __udp_queue_rcv_skb net/ipv4/udp.c:2346 [inline]\n udp_queue_rcv_one_skb+0xac5/0x19c0 net/ipv4/udp.c:2475\n __udp4_lib_mcast_deliver+0xc06/0xcf0 net/ipv4/udp.c:2585\n __udp4_lib_rcv+0x10f6/0x2620 net/ipv4/udp.c:2724\n ip_protocol_deliver_rcu+0x282/0x440 net/ipv4/ip_input.c:207\n ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:241\n NF_HOOK+0x336/0x3c0 include/linux/netfilter.h:318\n dst_input include/net/dst.h:474 [inline]\n ip_sublist_rcv_finish+0x221/0x2a0 net/ipv4/ip_input.c:584\n ip_list_rcv_finish net/ipv4/ip_inp\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is triggered in sk_msg_recvmsg() via concurrent local recvmsg/recvmmsg syscalls on a UDP socket whose -\u003erecvmsg was replaced by udp_bpf_recvmsg() after sockmap attachment; per kernel CNA BPF guidance this sockmap path is Local even though remote UDP can populate ingress_msg.\nAC:L - Syzkaller reproduced the bug with attacker-controlled concurrent recvmmsg on one socket; the attacker owns both racing threads and can reliably interleave sk_msg_recvmsg() reads with kfree_sk_msg() without conditions outside attacker control.\nPR:L - Creating BPF sockmap maps and SK_SKB verdict programs requires CAP_NET_ADMIN (obtainable in user namespaces), but once a socket is in the map any unprivileged local holder can trigger the race with ordinary recv syscalls without init-namespace root.\nUI:N - Exploitation requires only the attacker\u0027s own concurrent recv threads and traffic on the target socket; no independent action by another user or administrator is needed at trigger time.\nS:U - The use-after-free corrupts kernel sk_msg/slab and page state within the same kernel security authority; it does not cross VM, IOMMU, or sandbox boundaries by itself.\nC:H - KASAN reported slab-use-after-free on struct sk_msg scatterlist fields during copy_page_to_iter(); the freed sk_msg object can be reclaimed with attacker-controlled contents to read arbitrary kernel memory.\nI:H - Concurrent threads can double-free scatterlist pages and corrupt sk_msg queue linkage on a groomable slab object, yielding standard UAF write primitives usable for arbitrary kernel modification and privilege escalation.\nA:H - The published syzbot trace shows KASAN slab-use-after-free in sk_msg_recvmsg(); this UAF reliably corrupts kernel memory and can oops or panic the host even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:09.646Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6b59007d95aeef6619a72f5ea51f58752c47c198"
},
{
"url": "https://git.kernel.org/stable/c/05c29e7d42926170f0595c7188d60d8ecb665593"
},
{
"url": "https://git.kernel.org/stable/c/81567d2b3f4dc4fc32f8b61433738bce2cafd4a1"
},
{
"url": "https://git.kernel.org/stable/c/39d44ed6904bfa9a1c6d0538672dd50c7b85520e"
},
{
"url": "https://git.kernel.org/stable/c/c010995b29c8939c6aa69e3cb26f8dbee163d156"
}
],
"title": "sockmap: Fix use-after-free in udp_bpf_recvmsg()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74257",
"datePublished": "2026-08-15T05:57:35.604Z",
"dateReserved": "2026-08-15T05:44:03.877Z",
"dateUpdated": "2026-10-21T12:45:09.646Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64377 (GCVE-0-2026-64377)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cpufreq: qcom-cpufreq-hw: Fix possible double free
qcom_cpufreq.data is allocated with devm_kzalloc() in probe() as an
array of per-domain data. qcom_cpufreq_hw_cpu_init() stores a pointer to
one element of this array in policy->driver_data.
qcom_cpufreq_hw_cpu_exit() currently calls kfree() on policy->driver_data.
This is not valid because the memory is devm-managed. For the first
domain, this can free the devm-managed allocation while the devres entry
is still active, leading to a possible double free when the platform
device is later detached. For other domains, the pointer may refer to an
element inside the array rather than the allocation base.
Remove the kfree(data) call and let devres release qcom_cpufreq.data.
This issue was found by a static analysis tool I am developing.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/qcom-cpufreq-hw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f012938f21302c08153589c1aca0283f8d6911d",
"status": "affected",
"version": "054a3ef683a176a509cc9b37f762029aae942495",
"versionType": "git"
},
{
"lessThan": "28a03a3f6e6cda0b0da3b43761d175dec5d14d13",
"status": "affected",
"version": "054a3ef683a176a509cc9b37f762029aae942495",
"versionType": "git"
},
{
"lessThan": "e904961332801c87355f5d11c65bb433e717c489",
"status": "affected",
"version": "054a3ef683a176a509cc9b37f762029aae942495",
"versionType": "git"
},
{
"lessThan": "9de568ef6cdfc7912d5ea8db02843c0e4ef0c75d",
"status": "affected",
"version": "054a3ef683a176a509cc9b37f762029aae942495",
"versionType": "git"
},
{
"lessThan": "bcb8889c4981fdde42d4fd2c29a77d510fe21da2",
"status": "affected",
"version": "054a3ef683a176a509cc9b37f762029aae942495",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/qcom-cpufreq-hw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.2"
},
{
"lessThan": "6.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: qcom-cpufreq-hw: Fix possible double free\n\nqcom_cpufreq.data is allocated with devm_kzalloc() in probe() as an\narray of per-domain data. qcom_cpufreq_hw_cpu_init() stores a pointer to\none element of this array in policy-\u003edriver_data.\n\nqcom_cpufreq_hw_cpu_exit() currently calls kfree() on policy-\u003edriver_data.\nThis is not valid because the memory is devm-managed. For the first\ndomain, this can free the devm-managed allocation while the devres entry\nis still active, leading to a possible double free when the platform\ndevice is later detached. For other domains, the pointer may refer to an\nelement inside the array rather than the allocation base.\n\nRemove the kfree(data) call and let devres release qcom_cpufreq.data.\n\nThis issue was found by a static analysis tool I am developing."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:17.811Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f012938f21302c08153589c1aca0283f8d6911d"
},
{
"url": "https://git.kernel.org/stable/c/28a03a3f6e6cda0b0da3b43761d175dec5d14d13"
},
{
"url": "https://git.kernel.org/stable/c/e904961332801c87355f5d11c65bb433e717c489"
},
{
"url": "https://git.kernel.org/stable/c/9de568ef6cdfc7912d5ea8db02843c0e4ef0c75d"
},
{
"url": "https://git.kernel.org/stable/c/bcb8889c4981fdde42d4fd2c29a77d510fe21da2"
}
],
"title": "cpufreq: qcom-cpufreq-hw: Fix possible double free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64377",
"datePublished": "2026-07-25T08:50:28.299Z",
"dateReserved": "2026-07-19T15:36:31.784Z",
"dateUpdated": "2026-10-21T12:43:17.811Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80540 (GCVE-0-2026-80540)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: Fix UVD decode image min size calculation
This needs to use pitch instead of width. Also reject pitch
over 4096 to avoid overflow.
(cherry picked from commit b41c8cb12e202b220353332ab87dc01a11f69304)
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Version: d38ceaf99ed015f2a0b9af3499791bd3a3daae21 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80540",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:16:48.122962Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:25.254Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bc7397a033ac52f6d8c9bb6510d61694b2a3fce7",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "d058f7a6709441afe1784eecd8c0643dd84750bc",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "b7549e3f96c78921751c4b3e69af729662130d83",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "60539d517e8439621532d8c01091ac049c596b4b",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "271a7da84a6262a09de549912dcf6a749d169cb6",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "25ee120f3803ad9e416ef9f76f4c3234cc4d645b",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "5cbd8af02b0b9c8723fa30edcf6fccab5170af8d",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "b8bb9ba3f101a1b0011f785a577a4a0a38371174",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: Fix UVD decode image min size calculation\n\nThis needs to use pitch instead of width. Also reject pitch\nover 4096 to avoid overflow.\n\n(cherry picked from commit b41c8cb12e202b220353332ab87dc01a11f69304)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reachable only via AMDGPU_CS ioctl on a local DRM render node (/dev/dri/renderD*), through amdgpu_cs_ioctl \u2192 amdgpu_cs_patch_ibs \u2192 amdgpu_uvd_ring_parse_cs \u2192 amdgpu_uvd_cs_pass2 \u2192 amdgpu_uvd_cs_msg \u2192 amdgpu_uvd_cs_msg_decode; not reachable from any network-facing kernel service.\nAC:L - An attacker with render-node access fully controls UVD decode message fields (width, height, pitch in msg[28], stream_type) in their own BO and can reliably set pitch \u003e width (only width \u003e pitch was rejected) to force an underestimated buf_sizes[0x2] check.\nPR:L - Exploitation requires only standard unprivileged local access to the AMDGPU DRM render node (DRM_AUTH|DRM_RENDER_ALLOW on AMDGPU_CS ioctl), not real root; user namespaces alone do not grant render-node access.\nUI:N - No victim interaction is required; a local attacker can directly craft and submit a UVD command stream with a decode message via AMDGPU_CS ioctl after creating a valid UVD session handle.\nS:U - Impact is confined to the kernel/GPU driver on the local host (GPU out-of-bounds access within the attacker\u0027s DRM client address space); it does not cross VM, IOMMU, or sandbox boundaries to a different security authority.\nC:H - Underestimating the decode image minimum size lets undersized buffers pass amdgpu_uvd_cs_pass2 validation while the UVD engine decodes using pitch stride, enabling out-of-bounds reads of adjacent GPU-mapped memory that may contain sensitive data.\nI:H - Using image_size (width-based) instead of (pitch*height)*3/2 for buf_sizes[0x2] allows the UVD hardware to perform large out-of-bounds writes past the validated buffer when pitch exceeds width, corrupting adjacent GPU-mapped memory.\nA:H - Large GPU out-of-bounds writes from the UVD decode engine can hang or reset the GPU driver and may trigger kernel oops/panic; unbounded pitch before the fix also risked integer overflow wrapping the minimum size to near-zero, amplifying corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:01:29.500Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bc7397a033ac52f6d8c9bb6510d61694b2a3fce7"
},
{
"url": "https://git.kernel.org/stable/c/d058f7a6709441afe1784eecd8c0643dd84750bc"
},
{
"url": "https://git.kernel.org/stable/c/b7549e3f96c78921751c4b3e69af729662130d83"
},
{
"url": "https://git.kernel.org/stable/c/60539d517e8439621532d8c01091ac049c596b4b"
},
{
"url": "https://git.kernel.org/stable/c/271a7da84a6262a09de549912dcf6a749d169cb6"
},
{
"url": "https://git.kernel.org/stable/c/25ee120f3803ad9e416ef9f76f4c3234cc4d645b"
},
{
"url": "https://git.kernel.org/stable/c/5cbd8af02b0b9c8723fa30edcf6fccab5170af8d"
},
{
"url": "https://git.kernel.org/stable/c/b8bb9ba3f101a1b0011f785a577a4a0a38371174"
}
],
"title": "drm/amdgpu: Fix UVD decode image min size calculation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80540",
"datePublished": "2026-08-26T14:37:13.966Z",
"dateReserved": "2026-08-26T14:34:25.765Z",
"dateUpdated": "2026-10-16T19:26:25.254Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64570 (GCVE-0-2026-64570)
Vulnerability from cvelistv5
Published
2026-08-05 08:08
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: fix fils_discovery double free on alloc failure
ieee80211_set_fils_discovery() calls kfree_rcu() on the old template
before allocating the replacement. If the kzalloc() then fails, it
returns -ENOMEM while link->u.ap.fils_discovery still points at the
object already queued for freeing. A later update or AP teardown
(ieee80211_stop_ap()) re-queues that same rcu_head; the second free is
caught by KASAN when the RCU sheaf is processed in softirq:
BUG: KASAN: double-free in rcu_free_sheaf (mm/slub.c:5850)
Free of addr ffff88800c065280 by task swapper/0/0
...
__rcu_free_sheaf_prepare (mm/slub.c:2634 mm/slub.c:2940)
rcu_free_sheaf (mm/slub.c:5850)
rcu_core (kernel/rcu/tree.c:2617 kernel/rcu/tree.c:2869)
handle_softirqs (kernel/softirq.c:622)
The buggy address belongs to the cache kmalloc-96 of size 96
Queue the old object for kfree_rcu() only after the new one is published,
matching ieee80211_set_probe_resp() and ieee80211_set_s1g_short_beacon().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64570",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:03.870353Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-415",
"description": "CWE-415 Double Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:42.361Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mac80211/cfg.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e2c55079155a953db669ca1986a985fa286bad95",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "5baaa1042f71dd4b8e418f2cdd516808702d229b",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "1981fba71797ec95e6755fb882cad88899a2a84f",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "286e52a799fa158bdbd77da1426c4d93f9a6e7ad",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mac80211/cfg.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: fix fils_discovery double free on alloc failure\n\nieee80211_set_fils_discovery() calls kfree_rcu() on the old template\nbefore allocating the replacement. If the kzalloc() then fails, it\nreturns -ENOMEM while link-\u003eu.ap.fils_discovery still points at the\nobject already queued for freeing. A later update or AP teardown\n(ieee80211_stop_ap()) re-queues that same rcu_head; the second free is\ncaught by KASAN when the RCU sheaf is processed in softirq:\n\n BUG: KASAN: double-free in rcu_free_sheaf (mm/slub.c:5850)\n Free of addr ffff88800c065280 by task swapper/0/0\n ...\n __rcu_free_sheaf_prepare (mm/slub.c:2634 mm/slub.c:2940)\n rcu_free_sheaf (mm/slub.c:5850)\n rcu_core (kernel/rcu/tree.c:2617 kernel/rcu/tree.c:2869)\n handle_softirqs (kernel/softirq.c:622)\n The buggy address belongs to the cache kmalloc-96 of size 96\n\nQueue the old object for kfree_rcu() only after the new one is published,\nmatching ieee80211_set_probe_resp() and ieee80211_set_s1g_short_beacon()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Triggered only via local nl80211 SoftAP config (NL80211_CMD_START_AP/SET_BEACON \u2192 ieee80211_set_fils_discovery), not by processing over-the-air WiFi frames or remote packets.\nAC:L - The attacker fully controls the SET_BEACON/STOP_AP sequence and can force the GFP_KERNEL kzalloc failure (e.g. memory pressure/memcg) with an attacker-chosen template size; no race or condition outside attacker influence is required.\nPR:L - START_AP and SET_BEACON use GENL_UNS_ADMIN_PERM (CAP_NET_ADMIN in the wiphy netns user_ns). Per CNA guidance that capability via user namespaces scores Low, not init-namespace root High.\nUI:N - The attacker issues the nl80211 commands to set FILS discovery and later tear down or update the AP; no separate victim action is required.\nS:U - Impact stays inside the host kernel mac80211 heap (local privilege-escalation class) and does not cross a VM, IOMMU, or other separate security authority.\nC:H - After the failed alloc the dangling fils_discovery pointer can be read via ieee80211_get_fils_discovery_tmpl and the object is double-freed; double-free/UAF enables heap reuse and arbitrary kernel memory disclosure.\nI:H - Double-free of the attacker-sized kmalloc FILS template (and subsequent stop_ap/update re-free) is classic heap corruption enabling spray/arbitrary-write and control-flow hijack primitives.\nA:H - The bug is a KASAN-confirmed double-free in rcu_free_sheaf softirq processing and can oops/panic the kernel, fully denying availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:57:49.594Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e2c55079155a953db669ca1986a985fa286bad95"
},
{
"url": "https://git.kernel.org/stable/c/5baaa1042f71dd4b8e418f2cdd516808702d229b"
},
{
"url": "https://git.kernel.org/stable/c/1981fba71797ec95e6755fb882cad88899a2a84f"
},
{
"url": "https://git.kernel.org/stable/c/286e52a799fa158bdbd77da1426c4d93f9a6e7ad"
}
],
"title": "wifi: mac80211: fix fils_discovery double free on alloc failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64570",
"datePublished": "2026-08-05T08:08:07.855Z",
"dateReserved": "2026-07-19T15:36:31.797Z",
"dateUpdated": "2026-10-19T20:48:42.361Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-31689 (GCVE-0-2026-31689)
Vulnerability from cvelistv5
Published
2026-04-27 17:34
Modified
2026-05-11 22:13
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
EDAC/mc: Fix error path ordering in edac_mc_alloc()
When the mci->pvt_info allocation in edac_mc_alloc() fails, the error path
will call put_device() which will end up calling the device's release
function.
However, the init ordering is wrong such that device_initialize() happens
*after* the failed allocation and thus the device itself and the release
function pointer are not initialized yet when they're called:
MCE: In-kernel MCE decoding enabled.
------------[ cut here ]------------
kobject: '(null)': is not initialized, yet kobject_put() is being called.
WARNING: lib/kobject.c:734 at kobject_put, CPU#22: systemd-udevd
CPU: 22 UID: 0 PID: 538 Comm: systemd-udevd Not tainted 7.0.0-rc1+ #2 PREEMPT(full)
RIP: 0010:kobject_put
Call Trace:
<TASK>
edac_mc_alloc+0xbe/0xe0 [edac_core]
amd64_edac_init+0x7a4/0xff0 [amd64_edac]
? __pfx_amd64_edac_init+0x10/0x10 [amd64_edac]
do_one_initcall
...
Reorder the calling sequence so that the device is initialized and thus the
release function pointer is properly set before it can be used.
This was found by Claude while reviewing another EDAC patch.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 Version: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/edac/edac_mc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "aae95970fad2127a1bd49d8713c7cd0677dcd2d6",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
},
{
"lessThan": "d3de72e2a2b9ee3a57734c1c068823e41a707715",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
},
{
"lessThan": "d20e98c2df9354cc744431ad8ccbf49405b8b40f",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
},
{
"lessThan": "87ce8ae511962e105bcb3534944208c6a9471ed9",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
},
{
"lessThan": "75825648ce984ca4cebb28e4bd2bf8c3a7e837c5",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
},
{
"lessThan": "51520e03e70d6c73e33ee7cbe0319767d05764fe",
"status": "affected",
"version": "0bbb265f7089584aaa6d440805ca75ea4f3930d4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/edac/edac_mc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.169",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.135",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.82",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.23",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.169",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.135",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.82",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.23",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.13",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nEDAC/mc: Fix error path ordering in edac_mc_alloc()\n\nWhen the mci-\u003epvt_info allocation in edac_mc_alloc() fails, the error path\nwill call put_device() which will end up calling the device\u0027s release\nfunction.\n\nHowever, the init ordering is wrong such that device_initialize() happens\n*after* the failed allocation and thus the device itself and the release\nfunction pointer are not initialized yet when they\u0027re called:\n\n MCE: In-kernel MCE decoding enabled.\n ------------[ cut here ]------------\n kobject: \u0027(null)\u0027: is not initialized, yet kobject_put() is being called.\n WARNING: lib/kobject.c:734 at kobject_put, CPU#22: systemd-udevd\n CPU: 22 UID: 0 PID: 538 Comm: systemd-udevd Not tainted 7.0.0-rc1+ #2 PREEMPT(full)\n RIP: 0010:kobject_put\n Call Trace:\n \u003cTASK\u003e\n edac_mc_alloc+0xbe/0xe0 [edac_core]\n amd64_edac_init+0x7a4/0xff0 [amd64_edac]\n ? __pfx_amd64_edac_init+0x10/0x10 [amd64_edac]\n do_one_initcall\n ...\n\nReorder the calling sequence so that the device is initialized and thus the\nrelease function pointer is properly set before it can be used.\n\nThis was found by Claude while reviewing another EDAC patch."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:13:44.271Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/aae95970fad2127a1bd49d8713c7cd0677dcd2d6"
},
{
"url": "https://git.kernel.org/stable/c/d3de72e2a2b9ee3a57734c1c068823e41a707715"
},
{
"url": "https://git.kernel.org/stable/c/d20e98c2df9354cc744431ad8ccbf49405b8b40f"
},
{
"url": "https://git.kernel.org/stable/c/87ce8ae511962e105bcb3534944208c6a9471ed9"
},
{
"url": "https://git.kernel.org/stable/c/75825648ce984ca4cebb28e4bd2bf8c3a7e837c5"
},
{
"url": "https://git.kernel.org/stable/c/51520e03e70d6c73e33ee7cbe0319767d05764fe"
}
],
"title": "EDAC/mc: Fix error path ordering in edac_mc_alloc()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-31689",
"datePublished": "2026-04-27T17:34:27.793Z",
"dateReserved": "2026-03-09T15:48:24.131Z",
"dateUpdated": "2026-05-11T22:13:44.271Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89544 (GCVE-0-2026-89544)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: fix gssx_dec_option_array error path bugs
Four coupled defects in the gssx XDR option-array decoder make the
error paths unsafe: a NULL deref in the caller, a refcount leak on
the decoded group_info, and a latent use-after-free that the leak
fix would otherwise expose.
gssx_dec_option_array() sets oa->count = 1 before allocating
oa->data. If that allocation fails, -ENOMEM is returned with
oa->count == 1 and oa->data == NULL. All other error paths jump
to free_oa: which frees oa->data and NULLs it but also leaves
oa->count == 1. The caller trusts the count:
gssp_accept_sec_context_upcall()
gssx_dec_accept_sec_context()
gssx_dec_option_array() /* fails, count=1 data=NULL */
data = res.options.data[0].value /* NULL deref */
Independently, free_creds: releases the partially decoded svc_cred
with a bare kfree(creds). gssx_dec_linux_creds() installs a
groups_alloc() result into creds->cr_group_info; that object is
kvmalloc-backed and refcounted, and only put_group_info() reaches
kvfree(). A plain kfree(creds) drops the wrapper and leaks the
group_info allocation.
The natural fix for the leak is to call free_svc_cred(creds) before
kfree(creds), but free_svc_cred() invokes put_group_info() on
creds->cr_group_info unconditionally when non-NULL. The existing
out_free_groups: path in gssx_dec_linux_creds() already called
groups_free() on that pointer without clearing it, so once
free_svc_cred() is wired in, the subsequent put_group_info() would
touch freed memory.
Fix all four together:
- Move the oa->count = 1 assignment below the oa->data allocation
so it is never set when oa->data is NULL.
- Reset oa->count to 0 at free_oa: so count and data stay
coherent and the caller sees an empty option array.
- Call free_svc_cred(creds) before kfree(creds) at free_creds:
so the refcounted cr_group_info is released. free_svc_cred()
either NULL-guards each field explicitly (cr_group_info has
an if() check) or delegates to a helper that is NULL-safe
itself (kfree for the string fields, gss_mech_put() which
guards with if(gm) at gss_mech_switch.c:342), so it is safe
to call on a partially decoded svc_cred where only
cr_uid/cr_gid/cr_group_info have been written and everything
else is zero from kzalloc.
- In gssx_dec_linux_creds()'s out_free_groups: path, release
cr_group_info with put_group_info() rather than groups_free()
so the teardown matches free_svc_cred()'s refcount-aware path,
and clear the pointer so a later free_svc_cred() on the same
creds does not release it a second time.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5e6013ae2c8d420faea553d363935f65badd32c3 Version: 3cfcfc102a5e57b021b786a755a38935e357797d Version: 3cfcfc102a5e57b021b786a755a38935e357797d Version: 3cfcfc102a5e57b021b786a755a38935e357797d Version: 3cfcfc102a5e57b021b786a755a38935e357797d Version: b97c37978ca825557d331c9012e0c1ddc0e42364 Version: bfa9d86d39a0fe4685f90c3529aa9bd62a9d97a8 Version: bb336cd8d5ecb69c430ebe3e7bcff68471d93fa8 Version: dd292e884c649f9b1c18af0ec75ca90b390cd044 Version: 934212a623cbab851848b6de377eb476718c3e4c Version: 9806c2393cd2ab0a8e7bb9ffae02ce20e3112ec4 Version: 996997d1fb2126feda550d6adcedcbd94911fc69 Version: 6.6.23 ≤ Version: 4.19.311 ≤ Version: 5.4.273 ≤ Version: 5.10.214 ≤ Version: 5.15.153 ≤ Version: 6.1.83 ≤ Version: 6.7.11 ≤ Version: 6.8.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89544",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:33.519592Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.511Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8c56a46db3b7523f13e167c3e2c6e3c47a87dcb3",
"status": "affected",
"version": "5e6013ae2c8d420faea553d363935f65badd32c3",
"versionType": "git"
},
{
"lessThan": "fb30241f7ccace372ee83017891549f23a715581",
"status": "affected",
"version": "3cfcfc102a5e57b021b786a755a38935e357797d",
"versionType": "git"
},
{
"lessThan": "3ff45361e9469e85c0f86b8e7b82c63e50bab8ef",
"status": "affected",
"version": "3cfcfc102a5e57b021b786a755a38935e357797d",
"versionType": "git"
},
{
"lessThan": "f85a83774d7f4e2ac71c0c384df0dfb6f7d0179a",
"status": "affected",
"version": "3cfcfc102a5e57b021b786a755a38935e357797d",
"versionType": "git"
},
{
"lessThan": "5e9a94539b1ec17a89177d952badfd0d844d694a",
"status": "affected",
"version": "3cfcfc102a5e57b021b786a755a38935e357797d",
"versionType": "git"
},
{
"status": "affected",
"version": "b97c37978ca825557d331c9012e0c1ddc0e42364",
"versionType": "git"
},
{
"status": "affected",
"version": "bfa9d86d39a0fe4685f90c3529aa9bd62a9d97a8",
"versionType": "git"
},
{
"status": "affected",
"version": "bb336cd8d5ecb69c430ebe3e7bcff68471d93fa8",
"versionType": "git"
},
{
"status": "affected",
"version": "dd292e884c649f9b1c18af0ec75ca90b390cd044",
"versionType": "git"
},
{
"status": "affected",
"version": "934212a623cbab851848b6de377eb476718c3e4c",
"versionType": "git"
},
{
"status": "affected",
"version": "9806c2393cd2ab0a8e7bb9ffae02ce20e3112ec4",
"versionType": "git"
},
{
"status": "affected",
"version": "996997d1fb2126feda550d6adcedcbd94911fc69",
"versionType": "git"
},
{
"lessThan": "6.6.160",
"status": "affected",
"version": "6.6.23",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.311",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.273",
"versionType": "semver"
},
{
"lessThan": "5.11",
"status": "affected",
"version": "5.10.214",
"versionType": "semver"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.153",
"versionType": "semver"
},
{
"lessThan": "6.2",
"status": "affected",
"version": "6.1.83",
"versionType": "semver"
},
{
"lessThan": "6.8",
"status": "affected",
"version": "6.7.11",
"versionType": "semver"
},
{
"lessThan": "6.9",
"status": "affected",
"version": "6.8.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.6.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.311",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.273",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.10.214",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.153",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.83",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.7.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: fix gssx_dec_option_array error path bugs\n\nFour coupled defects in the gssx XDR option-array decoder make the\nerror paths unsafe: a NULL deref in the caller, a refcount leak on\nthe decoded group_info, and a latent use-after-free that the leak\nfix would otherwise expose.\n\ngssx_dec_option_array() sets oa-\u003ecount = 1 before allocating\noa-\u003edata. If that allocation fails, -ENOMEM is returned with\noa-\u003ecount == 1 and oa-\u003edata == NULL. All other error paths jump\nto free_oa: which frees oa-\u003edata and NULLs it but also leaves\noa-\u003ecount == 1. The caller trusts the count:\n\n gssp_accept_sec_context_upcall()\n gssx_dec_accept_sec_context()\n gssx_dec_option_array() /* fails, count=1 data=NULL */\n data = res.options.data[0].value /* NULL deref */\n\nIndependently, free_creds: releases the partially decoded svc_cred\nwith a bare kfree(creds). gssx_dec_linux_creds() installs a\ngroups_alloc() result into creds-\u003ecr_group_info; that object is\nkvmalloc-backed and refcounted, and only put_group_info() reaches\nkvfree(). A plain kfree(creds) drops the wrapper and leaks the\ngroup_info allocation.\n\nThe natural fix for the leak is to call free_svc_cred(creds) before\nkfree(creds), but free_svc_cred() invokes put_group_info() on\ncreds-\u003ecr_group_info unconditionally when non-NULL. The existing\nout_free_groups: path in gssx_dec_linux_creds() already called\ngroups_free() on that pointer without clearing it, so once\nfree_svc_cred() is wired in, the subsequent put_group_info() would\ntouch freed memory.\n\nFix all four together:\n\n - Move the oa-\u003ecount = 1 assignment below the oa-\u003edata allocation\n so it is never set when oa-\u003edata is NULL.\n - Reset oa-\u003ecount to 0 at free_oa: so count and data stay\n coherent and the caller sees an empty option array.\n - Call free_svc_cred(creds) before kfree(creds) at free_creds:\n so the refcounted cr_group_info is released. free_svc_cred()\n either NULL-guards each field explicitly (cr_group_info has\n an if() check) or delegates to a helper that is NULL-safe\n itself (kfree for the string fields, gss_mech_put() which\n guards with if(gm) at gss_mech_switch.c:342), so it is safe\n to call on a partially decoded svc_cred where only\n cr_uid/cr_gid/cr_group_info have been written and everything\n else is zero from kzalloc.\n - In gssx_dec_linux_creds()\u0027s out_free_groups: path, release\n cr_group_info with put_group_info() rather than groups_free()\n so the teardown matches free_svc_cred()\u0027s refcount-aware path,\n and clear the pointer so a later free_svc_cred() on the same\n creds does not release it a second time."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The decoder runs only as a consequence of an RPCSEC_GSS_INIT/CONTINUE_INIT Call to in-kernel nfsd (and other SUNRPC servers such as lockd) on the network, typically TCP/2049. A remote client drives svcauth_gss_proxy_init() \u2192 gssp_accept_sec_context_upcall() \u2192 gssx_dec_option_array(); the attacker\u2019s reach is purely over the network.\nAC:L - Any allocation or XDR error after oa-\u003ecount is set to 1 leaves count=1 with data=NULL, and the caller always indexes res.options.data[0]. The attacker can induce those failures by flooding pre-auth GSS_INIT upcalls that each pin 256 KB of receive pages (especially under memcg-limited nfsd) and by driving large group-list replies, so success does not depend on conditions beyond their control.\nPR:N - svcauth_gss_proxy_init() runs from svcauth_gss_proc_init() on the first RPCSEC_GSS handshake leg, before the kernel has validated any Kerberos ticket. The upcall and option-array decode execute for an unauthenticated NFS client; no local account or prior credential on the server is required.\nUI:N - The crash is triggered entirely by an inbound RPC to an already-running nfsd/SUNRPC service thread. No administrator or end-user action such as mounting a filesystem or opening a file is required.\nS:U - The NULL dereference and group_info leak occur inside the host kernel\u2019s SUNRPC/GSS code. Impact stays within that kernel\u2019s security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - With oa-\u003ecount==1 and oa-\u003edata==NULL, gssp_accept_sec_context_upcall() does \u0026res.options.data[0].value, a NULL+small-offset load that faults on the unmapped zero page. No kernel memory is returned to the attacker; unlike a UAF, freed object contents are never read.\nI:N - The faulting access is a pure NULL-pointer dereference with no kernel write. The put_group_info() UAF described in the fix is only latent: the unpatched free_creds path kfree()s the svc_cred wrapper without touching cr_group_info, so the dangling pointer is not used.\nA:H - The NULL dereference oopses the nfsd (or lockd) thread and panics the host where panic_on_oops is set, which is typical on NAS/appliance NFS servers. The same error path also leaks the kvmalloc-backed group_info, and the crash can be repeated to take down SUNRPC service threads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:49.203Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8c56a46db3b7523f13e167c3e2c6e3c47a87dcb3"
},
{
"url": "https://git.kernel.org/stable/c/fb30241f7ccace372ee83017891549f23a715581"
},
{
"url": "https://git.kernel.org/stable/c/3ff45361e9469e85c0f86b8e7b82c63e50bab8ef"
},
{
"url": "https://git.kernel.org/stable/c/f85a83774d7f4e2ac71c0c384df0dfb6f7d0179a"
},
{
"url": "https://git.kernel.org/stable/c/5e9a94539b1ec17a89177d952badfd0d844d694a"
}
],
"title": "SUNRPC: fix gssx_dec_option_array error path bugs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89544",
"datePublished": "2026-09-11T19:44:20.424Z",
"dateReserved": "2026-09-11T19:38:34.722Z",
"dateUpdated": "2026-10-21T12:47:49.203Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80631 (GCVE-0-2026-80631)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: lzo: reject compressed segment that overflows the compressed input
lzo_decompress_bio() validates each on-disk segment length seg_len only
against the workspace cbuf size, not against the compressed input size
(compressed_len, the total folio bytes of the bio). A crafted extent can
carry a segment whose seg_len passes the cbuf check but runs past the end
of the bio, so copy_compressed_segment() walks off the last folio:
get_current_folio() then returns the NULL folio from bio_next_folio(), and
with CONFIG_BTRFS_ASSERT disabled (default) folio_size(NULL) faults.
BUG: KASAN: null-ptr-deref in lzo_decompress_bio (fs/btrfs/lzo.c:383)
Read of size 8 at addr 0000000000000000 by task kworker/u8:1/29
Workqueue: btrfs-endio simple_end_io_work
kasan_report (mm/kasan/report.c:590)
lzo_decompress_bio (fs/btrfs/lzo.c:383)
end_bbio_compressed_read (fs/btrfs/compression.c:1065)
btrfs_bio_end_io (fs/btrfs/bio.c:135)
btrfs_check_read_bio (fs/btrfs/bio.c:180 fs/btrfs/bio.c:285)
simple_end_io_work
process_one_work
worker_thread
Reject any segment whose payload would extend beyond compressed_len before
copying it, treating it as corruption like the other on-disk validation
failures in this function.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/lzo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d9b17f9ce67d00e48fab62dcae197612a58f625f",
"status": "affected",
"version": "a6e66e6f8c1b685e11b778bef614480a9c1a5278",
"versionType": "git"
},
{
"lessThan": "1c48c8c807e49ac4f72819a89035fb8d2d094015",
"status": "affected",
"version": "a6e66e6f8c1b685e11b778bef614480a9c1a5278",
"versionType": "git"
},
{
"lessThan": "be7fb59512ffc2da5d98214a00117dfe9eccab78",
"status": "affected",
"version": "a6e66e6f8c1b685e11b778bef614480a9c1a5278",
"versionType": "git"
},
{
"lessThan": "1641d058adfbd50cf95d54581ed5d142ee82c07f",
"status": "affected",
"version": "a6e66e6f8c1b685e11b778bef614480a9c1a5278",
"versionType": "git"
},
{
"lessThan": "b0d27d43791b7a3057c3c4aedf9b4aa033d37c46",
"status": "affected",
"version": "a6e66e6f8c1b685e11b778bef614480a9c1a5278",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/lzo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: lzo: reject compressed segment that overflows the compressed input\n\nlzo_decompress_bio() validates each on-disk segment length seg_len only\nagainst the workspace cbuf size, not against the compressed input size\n(compressed_len, the total folio bytes of the bio). A crafted extent can\ncarry a segment whose seg_len passes the cbuf check but runs past the end\nof the bio, so copy_compressed_segment() walks off the last folio:\nget_current_folio() then returns the NULL folio from bio_next_folio(), and\nwith CONFIG_BTRFS_ASSERT disabled (default) folio_size(NULL) faults.\n\n BUG: KASAN: null-ptr-deref in lzo_decompress_bio (fs/btrfs/lzo.c:383)\n Read of size 8 at addr 0000000000000000 by task kworker/u8:1/29\n Workqueue: btrfs-endio simple_end_io_work\n kasan_report (mm/kasan/report.c:590)\n lzo_decompress_bio (fs/btrfs/lzo.c:383)\n end_bbio_compressed_read (fs/btrfs/compression.c:1065)\n btrfs_bio_end_io (fs/btrfs/bio.c:135)\n btrfs_check_read_bio (fs/btrfs/bio.c:180 fs/btrfs/bio.c:285)\n simple_end_io_work\n process_one_work\n worker_thread\n\nReject any segment whose payload would extend beyond compressed_len before\ncopying it, treating it as corruption like the other on-disk validation\nfailures in this function."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - On btrfs-backed NAS/cloud storage exported via nfsd or ksmbd, a remote client\u0027s read I/O is served by the server kernel through btrfs_do_readpage\u2192btrfs_submit_compressed_read\u2192lzo_decompress_bio, reaching the vulnerable LZO segment parser without local syscall access on the server.\nAC:L - A crafted on-disk LZO segment header with seg_len that passes the cbuf-size check but exceeds remaining compressed_len deterministically drives copy_compressed_segment past the last bio folio; no race, special memory layout, or rare kernel config is required.\nPR:N - Triggering needs only read access to btrfs content on an already-mounted/exported volume (e.g., NFS/ksmbd read); planting malformed LZO segment metadata is done via offline btrfs image crafting and does not require init-namespace root or a local account on the victim.\nUI:N - Exploitation is the attacker\u0027s own read against a btrfs volume that already contains the crafted LZO-compressed extent (backup restore, shared storage, or export); no separate victim mount, click, or plug-in action is needed beyond that read.\nS:U - Impact is a kernel NULL-pointer dereference and oops in the btrfs-endio workqueue on the host parsing attacker-supplied compressed data; this is standard host-kernel failure within one security authority, not VM escape or IOMMU bypass.\nC:N - The demonstrated failure is a null-ptr-deref read at address 0 in folio_size(NULL) when walking past the bio; unlike slab OOB reads in related btrfs LZO bugs, no adjacent kernel memory is disclosed before the fault.\nI:N - The bug faults during folio iteration before completing an out-of-bounds copy or decompression; there is no demonstrated or plausible kernel heap/stack write, control-flow hijack, or other integrity corruption beyond attacker-controlled on-disk bytes already in the bio.\nA:H - The NULL dereference in lzo_decompress_bio runs in btrfs-endio kworker context and produces a KASAN-reported kernel oops/panic; any process read (local or remote via NFS/ksmbd) of the crafted extent can repeatedly crash the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:40.471Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d9b17f9ce67d00e48fab62dcae197612a58f625f"
},
{
"url": "https://git.kernel.org/stable/c/1c48c8c807e49ac4f72819a89035fb8d2d094015"
},
{
"url": "https://git.kernel.org/stable/c/be7fb59512ffc2da5d98214a00117dfe9eccab78"
},
{
"url": "https://git.kernel.org/stable/c/1641d058adfbd50cf95d54581ed5d142ee82c07f"
},
{
"url": "https://git.kernel.org/stable/c/b0d27d43791b7a3057c3c4aedf9b4aa033d37c46"
}
],
"title": "btrfs: lzo: reject compressed segment that overflows the compressed input",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80631",
"datePublished": "2026-08-28T06:48:47.166Z",
"dateReserved": "2026-08-26T14:34:25.776Z",
"dateUpdated": "2026-10-21T12:46:40.471Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80789 (GCVE-0-2026-80789)
Vulnerability from cvelistv5
Published
2026-09-04 15:13
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: bound SGL data length before allocating command buffers
nvmet_tcp_map_data() reads the host-controlled 32-bit sgl->length
and, for the in-capsule offset descriptor (type 0x01), checks it
against port->inline_data_size before use. Any other SGL descriptor
type -- including the non-inline transport SGL data-block descriptor
(type (NVME_TRANSPORT_SGL_DATA_DESC << 4) | NVME_SGL_FMT_TRANSPORT_A,
the type a real host uses for out-of-capsule writes) skips that check
entirely and falls straight through to:
cmd->req.sg = sgl_alloc(len, GFP_KERNEL, &cmd->req.sg_cnt);
with len taken directly from the wire, unbounded up to 4 GiB.
nvmet_req_init() only parses the command and never inspects
sgl->length, and nvmet_check_transfer_len() -- the only other place
transfer_len is validated -- runs later, from req->execute(), after
the allocation has already happened. For a write command the target
responds with an R2T and parks the command waiting for the host to
send the data; if the host (or an unauthenticated peer that simply
never follows up) never does, the sgl_alloc() buffer stays resident
for the life of the command. NVMe/TCP has no mandatory authentication
in the default configuration, so any peer able to reach the target
portal and complete a Fabrics connect can drive this with a single
crafted command, repeatable across queues and connections for
amplification. This is unbounded kernel memory allocation
triggered by a remote, effectively unauthenticated peer.
Validate len against the same NVMET_TCP_MAXH2CDATA ceiling this file
already uses to bound per-PDU H2C data, for every SGL descriptor type,
before doing any allocation. This closes the gap for the non-inline
descriptor while leaving the existing, tighter inline_data_size check
in place for the in-capsule case.
Runtime-verified on a v6.19 KASAN stand: with this bound in place, a
crafted write command carrying an oversized non-inline SGL length is
rejected before sgl_alloc() runs, where the same request previously
drove an unbounded ~256 MiB kernel allocation (up to 4 GiB) that
stayed resident pending an R2T the host never satisfies.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f6e51b09cbaa5f6f6e6a3a9dafa666f76c37aab5",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "f63e89a0310264264923f84406dea05fe752de62",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "0952541b153e258b99d39cdb03ea6919fdeb41d0",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "25ad03d5c0e858c4b63f1e4b6d461d2af1b30b22",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "d2acc96c528d589f5827cfb90e8e9229dd9d8cb4",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "6d27199ebe8cb223022150f74be13f154a964474",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "14dbe37681a6a7e346fc147bb363ec7cca3180a0",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "d895e66628f939edbb98608f6e033d3d39e6e546",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "4a3f00262a044e8e15064b1a6860968bf0500bf4",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: bound SGL data length before allocating command buffers\n\nnvmet_tcp_map_data() reads the host-controlled 32-bit sgl-\u003elength\nand, for the in-capsule offset descriptor (type 0x01), checks it\nagainst port-\u003einline_data_size before use. Any other SGL descriptor\ntype -- including the non-inline transport SGL data-block descriptor\n(type (NVME_TRANSPORT_SGL_DATA_DESC \u003c\u003c 4) | NVME_SGL_FMT_TRANSPORT_A,\nthe type a real host uses for out-of-capsule writes) skips that check\nentirely and falls straight through to:\n\n\tcmd-\u003ereq.sg = sgl_alloc(len, GFP_KERNEL, \u0026cmd-\u003ereq.sg_cnt);\n\nwith len taken directly from the wire, unbounded up to 4 GiB.\n\nnvmet_req_init() only parses the command and never inspects\nsgl-\u003elength, and nvmet_check_transfer_len() -- the only other place\ntransfer_len is validated -- runs later, from req-\u003eexecute(), after\nthe allocation has already happened. For a write command the target\nresponds with an R2T and parks the command waiting for the host to\nsend the data; if the host (or an unauthenticated peer that simply\nnever follows up) never does, the sgl_alloc() buffer stays resident\nfor the life of the command. NVMe/TCP has no mandatory authentication\nin the default configuration, so any peer able to reach the target\nportal and complete a Fabrics connect can drive this with a single\ncrafted command, repeatable across queues and connections for\namplification. This is unbounded kernel memory allocation\ntriggered by a remote, effectively unauthenticated peer.\n\nValidate len against the same NVMET_TCP_MAXH2CDATA ceiling this file\nalready uses to bound per-PDU H2C data, for every SGL descriptor type,\nbefore doing any allocation. This closes the gap for the non-inline\ndescriptor while leaving the existing, tighter inline_data_size check\nin place for the in-capsule case.\n\nRuntime-verified on a v6.19 KASAN stand: with this bound in place, a\ncrafted write command carrying an oversized non-inline SGL length is\nrejected before sgl_alloc() runs, where the same request previously\ndrove an unbounded ~256 MiB kernel allocation (up to 4 GiB) that\nstayed resident pending an R2T the host never satisfies."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:42.439Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f6e51b09cbaa5f6f6e6a3a9dafa666f76c37aab5"
},
{
"url": "https://git.kernel.org/stable/c/f63e89a0310264264923f84406dea05fe752de62"
},
{
"url": "https://git.kernel.org/stable/c/0952541b153e258b99d39cdb03ea6919fdeb41d0"
},
{
"url": "https://git.kernel.org/stable/c/25ad03d5c0e858c4b63f1e4b6d461d2af1b30b22"
},
{
"url": "https://git.kernel.org/stable/c/d2acc96c528d589f5827cfb90e8e9229dd9d8cb4"
},
{
"url": "https://git.kernel.org/stable/c/6d27199ebe8cb223022150f74be13f154a964474"
},
{
"url": "https://git.kernel.org/stable/c/14dbe37681a6a7e346fc147bb363ec7cca3180a0"
},
{
"url": "https://git.kernel.org/stable/c/d895e66628f939edbb98608f6e033d3d39e6e546"
},
{
"url": "https://git.kernel.org/stable/c/4a3f00262a044e8e15064b1a6860968bf0500bf4"
}
],
"title": "nvmet-tcp: bound SGL data length before allocating command buffers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80789",
"datePublished": "2026-09-04T15:13:01.161Z",
"dateReserved": "2026-08-26T14:34:25.793Z",
"dateUpdated": "2026-10-19T08:43:42.439Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68312 (GCVE-0-2026-68312)
Vulnerability from cvelistv5
Published
2026-08-10 12:02
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cifs: fix cifsFileInfo leak on kmalloc failure in deferred close drain paths
In cifs_close_deferred_file(), cifs_close_all_deferred_files(), and
cifs_close_deferred_file_under_dentry(), when a pending deferred close
is cancelled via cancel_delayed_work(), the subsequent kmalloc_obj() to
add the file to the local processing list may fail under memory pressure.
The loop breaks immediately, but the cancelled work is no longer pending
(it would have called _cifsFileInfo_put()), and the cfile is never added
to file_head for processing. The cifsFileInfo reference and the open
server handle both leak.
Fix by saving the cfile that failed allocation in a local variable,
breaking as before, and calling _cifsFileInfo_put() on it after
releasing the lock. Any files later in the iteration are unaffected
since their deferred work is still pending and will fire normally.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c968b2417f6a15d35ff4b97d534af4a126cb510b",
"status": "affected",
"version": "e3fc065682ebbbd15b0ce0036800f4acbf765d46",
"versionType": "git"
},
{
"lessThan": "7af7ec3af091f55d01f0ebe0246d10e37f358311",
"status": "affected",
"version": "e3fc065682ebbbd15b0ce0036800f4acbf765d46",
"versionType": "git"
},
{
"lessThan": "6089f561e2c31a3ba52836c75c7d2ab50d2eea41",
"status": "affected",
"version": "e3fc065682ebbbd15b0ce0036800f4acbf765d46",
"versionType": "git"
},
{
"lessThan": "32390b3f06f26e366cfb27dbac4bc0196c321535",
"status": "affected",
"version": "e3fc065682ebbbd15b0ce0036800f4acbf765d46",
"versionType": "git"
},
{
"lessThan": "c2f2e83e3bbc5483730fd4ee903182761f1ae50f",
"status": "affected",
"version": "e3fc065682ebbbd15b0ce0036800f4acbf765d46",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: fix cifsFileInfo leak on kmalloc failure in deferred close drain paths\n\nIn cifs_close_deferred_file(), cifs_close_all_deferred_files(), and\ncifs_close_deferred_file_under_dentry(), when a pending deferred close\nis cancelled via cancel_delayed_work(), the subsequent kmalloc_obj() to\nadd the file to the local processing list may fail under memory pressure.\nThe loop breaks immediately, but the cancelled work is no longer pending\n(it would have called _cifsFileInfo_put()), and the cfile is never added\nto file_head for processing. The cifsFileInfo reference and the open\nserver handle both leak.\n\nFix by saving the cfile that failed allocation in a local variable,\nbreaking as before, and calling _cifsFileInfo_put() on it after\nreleasing the lock. Any files later in the iteration are unaffected\nsince their deferred work is still pending and will fire normally."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:49.957Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c968b2417f6a15d35ff4b97d534af4a126cb510b"
},
{
"url": "https://git.kernel.org/stable/c/7af7ec3af091f55d01f0ebe0246d10e37f358311"
},
{
"url": "https://git.kernel.org/stable/c/6089f561e2c31a3ba52836c75c7d2ab50d2eea41"
},
{
"url": "https://git.kernel.org/stable/c/32390b3f06f26e366cfb27dbac4bc0196c321535"
},
{
"url": "https://git.kernel.org/stable/c/c2f2e83e3bbc5483730fd4ee903182761f1ae50f"
}
],
"title": "cifs: fix cifsFileInfo leak on kmalloc failure in deferred close drain paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68312",
"datePublished": "2026-08-10T12:02:46.907Z",
"dateReserved": "2026-07-30T09:28:09.381Z",
"dateUpdated": "2026-10-21T12:43:49.957Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64556 (GCVE-0-2026-64556)
Vulnerability from cvelistv5
Published
2026-07-29 08:01
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Detach event groups during remove_on_exec
perf_event_remove_on_exec() removes events by calling
perf_event_exit_event(). For top-level events, this removes the event from
the context with DETACH_EXIT only.
This can leave inconsistent group state when a removed event is a group
leader and the group contains siblings without remove_on_exec. If the group
was active, the surviving siblings can remain active and attached to the
removed leader's sibling list, but are no longer represented by a valid
group leader on the PMU context active lists.
A later close of the removed leader uses DETACH_GROUP and can promote the
still-active siblings from this stale group state. The next schedule-in can
then add an already-linked active_list entry again, corrupting the PMU
context active list.
With DEBUG_LIST enabled, this is caught as a list_add double-add in
merge_sched_in().
Fix this by detaching group relationships when remove_on_exec removes an
event. This preserves the existing task-exit and revoke behavior, while
ensuring surviving siblings are ungrouped before the removed event leaves
the context.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64556",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:42:33.956439Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-662",
"description": "CWE-662 Improper Synchronization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:40.883Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4cdb1b3ab96eb1b7eb70bc5c82fede334bd60df2",
"status": "affected",
"version": "2e498d0a74e5b88a6689ae1b811f247f91ff188e",
"versionType": "git"
},
{
"lessThan": "39358e856fb89e62e3c8d7389a2dc4ec33dbe90e",
"status": "affected",
"version": "2e498d0a74e5b88a6689ae1b811f247f91ff188e",
"versionType": "git"
},
{
"lessThan": "a2d5d3ee7b6e3953114726b1521e62123ab5b043",
"status": "affected",
"version": "2e498d0a74e5b88a6689ae1b811f247f91ff188e",
"versionType": "git"
},
{
"lessThan": "06ccef0434e98058ddae7bcebc901f93d22b7653",
"status": "affected",
"version": "2e498d0a74e5b88a6689ae1b811f247f91ff188e",
"versionType": "git"
},
{
"lessThan": "037a3c43edfb597665dd34457cd22b14692f2ba3",
"status": "affected",
"version": "2e498d0a74e5b88a6689ae1b811f247f91ff188e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/core: Detach event groups during remove_on_exec\n\nperf_event_remove_on_exec() removes events by calling\nperf_event_exit_event(). For top-level events, this removes the event from\nthe context with DETACH_EXIT only.\n\nThis can leave inconsistent group state when a removed event is a group\nleader and the group contains siblings without remove_on_exec. If the group\nwas active, the surviving siblings can remain active and attached to the\nremoved leader\u0027s sibling list, but are no longer represented by a valid\ngroup leader on the PMU context active lists.\n\nA later close of the removed leader uses DETACH_GROUP and can promote the\nstill-active siblings from this stale group state. The next schedule-in can\nthen add an already-linked active_list entry again, corrupting the PMU\ncontext active list.\n\nWith DEBUG_LIST enabled, this is caught as a list_add double-add in\nmerge_sched_in().\n\nFix this by detaching group relationships when remove_on_exec removes an\nevent. This preserves the existing task-exit and revoke behavior, while\nensuring surviving siblings are ungrouped before the removed event leaves\nthe context."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerability is triggered entirely through local syscalls \u2014 `perf_event_open(2)` to build the event group and `execve(2)`/`close(2)` to trigger the stale-group corruption. No network or physical vector is involved.\nAC:L - The attacker controls the entire deterministic sequence: create a pinned/enabled group with a `remove_on_exec` leader plus non-`remove_on_exec` siblings, exec, then close the leader. No race the attacker cannot influence is required.\nPR:L - An unprivileged user can open perf events on their own task with `exclude_kernel=1` even at the default `perf_event_paranoid=2`, requiring no capability. Basic local user access suffices.\nUI:N - The attacking process performs every step itself (open, exec, close); no action from any other user is needed.\nS:U - The corruption stays within the kernel\u0027s own security authority (PMU context list in kernel heap); it does not cross a hypervisor/IOMMU/sandbox boundary.\nC:H - Corrupting the doubly-linked active list of `perf_event` objects yields pointer manipulation over heap-embedded list nodes, which can be leveraged to read adjacent/freed kernel memory for information disclosure.\nI:H - A double `list_add`/subsequent list operations on a corrupted list provide write-what-where-style primitives against attacker-influenceable heap objects, enabling arbitrary modification and control-flow hijack.\nA:H - The list corruption reliably produces a kernel crash/oops (caught as a list_add double-add under DEBUG_LIST, silent corruption and panic otherwise), causing denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:57:34.489Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4cdb1b3ab96eb1b7eb70bc5c82fede334bd60df2"
},
{
"url": "https://git.kernel.org/stable/c/39358e856fb89e62e3c8d7389a2dc4ec33dbe90e"
},
{
"url": "https://git.kernel.org/stable/c/a2d5d3ee7b6e3953114726b1521e62123ab5b043"
},
{
"url": "https://git.kernel.org/stable/c/06ccef0434e98058ddae7bcebc901f93d22b7653"
},
{
"url": "https://git.kernel.org/stable/c/037a3c43edfb597665dd34457cd22b14692f2ba3"
}
],
"title": "perf/core: Detach event groups during remove_on_exec",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64556",
"datePublished": "2026-07-29T08:01:46.864Z",
"dateReserved": "2026-07-19T15:36:31.796Z",
"dateUpdated": "2026-10-19T20:48:40.883Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74453 (GCVE-0-2026-74453)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: Zero the tile state data array before each BIN job
The binner BO is a single 16MB buffer split into 512KB slots that are
handed out to jobs at submission time and recycled as jobs complete,
without ever being cleared. Each slot holds the job's Tile State Data
Array (TSDA) at its start, followed by the tile allocation pool.
While the tile allocation pool is only walked by the render thread
through branches the binner generated during the current job, the
TSDA is the PTB's own per-tile bookkeeping and is consumed by the
hardware itself. Although the kernel sets the "Auto-initialise Tile
State Data Array" flag in the tile binning mode configuration, the
PTB demonstrably still acts on stale tile state left by the slot's
previous user: the binner ends up creating invalid command streams
with invalid primitive streams and branches, which can cause GPU hangs
as observed in [1][2].
Zero the TSDA when the job's binning slot is configured. This clears
48 bytes per tile (~24KB for a 1080p frame) in the submission path, and
guarantees the PTB never sees another job's tile state.
The tile count is only checked for being non-zero today, so the 8-bit
fields it comes from can describe a tile state array almost six times
larger than the slot it has to live in. Bound it before the slot is
handed out, since such size decides how much of the slot is left for
the tile alloc pool.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 Version: 553c942f8b2cbc7394b4d4fa2f848b23a8f07451 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74453",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:54.919199Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:46.727Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_validate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c5d8e8e1a8e3b4e464683c5a8a869c16a6382fea",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "d3677372e0275e139f0efd2872c5a524b5d12868",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "c8dea7e7c6098e383e44f21a64d0431da5480e3f",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "f5802be65535f8818af7191159cf8c11f48ab2a2",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "0e858422df2334165293ea742da9fbb2e51f2739",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "57667eb7548faaac396c6e39f3b4444dab5b097c",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "a75c8f365e209aa9bb927b0942a7840152d44892",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
},
{
"lessThan": "48a570c964d8e37d353381e4195106277e17f5cb",
"status": "affected",
"version": "553c942f8b2cbc7394b4d4fa2f848b23a8f07451",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_validate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.13"
},
{
"lessThan": "4.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vc4: Zero the tile state data array before each BIN job\n\nThe binner BO is a single 16MB buffer split into 512KB slots that are\nhanded out to jobs at submission time and recycled as jobs complete,\nwithout ever being cleared. Each slot holds the job\u0027s Tile State Data\nArray (TSDA) at its start, followed by the tile allocation pool.\n\nWhile the tile allocation pool is only walked by the render thread\nthrough branches the binner generated during the current job, the\nTSDA is the PTB\u0027s own per-tile bookkeeping and is consumed by the\nhardware itself. Although the kernel sets the \"Auto-initialise Tile\nState Data Array\" flag in the tile binning mode configuration, the\nPTB demonstrably still acts on stale tile state left by the slot\u0027s\nprevious user: the binner ends up creating invalid command streams\nwith invalid primitive streams and branches, which can cause GPU hangs\nas observed in [1][2].\n\nZero the TSDA when the job\u0027s binning slot is configured. This clears\n48 bytes per tile (~24KB for a 1080p frame) in the submission path, and\nguarantees the PTB never sees another job\u0027s tile state.\n\nThe tile count is only checked for being non-zero today, so the 8-bit\nfields it comes from can describe a tile state array almost six times\nlarger than the slot it has to live in. Bound it before the slot is\nhanded out, since such size decides how much of the slot is left for\nthe tile alloc pool."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached in validate_tile_binning_config() while validating a user bin command list during DRM_IOCTL_VC4_SUBMIT_CL on the VC4 DRM render node (/dev/dri/renderD*), a local ioctl path rather than any network-facing protocol.\nAC:L - An attacker with render-node access controls TILE_BINNING_MODE_CONFIG tile dimensions and can submit concurrent or back-to-back bin jobs to obtain recycled 512KB binner slots carrying stale TSDA; no uncontrollable races or rare kernel config are required.\nPR:L - VC4_SUBMIT_CL is registered with DRM_RENDER_ALLOW only (no DRM_AUTH) and vc4_open() performs no capability checks; unprivileged users in the render/video group on Raspberry Pi and other VC4 deployments routinely open /dev/dri/renderD*.\nUI:N - No victim interaction is needed when a local attacker with render-node access crafts and submits a malicious bin command list via DRM_IOCTL_VC4_SUBMIT_CL to trigger recycled-slot stale tile state or oversized tile counts.\nS:U - Impact is stale-state and GPU PTB misbehavior corrupting shared CMA binner memory for local privilege escalation; it does not cross VM, hypervisor, or IOMMU boundaries and remains within the kernel security authority.\nC:H - Recycled 512KB slots retain prior jobs\u0027 48-byte-per-tile TSDA in the shared 16MB CMA binner BO (cross-process GPU address/metadata leak); missing tile-count bounds let the PTB consume up to ~3MB TSDA spanning multiple slots and stale pointers misdirect PTB reads.\nI:H - Stale TSDA drives the PTB to build invalid primitive streams and branches with out-of-slot GPU DMA across the shared binner BO; unbounded 8-bit tile counts also make tile_alloc_size wrap to ~4GB while tile_alloc_offset points past the 512KB slot, enabling arbitrary CMA corruption.\nA:H - The fix commit and linked Raspberry Pi issues document GPU hangs, repeated \"[drm] Resetting GPU\", permanently wedged GPUs after invalid bin streams, display corruption, and full system lockups requiring power-cycle or reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:43.715Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c5d8e8e1a8e3b4e464683c5a8a869c16a6382fea"
},
{
"url": "https://git.kernel.org/stable/c/d3677372e0275e139f0efd2872c5a524b5d12868"
},
{
"url": "https://git.kernel.org/stable/c/c8dea7e7c6098e383e44f21a64d0431da5480e3f"
},
{
"url": "https://git.kernel.org/stable/c/f5802be65535f8818af7191159cf8c11f48ab2a2"
},
{
"url": "https://git.kernel.org/stable/c/0e858422df2334165293ea742da9fbb2e51f2739"
},
{
"url": "https://git.kernel.org/stable/c/57667eb7548faaac396c6e39f3b4444dab5b097c"
},
{
"url": "https://git.kernel.org/stable/c/a75c8f365e209aa9bb927b0942a7840152d44892"
},
{
"url": "https://git.kernel.org/stable/c/48a570c964d8e37d353381e4195106277e17f5cb"
}
],
"title": "drm/vc4: Zero the tile state data array before each BIN job",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74453",
"datePublished": "2026-08-15T12:26:56.949Z",
"dateReserved": "2026-08-15T05:44:03.899Z",
"dateUpdated": "2026-10-16T19:05:46.727Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89680 (GCVE-0-2026-89680)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix nfsd_file leak on inter-server COPY setup failure
When nfsd4_setup_inter_ssc() fails, nfsd4_copy() returns
nfserr_offload_denied directly, bypassing the out: label where
release_copy_files() would drop the nf_dst reference taken by
nfs4_preprocess_stateid_op(). Each failed inter-server COPY
leaks one nfsd_file, pinning file/inode/dentry/vfsmount.
Fix by setting status and jumping to out: instead of returning
directly.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ab949252fdf102ae74329a0caa7995a849d0dafa",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "1a6a41b848455bf6ba2c9da2dfb0730e608ce7ab",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "424d5c95108a4809b832cb0a312c61de4aec0078",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "6ed8d6de7ec90c4ba84eb82673058f506e5777fd",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "88a76145451d703eedd867b5989bf73d17340399",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix nfsd_file leak on inter-server COPY setup failure\n\nWhen nfsd4_setup_inter_ssc() fails, nfsd4_copy() returns\nnfserr_offload_denied directly, bypassing the out: label where\nrelease_copy_files() would drop the nf_dst reference taken by\nnfs4_preprocess_stateid_op(). Each failed inter-server COPY\nleaks one nfsd_file, pinning file/inode/dentry/vfsmount.\n\nFix by setting status and jumping to out: instead of returning\ndirectly."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd\u0027s NFSv4.2 OP_COPY is reached over TCP/2049: svc_recv to nfsd_dispatch to nfsd4_proc_compound to nfsd4_copy to nfsd4_setup_inter_ssc. A remote client triggers the leak with a COMPOUND; no local access to the server is required.\nAC:L - Once inter-server COPY offload is enabled, the attacker controls every trigger: async COPY on the wire, a valid dest write stateid, and a source nl4_server that makes nfsd4_interssc_connect fail (bad uaddr/netid or failed mount). No race or attacker-uncontrollable layout is required.\nPR:N - Under default AUTH_SYS, EXCHANGE_ID/CREATE_SESSION and OPEN verify no secret; a remote client permitted by the export asserts a UID and obtains write stateids. This matches PR:N on the same nfsd4_copy path (CVE-2024-53073, CVE-2024-50241).\nUI:N - The attacker\u0027s own NFSv4.2 COMPOUND traffic drives nfsd4_copy; no administrator or local user on the server must mount, open a file, or otherwise interact beyond nfsd already serving an export.\nS:U - The leaked nfsd_file reference pins file/inode/dentry/vfsmount inside the NFS server kernel\u0027s own security authority; there is no VM, IOMMU, or sandbox boundary crossing.\nC:N - The defect only skips nfsd_file_put() on an extra filecache reference taken by nfs4_preprocess_stateid_op(); there is no out-of-bounds read, use-after-free, or other disclosure of kernel memory to the client.\nI:N - COPY setup fails before nfsd_copy_range, so no file data is modified; the leaked reference is not attacker-controlled reused memory and yields no write or control-flow primitive.\nA:H - Each failed inter-server COPY permanently leaks one nfsd_file ref, pinning the dest file/inode/dentry/vfsmount. Repeating against many created-then-unlinked files unbounded-pins slab and inodes and blocks umount, enabling remote kernel memory exhaustion and NFS server DoS."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:17.853Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ab949252fdf102ae74329a0caa7995a849d0dafa"
},
{
"url": "https://git.kernel.org/stable/c/1a6a41b848455bf6ba2c9da2dfb0730e608ce7ab"
},
{
"url": "https://git.kernel.org/stable/c/424d5c95108a4809b832cb0a312c61de4aec0078"
},
{
"url": "https://git.kernel.org/stable/c/6ed8d6de7ec90c4ba84eb82673058f506e5777fd"
},
{
"url": "https://git.kernel.org/stable/c/88a76145451d703eedd867b5989bf73d17340399"
}
],
"title": "nfsd: fix nfsd_file leak on inter-server COPY setup failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89680",
"datePublished": "2026-09-11T19:46:03.468Z",
"dateReserved": "2026-09-11T19:38:34.748Z",
"dateUpdated": "2026-10-21T12:48:17.853Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68343 (GCVE-0-2026-68343)
Vulnerability from cvelistv5
Published
2026-08-10 12:03
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: validate DFS referral PathConsumed
parse_dfs_referrals() validates that the response contains the fixed
referral entry array and, on for-next, the per-referral string offsets.
However, the response also contains a PathConsumed value that is later
used for DFS path parsing.
If a malformed response provides a PathConsumed value larger than the
search name, later DFS parsing can advance beyond the end of the path.
Validate PathConsumed against the search name length before storing it in
the parsed referral.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad Version: 4ecce920e13ace16a5ba45efe8909946c28fb2ad |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68343",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:19.145050Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:05.575Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bfebe5110fd135d86d65a0a346e14c106b02028b",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
},
{
"lessThan": "5b439f39f33ec15d319ced3b025e122346fba987",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
},
{
"lessThan": "285bd4a5f3f156aa5869843b47a1b1380b774241",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
},
{
"lessThan": "2fdd6d196c656b376cc251e1e9ff110b3ed522e1",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
},
{
"lessThan": "9f88a99ed511651b2dc2177d6854b2d1b8322e75",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
},
{
"lessThan": "f6f5ee2aa33b350c671721b965251c42cebb962e",
"status": "affected",
"version": "4ecce920e13ace16a5ba45efe8909946c28fb2ad",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate DFS referral PathConsumed\n\nparse_dfs_referrals() validates that the response contains the fixed\nreferral entry array and, on for-next, the per-referral string offsets.\nHowever, the response also contains a PathConsumed value that is later\nused for DFS path parsing.\n\nIf a malformed response provides a PathConsumed value larger than the\nsearch name, later DFS parsing can advance beyond the end of the path.\n\nValidate PathConsumed against the search name length before storing it in\nthe parsed referral."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The tainted PathConsumed value comes directly from a GET_DFS_REFERRAL response received over TCP/445 from the SMB server, so a malicious or MITM-positioned server on the network fully controls the input to the vulnerable code.\nAC:L - The server simply sets an oversized PathConsumed (up to 65535, and it can also clear the SMB1 UNICODE flag to select the completely unvalidated branch); the resulting out-of-bounds walk past the path buffer is deterministic and needs no race or memory-layout luck.\nPR:N - The attacker is the remote server (or a MITM on an unsigned connection) and needs no account or privilege on the victim client; the client parses the referral response as part of establishing the connection.\nUI:N - DFS referral walks are performed automatically by autofs/systemd automounts, fstab mounts at boot and reconnect-driven remounts, so a forged referral can be delivered without any user action.\nS:U - The out-of-bounds access stays within the kernel\u0027s own memory and mount context on the client; no VM, IOMMU or sandbox boundary is crossed.\nC:H - prepath = full_path + path_consumed points past the end of the heap path string, and cifs_build_devname() strlen()s and copies from there, splicing adjacent kernel heap contents (up to ~64KB away) into the constructed UNC/prefixpath that is then observable via the mount source and /proc/mounts.\nI:N - The defect is purely an out-of-bounds read; all subsequent allocations and copies are sized from the same over-read string, so no kernel memory is written or corrupted.\nA:H - With PathConsumed up to 65535 the pointer can run far past a small slab object into an unmapped or guarded page, so strlen() on it oopses the mounting task (and panics on panic_on_oops systems)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:33:43.025Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bfebe5110fd135d86d65a0a346e14c106b02028b"
},
{
"url": "https://git.kernel.org/stable/c/5b439f39f33ec15d319ced3b025e122346fba987"
},
{
"url": "https://git.kernel.org/stable/c/285bd4a5f3f156aa5869843b47a1b1380b774241"
},
{
"url": "https://git.kernel.org/stable/c/2fdd6d196c656b376cc251e1e9ff110b3ed522e1"
},
{
"url": "https://git.kernel.org/stable/c/9f88a99ed511651b2dc2177d6854b2d1b8322e75"
},
{
"url": "https://git.kernel.org/stable/c/f6f5ee2aa33b350c671721b965251c42cebb962e"
}
],
"title": "smb: client: validate DFS referral PathConsumed",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68343",
"datePublished": "2026-08-10T12:03:19.939Z",
"dateReserved": "2026-07-30T09:28:09.384Z",
"dateUpdated": "2026-10-19T21:09:05.575Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68146 (GCVE-0-2026-68146)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-08-23 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ftrace: Add global mutex to serialize trace_parser access
In ftrace, the trace_parser structure is allocated and initialized when
a trace file is opened, and is subsequently used across write and release
handlers to parse user input.
The affected handler paths and their specific functions are:
- Open paths: ftrace_regex_open(), ftrace_graph_open()
- Write paths: ftrace_regex_write(), ftrace_graph_write()
- Release paths: ftrace_regex_release(), ftrace_graph_release()
If userspace opens a trace file descriptor and shares it across multiple
threads, concurrent write calls will race on the parser's internal state,
specifically the 'idx', 'cont', and 'buffer' fields, leading to corrupted
input or undefined behavior.
Fix this by adding a global mutex, parser_lock, to serialize all access
to trace_parser across write and release paths, preventing concurrent
corruption of parser state.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 Version: 689fd8b65d669b96d612ccc37d6fb87bf7ed6907 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ftrace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a29bc20ea5f0cb79c6287f2c6182c5eeb8e6c01f",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "db76744d588086695371ecdd982694395628ba48",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "1474fe4453505b6be720b5bb94be1c927de3314a",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "3d0dd138a06c782f8b755cd1b6f9909494514ce1",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "90be137813e1a5bdfd671e40fe28004fb959d3e4",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "65bf73bee1a4f3722208ae46afc0fa5de76b9a0a",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "e807c9193d9493c7a0d039158ebb955050a76df1",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
},
{
"lessThan": "7720b63bcef3f54c7fe288774b720a227d54a306",
"status": "affected",
"version": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ftrace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.32"
},
{
"lessThan": "2.6.32",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.32",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nftrace: Add global mutex to serialize trace_parser access\n\nIn ftrace, the trace_parser structure is allocated and initialized when\na trace file is opened, and is subsequently used across write and release\nhandlers to parse user input.\n\nThe affected handler paths and their specific functions are:\n - Open paths: ftrace_regex_open(), ftrace_graph_open()\n - Write paths: ftrace_regex_write(), ftrace_graph_write()\n - Release paths: ftrace_regex_release(), ftrace_graph_release()\n\nIf userspace opens a trace file descriptor and shares it across multiple\nthreads, concurrent write calls will race on the parser\u0027s internal state,\nspecifically the \u0027idx\u0027, \u0027cont\u0027, and \u0027buffer\u0027 fields, leading to corrupted\ninput or undefined behavior.\n\nFix this by adding a global mutex, parser_lock, to serialize all access\nto trace_parser across write and release paths, preventing concurrent\ncorruption of parser state."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:45:57.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a29bc20ea5f0cb79c6287f2c6182c5eeb8e6c01f"
},
{
"url": "https://git.kernel.org/stable/c/db76744d588086695371ecdd982694395628ba48"
},
{
"url": "https://git.kernel.org/stable/c/1474fe4453505b6be720b5bb94be1c927de3314a"
},
{
"url": "https://git.kernel.org/stable/c/3d0dd138a06c782f8b755cd1b6f9909494514ce1"
},
{
"url": "https://git.kernel.org/stable/c/90be137813e1a5bdfd671e40fe28004fb959d3e4"
},
{
"url": "https://git.kernel.org/stable/c/65bf73bee1a4f3722208ae46afc0fa5de76b9a0a"
},
{
"url": "https://git.kernel.org/stable/c/e807c9193d9493c7a0d039158ebb955050a76df1"
},
{
"url": "https://git.kernel.org/stable/c/7720b63bcef3f54c7fe288774b720a227d54a306"
}
],
"title": "ftrace: Add global mutex to serialize trace_parser access",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68146",
"datePublished": "2026-08-10T11:59:11.273Z",
"dateReserved": "2026-07-30T09:28:09.371Z",
"dateUpdated": "2026-08-23T12:45:57.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74523 (GCVE-0-2026-74523)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
qede: sync udp_tunnel ports outside qede_lock in the recovery path
A TX timeout on a qede NIC that has VXLAN/GENEVE tunnel ports
configured wedges the rtnetlink control plane of the whole machine:
NETDEV WATCHDOG: ens6f1 (qede): transmit queue 2 timed out 10226 ms
[qede_tx_timeout:586(ens6f1)]TX timeout on queue 2!
[qede_recovery_handler:2665(ens6f0)]Starting a recovery process
The recovery path deadlocks on the driver's own mutex:
qede_sp_task
rtnl_lock()
mutex_lock(&edev->qede_lock) <- taken
qede_recovery_handler
qede_load
udp_tunnel_nic_reset_ntf
__udp_tunnel_nic_device_sync
info->sync_table == qede_udp_tunnel_sync
mutex_lock(&edev->qede_lock) <- same task: deadlock
The mutex is not recursive, so the kworker blocks on itself with
rtnl_lock held, and neither lock is ever released. Every task that
calls rtnl_lock() afterwards (ip, ovs-vswitchd, lldpad, IPv6
addrconf, sshd) blocks forever while the node still answers ping.
In a vmcore from an affected production node rtnl_mutex.owner
decodes to the very kworker blocked at the innermost mutex_lock()
above.
Re-sync the tunnel ports from qede_sp_task() after the internal lock
is dropped, still under rtnl_lock as the udp_tunnel API requires.
This mirrors qede_open(), which calls udp_tunnel_nic_reset_ntf()
under rtnl without the internal lock.
qede_recovery_handler() now returns whether it has successfully
reloaded an open device, and the caller re-syncs the ports only in
that case. This keeps the old gating exactly: a device that was down
or a failed recovery returns false, as those paths never reached the
udp_tunnel_nic_reset_ntf() call before either.
This was the only user of the qede_lock()/qede_unlock() helpers, so
remove them.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 Version: 8cd160a29415f1789d473b1dc07fcc9d02a02b87 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74523",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:07.418597Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:52.869Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "19e505ee8bb9e0f0355eda9e9f614fb25fed0070",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "c4c1e5d6bc2b900b2328d6fff93dc8146b858d69",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "8e1bdf57de91247e57816482966265ada573cc74",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "e382a4efeeae6555b95d9ff336cf3094ee7d336b",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "4626df3f63c9185efba5750fe76ac01ab3351bae",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "e51becb8f3377a377171ed5bf0082b96e22e6292",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "6f1ef8170d3d8ad9319aa01347945dcdf5cc4f27",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
},
{
"lessThan": "451c9075d6c53f2438d110addbeeeea6fac18567",
"status": "affected",
"version": "8cd160a29415f1789d473b1dc07fcc9d02a02b87",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nqede: sync udp_tunnel ports outside qede_lock in the recovery path\n\nA TX timeout on a qede NIC that has VXLAN/GENEVE tunnel ports\nconfigured wedges the rtnetlink control plane of the whole machine:\n\n NETDEV WATCHDOG: ens6f1 (qede): transmit queue 2 timed out 10226 ms\n [qede_tx_timeout:586(ens6f1)]TX timeout on queue 2!\n [qede_recovery_handler:2665(ens6f0)]Starting a recovery process\n\nThe recovery path deadlocks on the driver\u0027s own mutex:\n\n qede_sp_task\n rtnl_lock()\n mutex_lock(\u0026edev-\u003eqede_lock) \u003c- taken\n qede_recovery_handler\n qede_load\n udp_tunnel_nic_reset_ntf\n __udp_tunnel_nic_device_sync\n info-\u003esync_table == qede_udp_tunnel_sync\n mutex_lock(\u0026edev-\u003eqede_lock) \u003c- same task: deadlock\n\nThe mutex is not recursive, so the kworker blocks on itself with\nrtnl_lock held, and neither lock is ever released. Every task that\ncalls rtnl_lock() afterwards (ip, ovs-vswitchd, lldpad, IPv6\naddrconf, sshd) blocks forever while the node still answers ping.\nIn a vmcore from an affected production node rtnl_mutex.owner\ndecodes to the very kworker blocked at the innermost mutex_lock()\nabove.\n\nRe-sync the tunnel ports from qede_sp_task() after the internal lock\nis dropped, still under rtnl_lock as the udp_tunnel API requires.\nThis mirrors qede_open(), which calls udp_tunnel_nic_reset_ntf()\nunder rtnl without the internal lock.\n\nqede_recovery_handler() now returns whether it has successfully\nreloaded an open device, and the caller re-syncs the ports only in\nthat case. This keeps the old gating exactly: a device that was down\nor a failed recovery returns false, as those paths never reached the\nudp_tunnel_nic_reset_ntf() call before either.\n\nThis was the only user of the qede_lock()/qede_unlock() helpers, so\nremove them."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from the qede NIC firmware error-recovery path triggered by network-driven faults (e.g., TX queue watchdog timeout on traffic-bearing queues); remote packets to an internet-facing qede host can induce recovery without local syscall access.\nAC:L - Once qede recovery runs on an interface with VXLAN/GENEVE ports registered, the nested qede_lock while rtnl_lock is held deadlocks deterministically; attackers can repeatedly apply traffic/load patterns to provoke TX timeout and firmware ERROR_RECOVERY.\nPR:N - Exploitation requires only the ability to send network traffic that provokes NIC recovery on a target that already has VXLAN/GENEVE offloads configured (normal on cloud/DC qede nodes); no attacker privileges or rtnetlink configuration are needed.\nUI:N - No victim interaction is required beyond routine use of a server whose qede uplink already runs overlay networking; the attacker does not need the victim to mount, open, or approve anything at exploit time.\nS:U - Impact is a kernel networking control-plane deadlock within the same host/kernel trust boundary; it does not cross VM, container, or IOMMU security domains to affect other authorities.\nC:N - This is a locking deadlock with no memory corruption, out-of-bounds access, use-after-free, or information disclosure; only mutex/RTNL state is wedged.\nI:N - The flaw does not modify data or achieve code execution; it only blocks threads waiting on rtnl_lock/qede_lock without altering memory contents or kernel objects beyond stalled lock state.\nA:H - The deadlock holds rtnl_lock indefinitely, freezing system-wide network reconfiguration and management (ip, ovs-vswitchd, sshd addr setup) until reboot; per CVSS guidance, kernel deadlocks that deny critical availability are rated High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:27.388Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/19e505ee8bb9e0f0355eda9e9f614fb25fed0070"
},
{
"url": "https://git.kernel.org/stable/c/c4c1e5d6bc2b900b2328d6fff93dc8146b858d69"
},
{
"url": "https://git.kernel.org/stable/c/8e1bdf57de91247e57816482966265ada573cc74"
},
{
"url": "https://git.kernel.org/stable/c/e382a4efeeae6555b95d9ff336cf3094ee7d336b"
},
{
"url": "https://git.kernel.org/stable/c/4626df3f63c9185efba5750fe76ac01ab3351bae"
},
{
"url": "https://git.kernel.org/stable/c/e51becb8f3377a377171ed5bf0082b96e22e6292"
},
{
"url": "https://git.kernel.org/stable/c/6f1ef8170d3d8ad9319aa01347945dcdf5cc4f27"
},
{
"url": "https://git.kernel.org/stable/c/451c9075d6c53f2438d110addbeeeea6fac18567"
}
],
"title": "qede: sync udp_tunnel ports outside qede_lock in the recovery path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74523",
"datePublished": "2026-08-15T12:27:40.575Z",
"dateReserved": "2026-08-15T05:44:03.911Z",
"dateUpdated": "2026-10-16T19:05:52.869Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74540 (GCVE-0-2026-74540)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp
l2cap_le_connect_rsp() obtains a channel via
__l2cap_get_chan_by_ident() but neither holds a reference nor uses
l2cap_chan_hold_unless_zero() before locking and operating on it.
A concurrent l2cap_chan_del() triggered by a remote disconnect can
free the channel between the lookup and l2cap_chan_lock(), causing
a use-after-free.
The BR/EDR counterpart l2cap_connect_rsp() and the sibling handler
l2cap_le_command_rej() already use l2cap_chan_hold_unless_zero()
to safely hold a reference, but l2cap_le_connect_rsp() was left
unprotected.
Fix by adding l2cap_chan_hold_unless_zero() after the ident lookup
and l2cap_chan_put() on the exit path, consistent with other L2CAP
response handlers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 Version: f1496dee9cbde2a62821f4441dadb0d3360f60c3 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74540",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:42.755795Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:54.604Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/l2cap_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "15d6c2367217a6a20b1abae9f38ded716bf620f1",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "1818180fe12d6cec7a437bc59cde8efdf6b10250",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "8325eafb38c3dee5af329266393763693d17381b",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "fd4c1e301bdec60a40728ea37de531cbccda501a",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "522b730c62c53a1981604fd73524697fd347830d",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "58e3c5289ad230a7e24ae4b0c7b43f5ee6e32136",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "09f447accc2570751e7d17f0dc0788b40d3edade",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
},
{
"lessThan": "c4740e7f23ff9a8210198d8b4703259e21b9f69d",
"status": "affected",
"version": "f1496dee9cbde2a62821f4441dadb0d3360f60c3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/l2cap_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp\n\nl2cap_le_connect_rsp() obtains a channel via\n__l2cap_get_chan_by_ident() but neither holds a reference nor uses\nl2cap_chan_hold_unless_zero() before locking and operating on it.\nA concurrent l2cap_chan_del() triggered by a remote disconnect can\nfree the channel between the lookup and l2cap_chan_lock(), causing\na use-after-free.\n\nThe BR/EDR counterpart l2cap_connect_rsp() and the sibling handler\nl2cap_le_command_rej() already use l2cap_chan_hold_unless_zero()\nto safely hold a reference, but l2cap_le_connect_rsp() was left\nunprotected.\n\nFix by adding l2cap_chan_hold_unless_zero() after the ident lookup\nand l2cap_chan_put() on the exit path, consistent with other L2CAP\nresponse handlers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The vulnerability is reached when the kernel processes an incoming L2CAP LE Connect Response over an established Bluetooth LE ACL link (HCI ACL receive \u2192 l2cap_recv_acldata \u2192 l2cap_le_sig_channel \u2192 l2cap_le_connect_rsp), requiring radio proximity rather than routable Internet access.\nAC:L - The remote Bluetooth peer controls both sides of the race by sending L2CAP_LE_CONN_RSP while concurrently triggering channel teardown via L2CAP DISCONN_REQ or HCI disconnect, freeing the channel between __l2cap_get_chan_by_ident() and l2cap_chan_lock() without attacker-uncontrollable timing.\nPR:N - No local privileges on the victim are required; exploitation needs only a nearby attacker with an established LE Bluetooth connection sending crafted L2CAP signaling packets, with no root, CAP_NET_ADMIN, or user-namespace capability on the target host.\nUI:N - On phones, wearables, automotive, and IoT deployments, paired or background Bluetooth clients routinely auto-initiate L2CAP credit-based connections without per-attack user confirmation once an LE link is up, enabling trigger of the pending outgoing connect path.\nS:U - Impact is confined to kernel memory and privileges on the Bluetooth-connected host; there is no VM guest-to-host escape, sandbox breakout, or IOMMU/DMA boundary crossing, so security scope remains unchanged per kernel CVSS guidance.\nC:H - Use-after-free of heap-allocated struct l2cap_chan allows attacker-controlled reuse of freed slab memory, enabling disclosure of kernel heap contents and pointers through corrupted channel fields accessed after premature free.\nI:H - The UAF window writes channel state (ident, dcid, mtu, credits) and invokes chan-\u003eops function pointers (ready, teardown) on freed memory, enabling heap spraying and control-flow hijack for arbitrary kernel code execution.\nA:H - Operating on a freed l2cap_chan can immediately kernel-oops or panic from corrupt mutex/state during lock/unlock and callback dispatch; UAF in softirq L2CAP processing inherently threatens full system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:32.306Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/15d6c2367217a6a20b1abae9f38ded716bf620f1"
},
{
"url": "https://git.kernel.org/stable/c/1818180fe12d6cec7a437bc59cde8efdf6b10250"
},
{
"url": "https://git.kernel.org/stable/c/8325eafb38c3dee5af329266393763693d17381b"
},
{
"url": "https://git.kernel.org/stable/c/fd4c1e301bdec60a40728ea37de531cbccda501a"
},
{
"url": "https://git.kernel.org/stable/c/522b730c62c53a1981604fd73524697fd347830d"
},
{
"url": "https://git.kernel.org/stable/c/58e3c5289ad230a7e24ae4b0c7b43f5ee6e32136"
},
{
"url": "https://git.kernel.org/stable/c/09f447accc2570751e7d17f0dc0788b40d3edade"
},
{
"url": "https://git.kernel.org/stable/c/c4740e7f23ff9a8210198d8b4703259e21b9f69d"
}
],
"title": "Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74540",
"datePublished": "2026-08-15T12:27:51.522Z",
"dateReserved": "2026-08-15T05:44:03.913Z",
"dateUpdated": "2026-10-16T19:05:54.604Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74700 (GCVE-0-2026-74700)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers
Another challenge with unlocked filters.
There is a short window in tc_new_tfilter where a tcf_proto can be found
and briefly referenced by a totally unrelated, unlocked classifier's request
and cause a race.
Feng created a poc which created this race with two threads, one creating a
u32 filter and other a flower filter in the same chain/prio:
1. Both threads enter tc_new_tfilter, both find the chain empty, both
drop filter_chain_lock
2. u32 finishes tcf_proto_create("u32") first, calls
tcf_chain_tp_insert_unique() -> inserts u32_tp into the chain
3. flower finishes tcf_proto_create("flower") later, calls
tcf_chain_tp_insert_unique() -> tcf_chain_tp_find() now sees u32_tp
already there, takes a reference on it, destroys flower's own tp_new
and returns u32_tp to the caller.
Flower then hits the kind mismatch check (because it requested for kind
"flower" but tp->ops->kind is "u32") and goes through the errout path
which calls tcf_proto_put() on u32_tp. If the u32 thread has already
gone through its own errout (its change() call failed on the PoC's empty
options) and dropped its create and insert refs, flower's put is the
last one and drops u32_tp's refcnt to zero.
At this point tp->ops->destroy() runs in a context that never took
rtnl_lock. When that happens, it might cause a UAF like the following
(illustrated by the PoC):
[ +0.000710] BUG: KASAN: slab-use-after-free in u32_init (net/sched/cls_u32.c:393)
[ +0.000281] Read of size 8 at addr ffff888120022f00 by task poc_feng_xue/524
Call Trace:
u32_init (net/sched/cls_u32.c:393)
tc_new_tfilter (net/sched/cls_api.c:2378)
Allocated by task 526:
u32_init (net/sched/cls_u32.c:378)
tc_new_tfilter (net/sched/cls_api.c:2378)
Freed by task 522:
kfree
u32_destroy (net/sched/cls_u32.c:662)
tcf_proto_destroy (net/sched/cls_api.c:446)
tcf_proto_put (net/sched/cls_api.c:459)
tc_new_tfilter (net/sched/cls_api.c:2459)
Fix this by having tcf_proto_destroy() take rtnl_lock around
tp->ops->destroy() for locked classifiers whenever rtnl is not held.
To explain why I used a temp variable "not_lockless" I'd like to point to a
semi-related note on rtnl_held vs TCF_PROTO_OPS_DOIT_UNLOCKED (adding here
for future cleanup if deemed necessary):
The rtnl_held parameter and the TCF_PROTO_OPS_DOIT_UNLOCKED flag are
redundant sources of truth for whether rtnl_lock is held. Among the nine
classifier destroy(..rtnl_held..) callbacks, only flower consults the
rtnl_held parameter which it propagates to tc_setup_cb_destroy()
and tc_setup_cb_call(). The other eight (u32, flow, bpf, cgroup, route, basic,
fw, mall) ignore it entirely;-> those that call tc_setup_cb_destroy()
(u32, bpf, mall) hardcode true always instead of forwarding the parameter.
A future cleanup should remove the rtnl_held parameter from the destroy callback
signature entirely and have callers rely solely on their knowledge whether
they are running in an unlocked context.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74700",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:51.766758Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:10.132Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/cls_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "34e77d8e3570f9df3952496ddb402833695662fd",
"status": "affected",
"version": "12db03b65c2b90752e4c37666977fd4a1b5f5824",
"versionType": "git"
},
{
"lessThan": "b648c8a56531aeabd1c14f6b5cf1891e269b3756",
"status": "affected",
"version": "12db03b65c2b90752e4c37666977fd4a1b5f5824",
"versionType": "git"
},
{
"lessThan": "d6222af7274f08e7a1848131dc30319993d8f377",
"status": "affected",
"version": "12db03b65c2b90752e4c37666977fd4a1b5f5824",
"versionType": "git"
},
{
"lessThan": "a81f9c44d87fb59d99fce72e29e02cab3a49a1c3",
"status": "affected",
"version": "12db03b65c2b90752e4c37666977fd4a1b5f5824",
"versionType": "git"
},
{
"lessThan": "a347304b2ca1a5377d5bd2d8a72e4b4f12afe648",
"status": "affected",
"version": "12db03b65c2b90752e4c37666977fd4a1b5f5824",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/cls_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers\n\nAnother challenge with unlocked filters.\nThere is a short window in tc_new_tfilter where a tcf_proto can be found\nand briefly referenced by a totally unrelated, unlocked classifier\u0027s request\nand cause a race.\n\nFeng created a poc which created this race with two threads, one creating a\nu32 filter and other a flower filter in the same chain/prio:\n\n1. Both threads enter tc_new_tfilter, both find the chain empty, both\n drop filter_chain_lock\n2. u32 finishes tcf_proto_create(\"u32\") first, calls\n tcf_chain_tp_insert_unique() -\u003e inserts u32_tp into the chain\n3. flower finishes tcf_proto_create(\"flower\") later, calls\n tcf_chain_tp_insert_unique() -\u003e tcf_chain_tp_find() now sees u32_tp\n already there, takes a reference on it, destroys flower\u0027s own tp_new\n and returns u32_tp to the caller.\n\nFlower then hits the kind mismatch check (because it requested for kind\n\"flower\" but tp-\u003eops-\u003ekind is \"u32\") and goes through the errout path\nwhich calls tcf_proto_put() on u32_tp. If the u32 thread has already\ngone through its own errout (its change() call failed on the PoC\u0027s empty\noptions) and dropped its create and insert refs, flower\u0027s put is the\nlast one and drops u32_tp\u0027s refcnt to zero.\n\nAt this point tp-\u003eops-\u003edestroy() runs in a context that never took\nrtnl_lock. When that happens, it might cause a UAF like the following\n(illustrated by the PoC):\n\n[ +0.000710] BUG: KASAN: slab-use-after-free in u32_init (net/sched/cls_u32.c:393)\n[ +0.000281] Read of size 8 at addr ffff888120022f00 by task poc_feng_xue/524\n\n Call Trace:\n u32_init (net/sched/cls_u32.c:393)\n tc_new_tfilter (net/sched/cls_api.c:2378)\n\n Allocated by task 526:\n u32_init (net/sched/cls_u32.c:378)\n tc_new_tfilter (net/sched/cls_api.c:2378)\n\n Freed by task 522:\n kfree\n u32_destroy (net/sched/cls_u32.c:662)\n tcf_proto_destroy (net/sched/cls_api.c:446)\n tcf_proto_put (net/sched/cls_api.c:459)\n tc_new_tfilter (net/sched/cls_api.c:2459)\n\nFix this by having tcf_proto_destroy() take rtnl_lock around\ntp-\u003eops-\u003edestroy() for locked classifiers whenever rtnl is not held.\n\nTo explain why I used a temp variable \"not_lockless\" I\u0027d like to point to a\nsemi-related note on rtnl_held vs TCF_PROTO_OPS_DOIT_UNLOCKED (adding here\nfor future cleanup if deemed necessary):\nThe rtnl_held parameter and the TCF_PROTO_OPS_DOIT_UNLOCKED flag are\nredundant sources of truth for whether rtnl_lock is held. Among the nine\nclassifier destroy(..rtnl_held..) callbacks, only flower consults the\nrtnl_held parameter which it propagates to tc_setup_cb_destroy()\nand tc_setup_cb_call(). The other eight (u32, flow, bpf, cgroup, route, basic,\nfw, mall) ignore it entirely;-\u003e those that call tc_setup_cb_destroy()\n(u32, bpf, mall) hardcode true always instead of forwarding the parameter.\n\nA future cleanup should remove the rtnl_held parameter from the destroy callback\nsignature entirely and have callers rely solely on their knowledge whether\nthey are running in an unlocked context."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via RTM_NEWTFILTER/rtnetlink from a local process (tc filter add); tc_new_tfilter() is a TC configuration path, not packet receive or any remote network service, and per kernel CNA guidance tc/netlink qdisc/classifier operations are Local.\nAC:L - A PoC triggers this with two attacker-controlled threads concurrently creating u32 and flower filters on the same chain/priority; the attacker creates and wins the tcf_chain_tp_insert_unique race without uncontrollable victim timing or memory layout.\nPR:L - rtnetlink enforces CAP_NET_ADMIN via netlink_net_capable() before tc_new_tfilter(); this capability is routinely obtainable in an unprivileged-created user+network namespace (unshare -Urn) and is commonly delegated to containers with NET_ADMIN.\nUI:N - Exploitation requires only the attacker\u0027s own concurrent tc/netlink operations to race u32 and flower filter creation; no victim action such as opening a file or mounting a filesystem is needed.\nS:U - The UAF corrupts kernel TC classifier state (tc_u_common hash/hlist) during cls_api teardown on the same host kernel; this is standard kernel memory corruption, not a VM escape or cross-security-authority boundary.\nC:H - Concurrent u32_destroy() without rtnl_lock frees tp_c while another thread\u0027s u32_init() reads tp_c-\u003ehlist (cls_u32.c:393); KASAN-confirmed slab use-after-free that per kernel guidance enables arbitrary kernel memory disclosure.\nI:H - The race frees and reuses tc_u_common/tcf_proto structures without rtnl synchronization, corrupting shared classifier hash lists; UAF on these heap objects enables heap spraying and arbitrary kernel write or code execution primitives.\nA:H - The PoC triggers KASAN slab-use-after-free in u32_init(); UAF on core net/sched classifier teardown can cause kernel oops/panic/hang, denying system availability until reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:42.546Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/34e77d8e3570f9df3952496ddb402833695662fd"
},
{
"url": "https://git.kernel.org/stable/c/b648c8a56531aeabd1c14f6b5cf1891e269b3756"
},
{
"url": "https://git.kernel.org/stable/c/d6222af7274f08e7a1848131dc30319993d8f377"
},
{
"url": "https://git.kernel.org/stable/c/a81f9c44d87fb59d99fce72e29e02cab3a49a1c3"
},
{
"url": "https://git.kernel.org/stable/c/a347304b2ca1a5377d5bd2d8a72e4b4f12afe648"
}
],
"title": "net/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74700",
"datePublished": "2026-08-22T15:33:00.933Z",
"dateReserved": "2026-08-15T05:44:03.927Z",
"dateUpdated": "2026-10-16T19:16:10.132Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74406 (GCVE-0-2026-74406)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive().
udp_tunnel_sock_release() could set sk->sk_user_data to NULL
while vxlan_gro_prepare_receive() is running.
Let's check if rcu_dereference_sk_user_data() is NULL after
skb_gro_remcsum_init().
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5602c48cf87562c2f95b831d690631935e834295 Version: 5602c48cf87562c2f95b831d690631935e834295 Version: 5602c48cf87562c2f95b831d690631935e834295 Version: 5602c48cf87562c2f95b831d690631935e834295 Version: 5602c48cf87562c2f95b831d690631935e834295 Version: 5602c48cf87562c2f95b831d690631935e834295 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74406",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:52.328317Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:43.336Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9c58c729d32e7cea5772cc44929c6cd61e5a31cd",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
},
{
"lessThan": "f79c80f173fda9545b220c1f094b65fc06c252d0",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
},
{
"lessThan": "08f40c0d23c67c3aa4224c3311e134999c721fb4",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
},
{
"lessThan": "4a8cde6f7281ea2c4c290f9ad9923b3631defceb",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
},
{
"lessThan": "ef44dac2a37f86eeae6b88ed10a6d60b35387dfd",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
},
{
"lessThan": "30a45c0bffdd62350261e2f2689fdba426a33578",
"status": "affected",
"version": "5602c48cf87562c2f95b831d690631935e834295",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive().\n\nudp_tunnel_sock_release() could set sk-\u003esk_user_data to NULL\nwhile vxlan_gro_prepare_receive() is running.\n\nLet\u0027s check if rcu_dereference_sk_user_data() is NULL after\nskb_gro_remcsum_init()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in vxlan_gro_prepare_receive() on the UDP GRO receive path; remote VXLAN/UDP packets reach it via inet_gro_receive\u2192udp4_gro_receive\u2192udp_tunnel_gro_rcv\u2192vxlan_gro_receive during NAPI processing on internet/cloud overlay endpoints.\nAC:L - An attacker can reliably trigger the race by flooding VXLAN GRO packets while concurrently tearing down the VXLAN device (e.g., via CAP_NET_ADMIN in a user namespace); repeated attempts during orchestrated interface churn also make the timing window attacker-driven rather than purely environmental.\nPR:N - Exploitation requires only the ability to send crafted VXLAN UDP traffic to a listening tunnel port; no target credentials or local account are needed, and concurrent teardown can occur from normal administrative or automation activity rather than attacker-held privileges.\nUI:N - No victim interaction is required beyond the host already running a VXLAN interface; the attacker triggers the fault purely by sending network packets timed against interface teardown.\nS:U - Impact is a kernel fault in networking softirq context on the same host; it does not cross VM, container, or IOMMU security boundaries into another authority.\nC:H - The race can leave a stale vxlan_sock pointer after udp_tunnel_sock_release() frees sk_user_data; dereferencing vs-\u003eflags is a use-after-free read that can expose kernel heap contents and is treated as arbitrary read potential under conservative scoring.\nI:H - Use-after-free on the vxlan_sock object during GRO teardown can corrupt heap metadata or adjacent objects and be leveraged for control-flow hijacking, not merely a benign NULL check failure.\nA:H - A successful trigger causes a kernel NULL pointer dereference/oops in NAPI/softirq context (documented crash at vxlan_gro_prepare_receive), typically crashing or hanging the host and denying all services."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:49.365Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9c58c729d32e7cea5772cc44929c6cd61e5a31cd"
},
{
"url": "https://git.kernel.org/stable/c/f79c80f173fda9545b220c1f094b65fc06c252d0"
},
{
"url": "https://git.kernel.org/stable/c/08f40c0d23c67c3aa4224c3311e134999c721fb4"
},
{
"url": "https://git.kernel.org/stable/c/4a8cde6f7281ea2c4c290f9ad9923b3631defceb"
},
{
"url": "https://git.kernel.org/stable/c/ef44dac2a37f86eeae6b88ed10a6d60b35387dfd"
},
{
"url": "https://git.kernel.org/stable/c/30a45c0bffdd62350261e2f2689fdba426a33578"
}
],
"title": "vxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive().",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74406",
"datePublished": "2026-08-15T05:59:15.385Z",
"dateReserved": "2026-08-15T05:44:03.892Z",
"dateUpdated": "2026-10-16T19:05:43.336Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80725 (GCVE-0-2026-80725)
Vulnerability from cvelistv5
Published
2026-08-29 06:39
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: gro: properly validate BIG TCP aggregation criteria
When GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB),
BIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP
(with sufficient MAC header room to insert the temporary HBH jumbo header).
However, commit b1a78b9b9886 ("net: add support for ipv4 big tcp")
loosened the check in skb_gro_receive(), leading to several issues:
1. skb_gro_receive() checked skb_headroom(p) instead of the actual space
before the MAC header (p->mac_header). Because skb_headroom(p) includes
mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check
with p->mac_header < 8 bytes. When ipv6_gro_complete() inserts the
temporary HBH jumbo header, the memmove() starts before skb->head,
causing an out-of-bounds write and wrapping skb->mac_header.
2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q /
ETH_P_8021AD) to aggregate beyond 64KB because
p->protocol != ETH_P_IPV6 was true.
3. It checked p->encapsulation instead of NAPI_GRO_CB(skb)->encap_mark,
allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate
beyond 64KB.
Fix skb_gro_receive() to strictly enforce:
- NAPI_GRO_CB(skb)->proto == IPPROTO_TCP
- Not encapsulated (!NAPI_GRO_CB(skb)->encap_mark && !p->encapsulation)
- Protocol must be either ETH_P_IP or ETH_P_IPV6
- If ETH_P_IPV6, p->mac_header must be at least
sizeof(struct hop_jumbo_hdr)
Returning -E2BIG from skb_gro_receive() ensures that packets which cannot
become BIG TCP are cleanly flushed at <= 64KB and delivered intact without
dropping.
This issue does not exist in mainline (7.0+) because the subsystem was
rewritten in commit 81be30c1f5f2 ("net/ipv6: Drop HBH for BIG TCP on RX
side"), making this fix relevant only for older stable branches like
6.18.y.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80725",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:06.422941Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:35.734Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/gro.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "37a5dcd6837fc2afc44a7bc3ed8af4e983783d46",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "e907bf694ed55bdfe421be99dba35751a655df25",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "03cb8cc2961f5f781d12e903782cb3815ed84b1c",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "3ce832e2bd431d0c12ba525ed73ad8fbc4191da5",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "81be30c1f5f2bffda1f04c0efd0746af10b9643a",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/gro.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: gro: properly validate BIG TCP aggregation criteria\n\nWhen GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB),\nBIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP\n(with sufficient MAC header room to insert the temporary HBH jumbo header).\n\nHowever, commit b1a78b9b9886 (\"net: add support for ipv4 big tcp\")\nloosened the check in skb_gro_receive(), leading to several issues:\n\n1. skb_gro_receive() checked skb_headroom(p) instead of the actual space\n before the MAC header (p-\u003emac_header). Because skb_headroom(p) includes\n mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check\n with p-\u003emac_header \u003c 8 bytes. When ipv6_gro_complete() inserts the\n temporary HBH jumbo header, the memmove() starts before skb-\u003ehead,\n causing an out-of-bounds write and wrapping skb-\u003emac_header.\n2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q /\n ETH_P_8021AD) to aggregate beyond 64KB because\n p-\u003eprotocol != ETH_P_IPV6 was true.\n3. It checked p-\u003eencapsulation instead of NAPI_GRO_CB(skb)-\u003eencap_mark,\n allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate\n beyond 64KB.\n\nFix skb_gro_receive() to strictly enforce:\n- NAPI_GRO_CB(skb)-\u003eproto == IPPROTO_TCP\n- Not encapsulated (!NAPI_GRO_CB(skb)-\u003eencap_mark \u0026\u0026 !p-\u003eencapsulation)\n- Protocol must be either ETH_P_IP or ETH_P_IPV6\n- If ETH_P_IPV6, p-\u003emac_header must be at least\n sizeof(struct hop_jumbo_hdr)\n\nReturning -E2BIG from skb_gro_receive() ensures that packets which cannot\nbecome BIG TCP are cleanly flushed at \u003c= 64KB and delivered intact without\ndropping.\n\nThis issue does not exist in mainline (7.0+) because the subsystem was\nrewritten in commit 81be30c1f5f2 (\"net/ipv6: Drop HBH for BIG TCP on RX\nside\"), making this fix relevant only for older stable branches like\n6.18.y."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in skb_gro_receive() on the netdev NAPI GRO ingress path (netif_receive_skb\u2192napi_gro_receive\u2192dev_gro_receive\u2192tcp/ipv6 gro handlers); remote peers can deliver crafted in-flow TCP streams to internet-facing interfaces without local access.\nAC:L - On Big TCP deployments with gro_max_size\u003e64KB, an attacker reliably coalesces past GRO_LEGACY_MAX_SIZE by sending many same-flow TCP segments; AF_PACKET injection also gives deterministic header layout control without races or victim-dependent heap layout.\nPR:N - RX GRO runs in softirq on all received packets before socket authentication; no target credentials or capabilities are required. Elevated gro_max_size is an admin tuning prerequisite of the Big TCP server class, not an attacker privilege.\nUI:N - Packet reception and GRO aggregation are automatic kernel network-stack processing triggered solely by attacker-sent traffic; no victim mount, file open, or other interaction is required.\nS:U - Impact is kernel skb/heap memory corruption within the host kernel security authority; exploitation does not cross VM, container, or IOMMU boundaries that would warrant scope-changed scoring.\nC:H - When undersized mac_header room passes the broken skb_headroom check, ipv6_gro_complete() memmove() for the temporary HBH jumbo header writes before skb-\u003ehead, corrupting adjacent kernel memory and enabling information disclosure from attacker-influenced out-of-bounds writes.\nI:H - The same invalid BIG TCP aggregation drives attacker-controlled memmove/header corruption that wraps skb-\u003emac_header, yielding an out-of-bounds write primitive suitable for heap object corruption, control-flow hijacking, and local privilege escalation.\nA:H - The defective memmove or invalid \u003e64KB aggregation on disallowed VLAN, encapsulated, or malformed flows can oops or panic the kernel during GRO completion, and a remote attacker can trigger this repeatedly to deny service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T04:58:15.396Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/37a5dcd6837fc2afc44a7bc3ed8af4e983783d46"
},
{
"url": "https://git.kernel.org/stable/c/e907bf694ed55bdfe421be99dba35751a655df25"
},
{
"url": "https://git.kernel.org/stable/c/03cb8cc2961f5f781d12e903782cb3815ed84b1c"
},
{
"url": "https://git.kernel.org/stable/c/3ce832e2bd431d0c12ba525ed73ad8fbc4191da5"
},
{
"url": "https://git.kernel.org/stable/c/81be30c1f5f2bffda1f04c0efd0746af10b9643a"
}
],
"title": "net: gro: properly validate BIG TCP aggregation criteria",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80725",
"datePublished": "2026-08-29T06:39:35.212Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-10-16T19:26:35.734Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80737 (GCVE-0-2026-80737)
Vulnerability from cvelistv5
Published
2026-09-03 08:21
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
serial: amba-pl011: synchronize DMA teardown
dmaengine_terminate_all() does not wait for a running callback, so the TX
callback can still touch the TX buffer after it is freed. The RX poll
timer reads the RX buffers without the port lock.
Switch to dmaengine_terminate_sync() and delete the RX timer before
freeing the buffers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80737",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:17.321670Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:36.178Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/amba-pl011.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a38fae9d212e2d3ed5e9ec0ef773f8c0a27fb76e",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "44bd0ecc3444882d08ecfbc2b2418d2f463d3186",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "f70c9d4fba46463a5b1c7b3ee9ee3b40c90dac03",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "c8c8e895f65fbf71ea6224e27cf8dab91b776e0d",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "9f6989e477f03a4721d34bb4b09b17accd40283e",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "5974cb66681eac367107b05924744d7e3b49d41c",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "fdfb46c387241b4eddd36d746793764413285913",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "440915499231e9db1c361aa45bb702e8fd3b4a32",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/amba-pl011.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.39"
},
{
"lessThan": "2.6.39",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.39",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: amba-pl011: synchronize DMA teardown\n\ndmaengine_terminate_all() does not wait for a running callback, so the TX\ncallback can still touch the TX buffer after it is freed. The RX poll\ntimer reads the RX buffers without the port lock.\n\nSwitch to dmaengine_terminate_sync() and delete the RX timer before\nfreeing the buffers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Local tty device access via open/write/close on /dev/ttyAMA* or similar; PL011 DMA teardown runs in pl011_shutdown from uart_close/hangup/suspend, not via network protocols.\nAC:L - Attacker with tty fd controls DMA load (large writes for TX DMA, active RX) and teardown timing via close/hangup; they can repeatedly race shutdown against in-flight DMA callbacks/timers without uncontrollable conditions.\nPR:L - Requires open/write/close on the UART tty node, typically granted via dialout group on embedded ARM systems with PL011 DMA; not via user namespaces alone, but no root required on auxiliary serial ports.\nUI:N - Attacker performs all steps themselves (open port, queue DMA traffic, close); no separate victim action needed.\nS:U - Kernel heap/coherent-buffer UAF during UART driver teardown affects only local kernel resources; no VM escape, IOMMU bypass, or cross-security-authority boundary.\nC:H - TX DMA callback or RX poll timer can access freed TX kmalloc buffer or RX dma coherent pages, yielding UAF read primitives over kernel memory and potential information disclosure.\nI:H - Post-free access via pl011_dma_tx_refill/dma_map or pl011_dma_rx_poll writing into tty flip buffers enables heap corruption and potential kernel code execution or privilege escalation.\nA:H - UAF during DMA teardown can provoke kernel oops/panic from concurrent access to freed buffers, and repeated triggering can deny UART service or crash the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T04:58:22.813Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a38fae9d212e2d3ed5e9ec0ef773f8c0a27fb76e"
},
{
"url": "https://git.kernel.org/stable/c/44bd0ecc3444882d08ecfbc2b2418d2f463d3186"
},
{
"url": "https://git.kernel.org/stable/c/f70c9d4fba46463a5b1c7b3ee9ee3b40c90dac03"
},
{
"url": "https://git.kernel.org/stable/c/c8c8e895f65fbf71ea6224e27cf8dab91b776e0d"
},
{
"url": "https://git.kernel.org/stable/c/9f6989e477f03a4721d34bb4b09b17accd40283e"
},
{
"url": "https://git.kernel.org/stable/c/5974cb66681eac367107b05924744d7e3b49d41c"
},
{
"url": "https://git.kernel.org/stable/c/fdfb46c387241b4eddd36d746793764413285913"
},
{
"url": "https://git.kernel.org/stable/c/440915499231e9db1c361aa45bb702e8fd3b4a32"
}
],
"title": "serial: amba-pl011: synchronize DMA teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80737",
"datePublished": "2026-09-03T08:21:52.539Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-10-16T19:26:36.178Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89485 (GCVE-0-2026-89485)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
lockd: pin next file across nlm_inspect_file lock-drop
nlm_traverse_files() pins the current file with f_count++ across
a mutex_unlock for nlm_inspect_file(), but nothing pins the saved
next pointer. A concurrent nlm_release_file() can kfree the next
file during the unlock window, and the iterator dereferences freed
memory on the next loop step.
Pin both current and next before the lock-drop. Advance by
swapping the pinned cursors at the end of each iteration so next
is always held alive across the unlock.
Always call nlm_file_release() after dropping the iteration pin,
regardless of whether the file matched the predicate. Use
nlm_file_inuse(), which does a live walk of the inode lock list,
rather than the cached f_locks field, so skipped files that never
ran nlm_inspect_file() are evaluated correctly.
Because every file in a hash bucket is now pinned and released,
files skipped by the is_failover_file predicate that have no
locks, blocks, shares, or external references are deleted during
traversal. The old code never evaluated skipped files for
cleanup. The new behavior is intentional: such files are stale
and should not persist in the table.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 Version: 01df9c5e918ae5559f2d96da0143f8bfbb9e6171 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e3c413f789eaf0170275c7eba523ead73d963f30",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "08a455f87b14c7ff22ae3fdadda62a796a3a5572",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "550c19222c7132c888e23c9d89079ba1c9bc4cca",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "350087f231c11efcd288c310707c40eab63ca583",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "c24bdb7df2f34bdc38ca8a73796f5acb40f1830c",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "41f0a6d31615fcae261bf28a0aa50050dc93a401",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "e999a88133654c6dfc68487fb49da5f20dfa2d4f",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
},
{
"lessThan": "526c49cff3f72c3ec74752016380c7567040581b",
"status": "affected",
"version": "01df9c5e918ae5559f2d96da0143f8bfbb9e6171",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.18"
},
{
"lessThan": "2.6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlockd: pin next file across nlm_inspect_file lock-drop\n\nnlm_traverse_files() pins the current file with f_count++ across\na mutex_unlock for nlm_inspect_file(), but nothing pins the saved\nnext pointer. A concurrent nlm_release_file() can kfree the next\nfile during the unlock window, and the iterator dereferences freed\nmemory on the next loop step.\n\nPin both current and next before the lock-drop. Advance by\nswapping the pinned cursors at the end of each iteration so next\nis always held alive across the unlock.\n\nAlways call nlm_file_release() after dropping the iteration pin,\nregardless of whether the file matched the predicate. Use\nnlm_file_inuse(), which does a live walk of the inode lock list,\nrather than the cached f_locks field, so skipped files that never\nran nlm_inspect_file() are evaluated correctly.\n\nBecause every file in a hash bucket is now pinned and released,\nfiles skipped by the is_failover_file predicate that have no\nlocks, blocks, shares, or external references are deleted during\ntraversal. The old code never evaluated skipped files for\ncleanup. The new behavior is intentional: such files are stale\nand should not persist in the table."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - lockd is the in-kernel NLM RPC server on TCP/UDP, reached by remote NFSv3 clients. nlm_traverse_files() runs on NLMPROC_FREE_ALL, and nlm_release_file() runs from LOCK/UNLOCK/TEST and from rpciod NLM_GRANTED_MSG completion, so the UAF is triggered by network NLM traffic.\nAC:L - A remote NFS client can populate nlm_files via LOCK, send FREE_ALL to drop nlm_file_mutex inside nlm_traverse_files(), and concurrently complete in-flight GRANTED_MSG callbacks so rpciod\u0027s nlmsvc_grant_release() calls nlm_release_file() on the unpinned next object; the attacker drives both sides of the race.\nPR:N - lockd_authenticate() accepts RPC_AUTH_NULL and RPC_AUTH_UNIX. FREE_ALL is not a privileged-port callback, and nlm_fopen() opens files with NFSD_MAY_BYPASS_GSS|NFSD_MAY_NLM, so no host account or capability is required.\nUI:N - Exploitation uses only attacker-sent NLM RPCs (LOCK/FREE_ALL and grant-callback completion); no victim user or administrator action is required.\nS:U - The use-after-free is in the host kernel\u0027s lockd file table and impacts that same kernel; it does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - The iterator dereferences a kfree\u0027d struct nlm_file (list pointers, f_file[], f_count). This UAF lets an attacker reuse the slab object and obtain a kernel read primitive, so confidentiality impact is high.\nI:H - The same nlm_file UAF is a kernel heap free of list nodes, mutex state, and struct file pointers, which can be sprayed for an arbitrary write and control-flow hijack, so integrity impact is high.\nA:H - Walking the freed nlm_file in nlm_traverse_files() causes a kernel oops/panic (KASAN slab-use-after-free), so availability impact is high."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:35.868Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e3c413f789eaf0170275c7eba523ead73d963f30"
},
{
"url": "https://git.kernel.org/stable/c/08a455f87b14c7ff22ae3fdadda62a796a3a5572"
},
{
"url": "https://git.kernel.org/stable/c/550c19222c7132c888e23c9d89079ba1c9bc4cca"
},
{
"url": "https://git.kernel.org/stable/c/350087f231c11efcd288c310707c40eab63ca583"
},
{
"url": "https://git.kernel.org/stable/c/c24bdb7df2f34bdc38ca8a73796f5acb40f1830c"
},
{
"url": "https://git.kernel.org/stable/c/41f0a6d31615fcae261bf28a0aa50050dc93a401"
},
{
"url": "https://git.kernel.org/stable/c/e999a88133654c6dfc68487fb49da5f20dfa2d4f"
},
{
"url": "https://git.kernel.org/stable/c/526c49cff3f72c3ec74752016380c7567040581b"
}
],
"title": "lockd: pin next file across nlm_inspect_file lock-drop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89485",
"datePublished": "2026-09-11T19:43:39.403Z",
"dateReserved": "2026-09-11T19:38:34.712Z",
"dateUpdated": "2026-10-19T08:47:35.868Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89527 (GCVE-0-2026-89527)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Use svc_xprt_put to free listener on create failure
svc_rdma_create() calls kfree(cma_xprt) when
svc_rdma_create_listen_id() fails. svc_xprt_init() has already
acquired a net namespace reference via get_net_track(); kfree
bypasses svc_xprt_free() which releases it.
Replace the kfree() with svc_xprt_put() so the kref_init birth
reference drops to zero and svc_xprt_free() dispatches
svc_rdma_free() to clean up properly. sc_cm_id is still NULL
at that point; the preceding patch added the necessary NULL
guard in svc_rdma_free().
svc_xprt_free() also drops the module reference via
module_put(), but the caller _svc_xprt_create() does the same
on xpo_create failure, double-putting the single
try_module_get() it acquired. Take a compensating
__module_get() before the svc_xprt_put() to keep the count
balanced, matching the convention in svc_rdma_accept()'s error
path.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2e35ec558b8cece9399a50141ecaeadbdb8768dc",
"status": "affected",
"version": "4fb8518bdac8e85f6580ea3f586adf396cd472bc",
"versionType": "git"
},
{
"lessThan": "ee70d690b5544b736706a9a5796aafb634013f54",
"status": "affected",
"version": "4fb8518bdac8e85f6580ea3f586adf396cd472bc",
"versionType": "git"
},
{
"lessThan": "e68380710fc970e07610b2f42594575ad35fdb1c",
"status": "affected",
"version": "4fb8518bdac8e85f6580ea3f586adf396cd472bc",
"versionType": "git"
},
{
"lessThan": "ac1dd6002f758ab7dd3e737757e5a1bb1c0b38d6",
"status": "affected",
"version": "4fb8518bdac8e85f6580ea3f586adf396cd472bc",
"versionType": "git"
},
{
"lessThan": "e346ef7bcb137f50c49f969330ab7dcf64ea1654",
"status": "affected",
"version": "4fb8518bdac8e85f6580ea3f586adf396cd472bc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.37"
},
{
"lessThan": "2.6.37",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.56",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.56",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.37",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Use svc_xprt_put to free listener on create failure\n\nsvc_rdma_create() calls kfree(cma_xprt) when\nsvc_rdma_create_listen_id() fails. svc_xprt_init() has already\nacquired a net namespace reference via get_net_track(); kfree\nbypasses svc_xprt_free() which releases it.\n\nReplace the kfree() with svc_xprt_put() so the kref_init birth\nreference drops to zero and svc_xprt_free() dispatches\nsvc_rdma_free() to clean up properly. sc_cm_id is still NULL\nat that point; the preceding patch added the necessary NULL\nguard in svc_rdma_free().\n\nsvc_xprt_free() also drops the module reference via\nmodule_put(), but the caller _svc_xprt_create() does the same\non xpo_create failure, double-putting the single\ntry_module_get() it acquired. Take a compensating\n__module_get() before the svc_xprt_put() to keep the count\nbalanced, matching the convention in svc_rdma_accept()\u0027s error\npath."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:40.431Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2e35ec558b8cece9399a50141ecaeadbdb8768dc"
},
{
"url": "https://git.kernel.org/stable/c/ee70d690b5544b736706a9a5796aafb634013f54"
},
{
"url": "https://git.kernel.org/stable/c/e68380710fc970e07610b2f42594575ad35fdb1c"
},
{
"url": "https://git.kernel.org/stable/c/ac1dd6002f758ab7dd3e737757e5a1bb1c0b38d6"
},
{
"url": "https://git.kernel.org/stable/c/e346ef7bcb137f50c49f969330ab7dcf64ea1654"
}
],
"title": "svcrdma: Use svc_xprt_put to free listener on create failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89527",
"datePublished": "2026-09-11T19:44:07.785Z",
"dateReserved": "2026-09-11T19:38:34.719Z",
"dateUpdated": "2026-10-21T12:47:40.431Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90198 (GCVE-0-2026-90198)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 08:59
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: core: Fix use-after-free in snd_card_do_free()
A use-after-free was detected in snd_card_do_free() when a sound card
managed by devres is unbound while a user-space application still holds an
open file descriptor.
For managed cards, the memory is allocated using devres_alloc(), and its
release function is set to __snd_card_release(), which calls
snd_card_free(). When the device is unbound, the unbind thread calls
snd_card_free(), which drops a reference to the card's device. If the user
thread still has an open file descriptor, the reference count does not
reach zero, and the unbind thread blocks on wait_for_completion(&released).
When the user thread closes the file descriptor, it drops the final
reference, invoking the device release callback release_card_device(),
which calls snd_card_do_free(). snd_card_do_free() performs cleanup and
calls complete(card->release_completion). This wakes up the unbind thread,
which returns from snd_card_free() and __snd_card_release(). The devres
core then immediately frees the memory block containing the snd_card
structure.
Meanwhile, the user thread continues execution in snd_card_do_free() and
evaluates `if (!card->managed)`. It reads the `managed` boolean from the
snd_card structure that was just freed by the unbind thread, triggering a
KASAN use-after-free.
Fix this by caching the value of card->managed in a local variable before
calling complete(). This ensures that the card pointer is not dereferenced
after the unbind thread has been woken up and potentially freed the card.
BUG: KASAN: use-after-free in snd_card_do_free sound/core/init.c:604
[inline]
BUG: KASAN: use-after-free in release_card_device+0x1ab/0x1b0
sound/core/init.c:153
Read of size 1 at addr ffff8881912ec909 by task syz-executor130/5857
Call Trace:
<TASK>
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
print_address_description+0x55/0x1e0 mm/kasan/report.c:378
print_report+0x58/0x70 mm/kasan/report.c:482
kasan_report+0x117/0x150 mm/kasan/report.c:595
snd_card_do_free sound/core/init.c:604 [inline]
release_card_device+0x1ab/0x1b0 sound/core/init.c:153
device_release+0xc4/0x1f0 drivers/base/core.c:-1
kobject_cleanup lib/kobject.c:689 [inline]
kobject_release lib/kobject.c:720 [inline]
kref_put include/linux/kref.h:65 [inline]
kobject_put+0x222/0x550 lib/kobject.c:737
snd_card_file_remove+0x331/0x390 sound/core/init.c:1125
snd_pcm_release+0x12c/0x160 sound/core/pcm_native.c:2986
__fput+0x418/0xa50 fs/file_table.c:512
fput_close_sync+0x11f/0x240 fs/file_table.c:617
__do_sys_close fs/open.c:1511 [inline]
__se_sys_close fs/open.c:1496 [inline]
__x64_sys_close+0x7e/0x110 fs/open.c:1496
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 Version: e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d3d67f680dbc23a5e5e3d3ecfdbf700465809877",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "09b27dd01b98480334c10bf6fb8d41d5fb063a4b",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "03c5dabc8f16bc212a5b26d2425c03a55e55a86d",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "6da22efb5cf490b06ffbca32b10fc8af7654fee0",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "a561012868ae37c28f61fdf658bf6f251bc0e8e8",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "7d9b5e86775fa97a487da08b9aa76e1674bf8868",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
},
{
"lessThan": "5ae1a690c522fea2900ff56c8c2ace7b059f5e04",
"status": "affected",
"version": "e8ad415b7a55cb9a9fbfc04696518d5ea0b609b3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: core: Fix use-after-free in snd_card_do_free()\n\nA use-after-free was detected in snd_card_do_free() when a sound card\nmanaged by devres is unbound while a user-space application still holds an\nopen file descriptor.\n\nFor managed cards, the memory is allocated using devres_alloc(), and its\nrelease function is set to __snd_card_release(), which calls\nsnd_card_free(). When the device is unbound, the unbind thread calls\nsnd_card_free(), which drops a reference to the card\u0027s device. If the user\nthread still has an open file descriptor, the reference count does not\nreach zero, and the unbind thread blocks on wait_for_completion(\u0026released).\n\nWhen the user thread closes the file descriptor, it drops the final\nreference, invoking the device release callback release_card_device(),\nwhich calls snd_card_do_free(). snd_card_do_free() performs cleanup and\ncalls complete(card-\u003erelease_completion). This wakes up the unbind thread,\nwhich returns from snd_card_free() and __snd_card_release(). The devres\ncore then immediately frees the memory block containing the snd_card\nstructure.\n\nMeanwhile, the user thread continues execution in snd_card_do_free() and\nevaluates `if (!card-\u003emanaged)`. It reads the `managed` boolean from the\nsnd_card structure that was just freed by the unbind thread, triggering a\nKASAN use-after-free.\n\nFix this by caching the value of card-\u003emanaged in a local variable before\ncalling complete(). This ensures that the card pointer is not dereferenced\nafter the unbind thread has been woken up and potentially freed the card.\n\nBUG: KASAN: use-after-free in snd_card_do_free sound/core/init.c:604\n[inline]\nBUG: KASAN: use-after-free in release_card_device+0x1ab/0x1b0\nsound/core/init.c:153\nRead of size 1 at addr ffff8881912ec909 by task syz-executor130/5857\n\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120\n print_address_description+0x55/0x1e0 mm/kasan/report.c:378\n print_report+0x58/0x70 mm/kasan/report.c:482\n kasan_report+0x117/0x150 mm/kasan/report.c:595\n snd_card_do_free sound/core/init.c:604 [inline]\n release_card_device+0x1ab/0x1b0 sound/core/init.c:153\n device_release+0xc4/0x1f0 drivers/base/core.c:-1\n kobject_cleanup lib/kobject.c:689 [inline]\n kobject_release lib/kobject.c:720 [inline]\n kref_put include/linux/kref.h:65 [inline]\n kobject_put+0x222/0x550 lib/kobject.c:737\n snd_card_file_remove+0x331/0x390 sound/core/init.c:1125\n snd_pcm_release+0x12c/0x160 sound/core/pcm_native.c:2986\n __fput+0x418/0xa50 fs/file_table.c:512\n fput_close_sync+0x11f/0x240 fs/file_table.c:617\n __do_sys_close fs/open.c:1511 [inline]\n __se_sys_close fs/open.c:1496 [inline]\n __x64_sys_close+0x7e/0x110 fs/open.c:1496\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n \u003c/TASK\u003e"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:59:34.497Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d3d67f680dbc23a5e5e3d3ecfdbf700465809877"
},
{
"url": "https://git.kernel.org/stable/c/09b27dd01b98480334c10bf6fb8d41d5fb063a4b"
},
{
"url": "https://git.kernel.org/stable/c/03c5dabc8f16bc212a5b26d2425c03a55e55a86d"
},
{
"url": "https://git.kernel.org/stable/c/6da22efb5cf490b06ffbca32b10fc8af7654fee0"
},
{
"url": "https://git.kernel.org/stable/c/a561012868ae37c28f61fdf658bf6f251bc0e8e8"
},
{
"url": "https://git.kernel.org/stable/c/7d9b5e86775fa97a487da08b9aa76e1674bf8868"
},
{
"url": "https://git.kernel.org/stable/c/5ae1a690c522fea2900ff56c8c2ace7b059f5e04"
}
],
"title": "ALSA: core: Fix use-after-free in snd_card_do_free()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90198",
"datePublished": "2026-09-17T16:07:16.923Z",
"dateReserved": "2026-09-11T19:38:34.792Z",
"dateUpdated": "2026-10-19T08:59:34.497Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90388 (GCVE-0-2026-90388)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:02
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/dma: Check atomic pool allocation result directly
The non-blocking, non-coherent allocation path uses dma_alloc_from_pool(),
which returns the allocated page and fills cpu_addr only on success.
Do not rely on cpu_addr to detect allocation failure in this path. Check
the returned page directly before using it for the IOMMU mapping.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 9420139f516d7fbc248ce17f35275cb005ed98ea Version: 47184b9ddf184cc9a77cf441943a0fe9b7afa575 Version: 5.8.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/dma-iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ac9cd0a669b8be5d178dbd471b0d68039dac58b5",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "db46cb9da83a507d86d2bb080bdb09c865da3d0a",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "d56c3f955b21e5764c1497e295a5b5d0b3a40470",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "06dffc96693083dda3412311406e558cf27f1574",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "a4ace31d732b657d774e31fb444c0c27d42c78e5",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "fb0b39287ba894dbdfac2901c51788b63f5c2291",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "8c486293ddd0af60991408149fc3e964ea888dc4",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"lessThan": "af95a0ebc0a0db0762be75f51eadf770bad01aaa",
"status": "affected",
"version": "9420139f516d7fbc248ce17f35275cb005ed98ea",
"versionType": "git"
},
{
"status": "affected",
"version": "47184b9ddf184cc9a77cf441943a0fe9b7afa575",
"versionType": "git"
},
{
"lessThan": "5.9",
"status": "affected",
"version": "5.8.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/dma-iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/dma: Check atomic pool allocation result directly\n\nThe non-blocking, non-coherent allocation path uses dma_alloc_from_pool(),\nwhich returns the allocated page and fills cpu_addr only on success.\n\nDo not rely on cpu_addr to detect allocation failure in this path. Check\nthe returned page directly before using it for the IOMMU mapping."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - iommu_dma_alloc() is reached from dma_alloc_attrs() on GFP_ATOMIC dma_alloc_coherent(); local entry points are VIDIOC_STREAMON scheduling mxc_jpeg_device_run()\u2192mxc_jpeg_alloc(), and USBDEVFS_SUBMITURB in proc_do_submiturb()\u2192usb_submit_urb(GFP_ATOMIC)\u2192dma_pool_alloc()\u2192pool_alloc_page(). No remote protocol message supplies the failed allocation.\nAC:L - The attacker drives dma_alloc_from_pool() failure by consuming the atomic gen_pool (repeated GFP_ATOMIC coherent allocs or a size larger than gen_pool_avail) then issues that ioctl; __dma_alloc_from_pool() does not store cpu_addr on failure, so a non-NULL leftover skips the old !cpu_addr check with no victim-side race.\nPR:L - mxc_jpeg_open() and proc_do_submiturb() have no capable() check; an unprivileged local user who can open the JPEG /dev/videoN or a usbfs device node reaches iommu_dma_alloc() without init-namespace root.\nUI:N - The attacker itself issues VIDIOC_QBUF/VIDIOC_STREAMON on its video fd or USBDEVFS_SUBMITURB on its usbfs fd; no separate user must mount, confirm, or plug a device.\nS:U - The leftover cpu_addr is used as a host kernel VA and page_to_phys(NULL) is mapped only in this device\u0027s iommu_dma domain via __iommu_dma_map(); that is in-kernel corruption, not a KVM/Xen escape or an extra translation into another VM\u0027s memory.\nC:H - iommu_dma_alloc() returns the uninitialized cpu_addr as the coherent buffer; later loads of that object (mxc_jpeg_config_dec_desc()/print_descriptor_info on slot_data.desc, or USB TD completion from a dma_pool block carved out of the wild page) disclose kernel memory through the leftover pointer.\nI:H - Callers store through that pointer: mxc_jpeg_config_dec_desc() writes desc-\u003eimgsize/stm_ctrl into jpeg-\u003eslot_data.desc, and pool_initialise_page() writes dma_block.next_block into page-\u003evaddr from the failed dma_alloc_from_pool(), a kernel write primitive.\nA:H - page_to_phys(NULL) followed by iommu_map() in __iommu_dma_map(), or a store/load through an unmapped leftover cpu_addr in mxc_jpeg_config_dec_desc() or pool_initialise_page(), oopses or panics the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:02:51.717Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ac9cd0a669b8be5d178dbd471b0d68039dac58b5"
},
{
"url": "https://git.kernel.org/stable/c/db46cb9da83a507d86d2bb080bdb09c865da3d0a"
},
{
"url": "https://git.kernel.org/stable/c/d56c3f955b21e5764c1497e295a5b5d0b3a40470"
},
{
"url": "https://git.kernel.org/stable/c/06dffc96693083dda3412311406e558cf27f1574"
},
{
"url": "https://git.kernel.org/stable/c/a4ace31d732b657d774e31fb444c0c27d42c78e5"
},
{
"url": "https://git.kernel.org/stable/c/fb0b39287ba894dbdfac2901c51788b63f5c2291"
},
{
"url": "https://git.kernel.org/stable/c/8c486293ddd0af60991408149fc3e964ea888dc4"
},
{
"url": "https://git.kernel.org/stable/c/af95a0ebc0a0db0762be75f51eadf770bad01aaa"
}
],
"title": "iommu/dma: Check atomic pool allocation result directly",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90388",
"datePublished": "2026-09-17T16:09:23.140Z",
"dateReserved": "2026-09-11T19:38:34.810Z",
"dateUpdated": "2026-10-19T09:02:51.717Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89784 (GCVE-0-2026-89784)
Vulnerability from cvelistv5
Published
2026-09-16 08:48
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6
rpcb_register_inet4() and rpcb_register_inet6() store the result of
rpc_sockaddr2uaddr() into map->r_addr without checking it for NULL.
rpc_sockaddr2uaddr() returns NULL when its final kstrdup() fails, and
the unchecked NULL is then carried into the synchronous RPCBPROC_SET
encode path: rpcb_register_call() -> rpc_call_sync() ->
rpcb_enc_getaddr() -> encode_rpcb_string(), whose first statement is
strlen(string), dereferencing NULL and oopsing the kernel.
The crash reproduces under failslab on v6.12; with KASAN the NULL
dereference surfaces as a fault on the shadow of address zero:
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000000 [#1] PREEMPT SMP KASAN
RIP: 0010:strlen (lib/string.c:409)
Call Trace:
encode_rpcb_string (net/sunrpc/rpcb_clnt.c:890)
rpcb_enc_getaddr (net/sunrpc/rpcb_clnt.c:910)
rpcauth_wrap_req_encode (net/sunrpc/auth.c:745)
call_encode (net/sunrpc/clnt.c:1966)
__rpc_execute (net/sunrpc/sched.c:952)
rpc_run_task (net/sunrpc/clnt.c:1243)
rpc_call_sync (net/sunrpc/clnt.c:1272)
rpcb_v4_register (net/sunrpc/rpcb_clnt.c:500)
svc_generic_rpcbind_set
nfsd_rpcbind_set
svc_register
svc_setup_socket
svc_addsock
write_ports
nfsctl_transaction_write
vfs_write
The crash is reachable when an in-kernel RPC service (nfsd, lockd,
nfs-callback) registers with the local rpcbind under enough memory
pressure for the small GFP_KERNEL kstrdup() in rpc_sockaddr2uaddr() to
fail. The asynchronous getport path already handles this exact failure
mode by returning -ENOMEM; only the two register helpers omit the check.
Mirror that handling: bail out with -ENOMEM when rpc_sockaddr2uaddr()
returns NULL, before the address is fed into the encoder.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 Version: d77385f23830ee6c400569bac8b37e6eb3b7d360 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/rpcb_clnt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04441b792ec40eb66349b5fab34b6a2090b5b2dd",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "5a51c49ddb37b883566874aecc66bc5a2e617a96",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "4a6095de8cb1858e05bdf70b3e7d6d7645c25041",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "12bf3e0182ccdaf3b412756a756d3944a7dacaa9",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "4e01022974355732e748ec8ebc97c558cb624ffe",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "cda4aacfb0bbf5c0f90fd0b42c72c749635d1368",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "eb476289c12cc22c8766f8a84eeb7ab46c4e8fb6",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
},
{
"lessThan": "fd22370226a0d8109045d0831fd5aaadee921693",
"status": "affected",
"version": "d77385f23830ee6c400569bac8b37e6eb3b7d360",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/rpcb_clnt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6\n\nrpcb_register_inet4() and rpcb_register_inet6() store the result of\nrpc_sockaddr2uaddr() into map-\u003er_addr without checking it for NULL.\nrpc_sockaddr2uaddr() returns NULL when its final kstrdup() fails, and\nthe unchecked NULL is then carried into the synchronous RPCBPROC_SET\nencode path: rpcb_register_call() -\u003e rpc_call_sync() -\u003e\nrpcb_enc_getaddr() -\u003e encode_rpcb_string(), whose first statement is\nstrlen(string), dereferencing NULL and oopsing the kernel.\n\nThe crash reproduces under failslab on v6.12; with KASAN the NULL\ndereference surfaces as a fault on the shadow of address zero:\n\n Oops: general protection fault, probably for non-canonical address\n 0xdffffc0000000000 [#1] PREEMPT SMP KASAN\n RIP: 0010:strlen (lib/string.c:409)\n Call Trace:\n encode_rpcb_string (net/sunrpc/rpcb_clnt.c:890)\n rpcb_enc_getaddr (net/sunrpc/rpcb_clnt.c:910)\n rpcauth_wrap_req_encode (net/sunrpc/auth.c:745)\n call_encode (net/sunrpc/clnt.c:1966)\n __rpc_execute (net/sunrpc/sched.c:952)\n rpc_run_task (net/sunrpc/clnt.c:1243)\n rpc_call_sync (net/sunrpc/clnt.c:1272)\n rpcb_v4_register (net/sunrpc/rpcb_clnt.c:500)\n svc_generic_rpcbind_set\n nfsd_rpcbind_set\n svc_register\n svc_setup_socket\n svc_addsock\n write_ports\n nfsctl_transaction_write\n vfs_write\n\nThe crash is reachable when an in-kernel RPC service (nfsd, lockd,\nnfs-callback) registers with the local rpcbind under enough memory\npressure for the small GFP_KERNEL kstrdup() in rpc_sockaddr2uaddr() to\nfail. The asynchronous getport path already handles this exact failure\nmode by returning -ENOMEM; only the two register helpers omit the check.\n\nMirror that handling: bail out with -ENOMEM when rpc_sockaddr2uaddr()\nreturns NULL, before the address is fed into the encoder."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:36.983Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04441b792ec40eb66349b5fab34b6a2090b5b2dd"
},
{
"url": "https://git.kernel.org/stable/c/5a51c49ddb37b883566874aecc66bc5a2e617a96"
},
{
"url": "https://git.kernel.org/stable/c/4a6095de8cb1858e05bdf70b3e7d6d7645c25041"
},
{
"url": "https://git.kernel.org/stable/c/12bf3e0182ccdaf3b412756a756d3944a7dacaa9"
},
{
"url": "https://git.kernel.org/stable/c/4e01022974355732e748ec8ebc97c558cb624ffe"
},
{
"url": "https://git.kernel.org/stable/c/cda4aacfb0bbf5c0f90fd0b42c72c749635d1368"
},
{
"url": "https://git.kernel.org/stable/c/eb476289c12cc22c8766f8a84eeb7ab46c4e8fb6"
},
{
"url": "https://git.kernel.org/stable/c/fd22370226a0d8109045d0831fd5aaadee921693"
}
],
"title": "SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89784",
"datePublished": "2026-09-16T08:48:22.404Z",
"dateReserved": "2026-09-11T19:38:34.766Z",
"dateUpdated": "2026-10-19T08:52:36.983Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72243 (GCVE-0-2026-72243)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-10-16 18:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
selinux: check connect-related permissions on TCP Fast Open
Similar to Landlock, SELinux was not updated when TCP Fast Open
support was introduced to ensure connect-related permissions are
checked when using TCP Fast Open. Update its socket_sendmsg() hook to
call selinux_socket_connect() when MSG_FASTOPEN is passed.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cf60af03ca4e71134206809ea892e49b92a88896 Version: cf60af03ca4e71134206809ea892e49b92a88896 Version: cf60af03ca4e71134206809ea892e49b92a88896 Version: cf60af03ca4e71134206809ea892e49b92a88896 Version: cf60af03ca4e71134206809ea892e49b92a88896 Version: cf60af03ca4e71134206809ea892e49b92a88896 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72243",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:44:53.438037Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:45:04.616Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/selinux/hooks.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "11406d0d7e11b4e525bb2ace2c70107031d058da",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
},
{
"lessThan": "e507633bf76bccf1a6af27771fb0d6e2862b7eac",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
},
{
"lessThan": "d028bc080a0dcd6a7f8e1ae1bd32dda696505ba3",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
},
{
"lessThan": "fc633a598206d4f23af782db7c0b5f3a82751d2c",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
},
{
"lessThan": "646ebbc5f2ff9147d084e1213143f091026a611c",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
},
{
"lessThan": "44c74d27d1b9aaa99fa8a83640c1223575262b80",
"status": "affected",
"version": "cf60af03ca4e71134206809ea892e49b92a88896",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/selinux/hooks.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nselinux: check connect-related permissions on TCP Fast Open\n\nSimilar to Landlock, SELinux was not updated when TCP Fast Open\nsupport was introduced to ensure connect-related permissions are\nchecked when using TCP Fast Open. Update its socket_sendmsg() hook to\ncall selinux_socket_connect() when MSG_FASTOPEN is passed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a confined local process to invoke sendmsg(2)/sendto(2) with MSG_FASTOPEN; the vulnerable selinux_socket_sendmsg() LSM hook runs on the syscall path before TCP fast-open performs its implicit connect.\nAC:L - A confined task with SOCKET__WRITE can reliably trigger the bypass with one sendmsg/sendto using MSG_FASTOPEN and a destination address; TFO client is enabled by default (sysctl_tcp_fastopen=TFO_CLIENT_ENABLE) and no race or special victim state is needed.\nPR:L - The attacker must be an unprivileged process in a SELinux domain that grants socket write but denies connect/name_connect (e.g., confined Android apps, container workloads, hardened service domains); no real root or init-namespace privileges are required.\nUI:N - No victim interaction is required; the confined attacker process directly issues the bypassing syscall without needing another user or administrator to perform any action.\nS:C - Successful exploitation crosses the SELinux MAC confinement boundary, allowing a sandboxed domain to establish outbound TCP/MPTCP connections that connect(2) and name_connect policy would have blocked, escaping the intended network policy scope.\nC:H - Bypassing connect and name_connect mediation lets a confined process open TCP/MPTCP sessions to SELinux-forbidden destinations and read arbitrary response data from those services (internal APIs, metadata endpoints, databases), constituting unauthorized information disclosure.\nI:H - The bypass enables unauthorized outbound connection establishment and transmission of arbitrary application data (including SYN-cookie payload) to hosts and ports explicitly denied by SELinux connect/name_connect rules, violating integrity of the confinement policy.\nA:N - This is a pure SELinux LSM policy-bypass flaw with no kernel memory corruption, panic, oops, hang, or resource exhaustion; exploitation does not impact system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-18T06:56:32.099Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/11406d0d7e11b4e525bb2ace2c70107031d058da"
},
{
"url": "https://git.kernel.org/stable/c/e507633bf76bccf1a6af27771fb0d6e2862b7eac"
},
{
"url": "https://git.kernel.org/stable/c/d028bc080a0dcd6a7f8e1ae1bd32dda696505ba3"
},
{
"url": "https://git.kernel.org/stable/c/fc633a598206d4f23af782db7c0b5f3a82751d2c"
},
{
"url": "https://git.kernel.org/stable/c/646ebbc5f2ff9147d084e1213143f091026a611c"
},
{
"url": "https://git.kernel.org/stable/c/44c74d27d1b9aaa99fa8a83640c1223575262b80"
}
],
"title": "selinux: check connect-related permissions on TCP Fast Open",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72243",
"datePublished": "2026-08-15T05:54:31.117Z",
"dateReserved": "2026-08-09T03:40:39.914Z",
"dateUpdated": "2026-10-16T18:45:04.616Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74555 (GCVE-0-2026-74555)
Vulnerability from cvelistv5
Published
2026-08-15 12:28
Modified
2026-08-19 16:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race
Commit fbefe22811c3 ("scsi: libsas: Don't always drain event workqueue
for HA resume") introduced sas_resume_ha_no_sync() to avoid a deadlock:
the PHYE_RESUME_TIMEOUT handler, running on the HA event workqueue,
calls sas_deform_port() -> sas_destruct_devices(), which removes SCSI
devices and waits for the host to become runtime-active. But the host
cannot resume until sas_resume_ha() -> sas_drain_work() returns, and the
drain is blocked on that very handler.
However skipping the drain reintroduces a race: hisi_sas returns from
resume before all PHY UP work and libsas discovery work finish. The
controller may then autosuspend while disks are still waking up. The
disks issue IO to a suspended controller, the IO fails, and the disks
get disabled.
Fix the deadlock at its source by moving the PHYE_RESUME_TIMEOUT
notification to after sas_drain_work(). By then the host resume is about
to complete, so device removal through device_link no longer blocks on
the resume and the cycle is broken.
With the deadlock gone, restore sas_resume_ha() (the draining variant)
in hisi_sas and remove sas_resume_ha_no_sync().
The reorder is safe for the other libsas consumers (isci, pm8001,
aic94xx, mvsas). During suspend, sas_suspend_devices() calls
sas_notify_lldd_dev_gone() for each device, which sets dev->lldd_dev to
NULL. When scsi_unblock_requests re-enables I/O in resume, any I/O to a
timed-out phy's disk is immediately rejected by the LLDD before reaching
hardware: isci returns SAS_DEVICE_UNKNOWN (mapped to DID_BAD_TARGET),
and pm8001 returns SAS_PHY_DOWN (mapped to DID_NO_CONNECT). Both
complete directly via scsi_done() without entering SCSI EH. This is
identical in both the old and new ordering since lldd_dev_gone runs
during suspend, before resume. The reorder only affects when the
PHYE_RESUME_TIMEOUT handler runs (synchronized by sas_drain_work()
vs. asynchronous after resume returns), not whether I/O can reach the
device. aic94xx and mvsas do not register any PM ops and never reach
this code path.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fbefe22811c3140a686e407e114789ebf328a9a2 Version: fbefe22811c3140a686e407e114789ebf328a9a2 Version: fbefe22811c3140a686e407e114789ebf328a9a2 Version: fbefe22811c3140a686e407e114789ebf328a9a2 Version: fbefe22811c3140a686e407e114789ebf328a9a2 Version: fbefe22811c3140a686e407e114789ebf328a9a2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/hisi_sas/hisi_sas_v3_hw.c",
"drivers/scsi/libsas/sas_init.c",
"include/scsi/libsas.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "09357f067122e2e28ec52e27013a1660a1571618",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
},
{
"lessThan": "e50a6523a603594a6d92cdecfe11997d639410a3",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
},
{
"lessThan": "c391b5899dd46485a5893696c12ae3e95a3a7325",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
},
{
"lessThan": "9e24b47ef81d43b3fb1b14294f09991640c79fcc",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
},
{
"lessThan": "b9c44a14062093e9fc2d6bddc696cfceadb482d7",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
},
{
"lessThan": "3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845",
"status": "affected",
"version": "fbefe22811c3140a686e407e114789ebf328a9a2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/hisi_sas/hisi_sas_v3_hw.c",
"drivers/scsi/libsas/sas_init.c",
"include/scsi/libsas.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race\n\nCommit fbefe22811c3 (\"scsi: libsas: Don\u0027t always drain event workqueue\nfor HA resume\") introduced sas_resume_ha_no_sync() to avoid a deadlock:\nthe PHYE_RESUME_TIMEOUT handler, running on the HA event workqueue,\ncalls sas_deform_port() -\u003e sas_destruct_devices(), which removes SCSI\ndevices and waits for the host to become runtime-active. But the host\ncannot resume until sas_resume_ha() -\u003e sas_drain_work() returns, and the\ndrain is blocked on that very handler.\n\nHowever skipping the drain reintroduces a race: hisi_sas returns from\nresume before all PHY UP work and libsas discovery work finish. The\ncontroller may then autosuspend while disks are still waking up. The\ndisks issue IO to a suspended controller, the IO fails, and the disks\nget disabled.\n\nFix the deadlock at its source by moving the PHYE_RESUME_TIMEOUT\nnotification to after sas_drain_work(). By then the host resume is about\nto complete, so device removal through device_link no longer blocks on\nthe resume and the cycle is broken.\n\nWith the deadlock gone, restore sas_resume_ha() (the draining variant)\nin hisi_sas and remove sas_resume_ha_no_sync().\n\nThe reorder is safe for the other libsas consumers (isci, pm8001,\naic94xx, mvsas). During suspend, sas_suspend_devices() calls\nsas_notify_lldd_dev_gone() for each device, which sets dev-\u003elldd_dev to\nNULL. When scsi_unblock_requests re-enables I/O in resume, any I/O to a\ntimed-out phy\u0027s disk is immediately rejected by the LLDD before reaching\nhardware: isci returns SAS_DEVICE_UNKNOWN (mapped to DID_BAD_TARGET),\nand pm8001 returns SAS_PHY_DOWN (mapped to DID_NO_CONNECT). Both\ncomplete directly via scsi_done() without entering SCSI EH. This is\nidentical in both the old and new ordering since lldd_dev_gone runs\nduring suspend, before resume. The reorder only affects when the\nPHYE_RESUME_TIMEOUT handler runs (synchronized by sas_drain_work()\nvs. asynchronous after resume returns), not whether I/O can reach the\ndevice. aic94xx and mvsas do not register any PM ops and never reach\nthis code path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:54.912Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/09357f067122e2e28ec52e27013a1660a1571618"
},
{
"url": "https://git.kernel.org/stable/c/e50a6523a603594a6d92cdecfe11997d639410a3"
},
{
"url": "https://git.kernel.org/stable/c/c391b5899dd46485a5893696c12ae3e95a3a7325"
},
{
"url": "https://git.kernel.org/stable/c/9e24b47ef81d43b3fb1b14294f09991640c79fcc"
},
{
"url": "https://git.kernel.org/stable/c/b9c44a14062093e9fc2d6bddc696cfceadb482d7"
},
{
"url": "https://git.kernel.org/stable/c/3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845"
}
],
"title": "scsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74555",
"datePublished": "2026-08-15T12:28:00.729Z",
"dateReserved": "2026-08-15T05:44:03.916Z",
"dateUpdated": "2026-08-19T16:38:54.912Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72085 (GCVE-0-2026-72085)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: xen: scsiback: Free unsubmitted command instead of double-putting it
scsiback_get_pend_req() obtains a command tag and returns a vscsibk_pend
whose embedded se_cmd has only been memset to 0, so its cmd_kref is 0;
the se_cmd is initialised (kref_init() via target_init_cmd()) only
later, in scsiback_cmd_exec(), on the successful VSCSIIF_ACT_SCSI_CDB
path. The two error paths in scsiback_do_cmd_fn() taken before the
command is submitted -- a failed scsiback_gnttab_data_map() and an
unknown ring_req.act -- call
transport_generic_free_cmd(&pending_req->se_cmd, 0), which kref_put()s a
refcount of 0. That underflows it ("refcount_t: underflow;
use-after-free") and, as the release function is not run, leaks the
command tag.
Impact: a pvSCSI guest can leak every command tag of a LUN's session,
stopping the LUN, by submitting requests with a bad grant reference or
an unknown request type; under panic_on_warn the refcount underflow
panics the host.
Add a helper that just returns the tag with target_free_tag() and sends
the error response. It frees the tag while the v2p reference still pins
the session, and snapshots the response fields beforehand because
freeing the tag can let another ring reuse the pending_req slot.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72085",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:51:44.450406Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:27.216Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/xen/xen-scsiback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9c0f6894982b1f13bda220707497b25ac9c95bdb",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "a13b789497a7fdd27d4d63f5c69d23db706ef0fe",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "fa588f28401102652068c4cc75e135507f4b5106",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "fcd64d4d97af5d9736f31040f8ed8cd4c17e4c45",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "f1516c56ac540da1769f264c3cfefe4499548a5d",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "1e97c404e44991fb087c38ccd7414f2d326f9b74",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "ca978f8a93d4d36841839bf2847d29b88c2591d6",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/xen/xen-scsiback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: xen: scsiback: Free unsubmitted command instead of double-putting it\n\nscsiback_get_pend_req() obtains a command tag and returns a vscsibk_pend\nwhose embedded se_cmd has only been memset to 0, so its cmd_kref is 0;\nthe se_cmd is initialised (kref_init() via target_init_cmd()) only\nlater, in scsiback_cmd_exec(), on the successful VSCSIIF_ACT_SCSI_CDB\npath. The two error paths in scsiback_do_cmd_fn() taken before the\ncommand is submitted -- a failed scsiback_gnttab_data_map() and an\nunknown ring_req.act -- call\ntransport_generic_free_cmd(\u0026pending_req-\u003ese_cmd, 0), which kref_put()s a\nrefcount of 0. That underflows it (\"refcount_t: underflow;\nuse-after-free\") and, as the release function is not run, leaks the\ncommand tag.\n\nImpact: a pvSCSI guest can leak every command tag of a LUN\u0027s session,\nstopping the LUN, by submitting requests with a bad grant reference or\nan unknown request type; under panic_on_warn the refcount underflow\npanics the host.\n\nAdd a helper that just returns the tag with target_free_tag() and sends\nthe error response. It frees the tag while the v2p reference still pins\nthe session, and snapshots the response fields beforehand because\nfreeing the tag can let another ring reuse the pending_req slot."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - A malicious Xen pvSCSI guest reaches scsiback_do_cmd_fn() by posting vscsiif_request entries on the shared ring and notifying the dom0/driver-domain backend via event channel; this is a hypervisor-mediated local interface, not a routable network or physical bus path.\nAC:L - The guest fully controls ring_req.act and grant references and can deterministically trigger the two pre-submit error paths (unknown act or failed scsiback_gnttab_data_map) on every attempt with no race, timing window, or other condition outside attacker control.\nPR:N - Exploitation requires only a compromised or malicious Xen guest that has been granted a pvSCSI device with a mapped LUN; no dom0 account, capability, or init-namespace privilege is needed\u2014only tenant VM control in the standard Xen multi-tenant threat model.\nUI:N - The guest frontend posts crafted pvSCSI ring requests autonomously; no victim user action on dom0 such as mounting storage, opening device nodes, or approving prompts is required beyond routine PV device assignment already present.\nS:C - A guest VM drives vulnerable code in the dom0/driver-domain xen-scsiback backend kernel, crossing the VM/host security boundary and impacting host kernel state, storage availability, and potentially the entire physical host.\nC:H - The buggy error paths call transport_generic_free_cmd() on an uninitialized se_cmd whose cmd_kref is zero, causing refcount underflow with kernel \"use-after-free\" warnings; per kernel CNA guidance, refcount/UAF-class defects warrant High confidentiality impact.\nI:H - Refcount underflow corrupts cmd_kref without invoking the proper release path, leaving target-core command state inconsistent; per kernel CNA guidance for UAF/refcount memory-safety bugs, this warrants High integrity impact even if primary observed effect is tag leak.\nA:H - Each trigger leaks one session command tag from the finite per-LUN pool (default 128), and exhausting all tags permanently stops the LUN; on hosts with panic_on_warn enabled the refcount underflow WARN additionally panics the host kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:07.854Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9c0f6894982b1f13bda220707497b25ac9c95bdb"
},
{
"url": "https://git.kernel.org/stable/c/a13b789497a7fdd27d4d63f5c69d23db706ef0fe"
},
{
"url": "https://git.kernel.org/stable/c/fa588f28401102652068c4cc75e135507f4b5106"
},
{
"url": "https://git.kernel.org/stable/c/fcd64d4d97af5d9736f31040f8ed8cd4c17e4c45"
},
{
"url": "https://git.kernel.org/stable/c/f1516c56ac540da1769f264c3cfefe4499548a5d"
},
{
"url": "https://git.kernel.org/stable/c/1e97c404e44991fb087c38ccd7414f2d326f9b74"
},
{
"url": "https://git.kernel.org/stable/c/ca978f8a93d4d36841839bf2847d29b88c2591d6"
}
],
"title": "scsi: xen: scsiback: Free unsubmitted command instead of double-putting it",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72085",
"datePublished": "2026-08-15T05:52:33.521Z",
"dateReserved": "2026-08-09T03:40:39.904Z",
"dateUpdated": "2026-10-19T21:19:27.216Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93160 (GCVE-0-2026-93160)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
crypto: atmel-ecc - reject hardware ECDH without a public key
The hardware ECDH path in atmel_ecdh_compute_shared_secret() uses the
private key stored in the device. However, the public key is cached only
after atmel_ecdh_set_secret() successfully generated that private key
for the current tfm.
atmel_ecdh_generate_public_key() already rejects requests when no public
key is cached. Add the same check to atmel_ecdh_compute_shared_secret()
to prevent the device from using a private key that was not generated
for the current tfm.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 Version: 11105693fa05f499532b330da65c78ff93ed4440 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/crypto/atmel-ecc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5e33791dfcc6459e402a524669093cd953d5b2df",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "33241f198287960bba5fc2251400896762650bfa",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "3ea8b780d68f02fe235c5051ce8ac4b4940b9259",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "6457162f74f45284ade2da644a4f0c54758ac0a6",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "2b40bab362d2b598f34e5ccd4694cedc3c2553d4",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "e64d6f1aae8c837cb3f0446bf44108226d7370f4",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "add28e9988902d29ea93f4869280b4a16a049ea5",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
},
{
"lessThan": "f240f9b588f4e2de89822adebf560a96b5d263ed",
"status": "affected",
"version": "11105693fa05f499532b330da65c78ff93ed4440",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/crypto/atmel-ecc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: atmel-ecc - reject hardware ECDH without a public key\n\nThe hardware ECDH path in atmel_ecdh_compute_shared_secret() uses the\nprivate key stored in the device. However, the public key is cached only\nafter atmel_ecdh_set_secret() successfully generated that private key\nfor the current tfm.\n\natmel_ecdh_generate_public_key() already rejects requests when no public\nkey is cached. Add the same check to atmel_ecdh_compute_shared_secret()\nto prevent the device from using a private key that was not generated\nfor the current tfm."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:06:32.331Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5e33791dfcc6459e402a524669093cd953d5b2df"
},
{
"url": "https://git.kernel.org/stable/c/33241f198287960bba5fc2251400896762650bfa"
},
{
"url": "https://git.kernel.org/stable/c/3ea8b780d68f02fe235c5051ce8ac4b4940b9259"
},
{
"url": "https://git.kernel.org/stable/c/6457162f74f45284ade2da644a4f0c54758ac0a6"
},
{
"url": "https://git.kernel.org/stable/c/2b40bab362d2b598f34e5ccd4694cedc3c2553d4"
},
{
"url": "https://git.kernel.org/stable/c/e64d6f1aae8c837cb3f0446bf44108226d7370f4"
},
{
"url": "https://git.kernel.org/stable/c/add28e9988902d29ea93f4869280b4a16a049ea5"
},
{
"url": "https://git.kernel.org/stable/c/f240f9b588f4e2de89822adebf560a96b5d263ed"
}
],
"title": "crypto: atmel-ecc - reject hardware ECDH without a public key",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93160",
"datePublished": "2026-09-17T16:11:54.517Z",
"dateReserved": "2026-09-17T16:02:15.089Z",
"dateUpdated": "2026-10-19T09:06:32.331Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68395 (GCVE-0-2026-68395)
Vulnerability from cvelistv5
Published
2026-08-10 12:04
Modified
2026-08-19 16:34
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered
sata_dwc_enable_interrupts() is called before platform_get_irq() and
ata_host_activate(), leaving the SATA controller's interrupt mask
enabled without a registered handler. If a later step fails (irq
request, phy init, etc.) or if the controller asserts an interrupt
during probe, the irq line may fire with no handler, causing a
spurious interrupt storm.
Move sata_dwc_enable_interrupts() after ata_host_activate() so that
interrupts are only unmasked once the handler is registered and the
core is fully initialized.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 Version: 62936009f35a6659cc3ebe0d90c754182d60da73 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/ata/sata_dwc_460ex.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "60b922442e9c208832e2699f128ef078f9f50faa",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "d031957a6284e03c709f95cb8fc6f8891d4432ba",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "8fbad29f399ba11c3b070ef5baf1c4b3e13ed838",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "fbe7df5d3a3aed2456667a4825e4ff98d6df6ca4",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "23d4c50fdc0dfe3ad4f9647a3b7d486de807dcda",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "daa80b422ed920a3c0c45153020b0ad7af7fb5a5",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "5d0797d6940b8dc894f950c52f7af0b42cb55ed0",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
},
{
"lessThan": "4bbc16a353a98023e5ddfca7c1fc0e49971cf4d0",
"status": "affected",
"version": "62936009f35a6659cc3ebe0d90c754182d60da73",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/ata/sata_dwc_460ex.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.36"
},
{
"lessThan": "2.6.36",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.36",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered\n\nsata_dwc_enable_interrupts() is called before platform_get_irq() and\nata_host_activate(), leaving the SATA controller\u0027s interrupt mask\nenabled without a registered handler. If a later step fails (irq\nrequest, phy init, etc.) or if the controller asserts an interrupt\nduring probe, the irq line may fire with no handler, causing a\nspurious interrupt storm.\n\nMove sata_dwc_enable_interrupts() after ata_host_activate() so that\ninterrupts are only unmasked once the handler is registered and the\ncore is fully initialized."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:34:45.284Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/60b922442e9c208832e2699f128ef078f9f50faa"
},
{
"url": "https://git.kernel.org/stable/c/d031957a6284e03c709f95cb8fc6f8891d4432ba"
},
{
"url": "https://git.kernel.org/stable/c/8fbad29f399ba11c3b070ef5baf1c4b3e13ed838"
},
{
"url": "https://git.kernel.org/stable/c/fbe7df5d3a3aed2456667a4825e4ff98d6df6ca4"
},
{
"url": "https://git.kernel.org/stable/c/23d4c50fdc0dfe3ad4f9647a3b7d486de807dcda"
},
{
"url": "https://git.kernel.org/stable/c/daa80b422ed920a3c0c45153020b0ad7af7fb5a5"
},
{
"url": "https://git.kernel.org/stable/c/5d0797d6940b8dc894f950c52f7af0b42cb55ed0"
},
{
"url": "https://git.kernel.org/stable/c/4bbc16a353a98023e5ddfca7c1fc0e49971cf4d0"
}
],
"title": "ata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68395",
"datePublished": "2026-08-10T12:04:14.545Z",
"dateReserved": "2026-07-30T09:28:09.389Z",
"dateUpdated": "2026-08-19T16:34:45.284Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72488 (GCVE-0-2026-72488)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
soundwire: fix bug in sdw_add_element_group_count found by syzkaller
The original implementation caused an out-of-bounds memory access
in the sdw_add_element_group_count for-loop when i == num.
for (i = 0; i <= num; i++) {
if (rate == group->rates[i] && lane == group->lanes[i])
...
To fix this error, the function now checks for existing rate/lane
entries in the group(a function parameter) using a for-loop before
adding them.
No functional changes apart from this fix.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72488",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:47.454898Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:26.364Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/soundwire/generic_bandwidth_allocation.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a2275dce05e6d1cce69bf68f23ea7a63c0c54bae",
"status": "affected",
"version": "9026118f20e28f202dab34f219bbb831ffb8c4dc",
"versionType": "git"
},
{
"lessThan": "5c3ce6d3559ce57e6c3108aa9ecf7b32764188c5",
"status": "affected",
"version": "9026118f20e28f202dab34f219bbb831ffb8c4dc",
"versionType": "git"
},
{
"lessThan": "a454f61747c97e2eadaa7a35ffc1f4b1645c6a53",
"status": "affected",
"version": "9026118f20e28f202dab34f219bbb831ffb8c4dc",
"versionType": "git"
},
{
"lessThan": "e483a406a23a92d5202e8d324f206e127eef48ff",
"status": "affected",
"version": "9026118f20e28f202dab34f219bbb831ffb8c4dc",
"versionType": "git"
},
{
"lessThan": "f772ff5a0e6758fd412803c09e03ba3bca5f5878",
"status": "affected",
"version": "9026118f20e28f202dab34f219bbb831ffb8c4dc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/soundwire/generic_bandwidth_allocation.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsoundwire: fix bug in sdw_add_element_group_count found by syzkaller\n\nThe original implementation caused an out-of-bounds memory access\nin the sdw_add_element_group_count for-loop when i == num.\n\nfor (i = 0; i \u003c= num; i++) {\n if (rate == group-\u003erates[i] \u0026\u0026 lane == group-\u003elanes[i])\n ...\n\nTo fix this error, the function now checks for existing rate/lane\nentries in the group(a function parameter) using a for-loop before\nadding them.\n\nNo functional changes apart from this fix."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Vulnerable sdw_add_element_group_count is reached only via local ALSA PCM ioctl (SNDRV_PCM_IOCTL_PREPARE/HW_PARAMS) on /dev/snd/pcmC*D*, through asoc_sdw_prepare -\u003e sdw_prepare_stream -\u003e sdw_compute_params on Intel SoundWire machines; no network or adjacent-network entry point exists.\nAC:L - The off-by-one loop (i \u003c= num when num==group-\u003ecount) deterministically reads one slot past the rates/lanes arrays whenever a second distinct rate/lane group entry is added, which an attacker can trigger by preparing SoundWire streams that exercise multilane assignment or multiple active bus runtimes without races or external state.\nPR:L - Exploitation requires only the ability to open and ioctl the ALSA PCM character device (typically granted to unprivileged desktop users via the audio group or logind seat ACLs on Intel SOF/SoundWire laptops); no CAP_SYS_ADMIN, real root, or non-namespace capability is checked on this path.\nUI:N - The attacker\u0027s own process issues the PCM prepare/hw_params ioctls that drive bandwidth recomputation; no separate victim must mount filesystems, open files, or take any other action beyond the attacker already having local device access.\nS:U - The out-of-bounds access corrupts/read kernel heap memory within the SoundWire bandwidth allocator in the same kernel security domain; it does not cross VM, container, IOMMU, or sandbox boundaries.\nC:H - When i==group-\u003ecount the loop compares against group-\u003erates[i] and group-\u003elanes[i] one element beyond the allocated arrays, leaking adjacent kmalloc heap contents; per kernel guidance unbounded out-of-bounds reads in the allocator path warrant High confidentiality impact.\nI:H - Even though the immediate fault is an OOB read, the same loop guards heap-backed dynamic expansion that then writes attacker-influenced rate/lane tuples into rates[]/lanes[]; adjacent-heap corruption from the read plus controlled follow-on writes is leverageable for integrity compromise consistent with similar SoundWire CVE scoring.\nA:H - The out-of-bounds read can fault on unmapped adjacent slab memory or trip KASAN/hardened checks (as syzkaller reported), producing kernel oops/panic and aborting stream prepare, leaving audio/DSP subsystems unavailable on affected Intel SoundWire platforms."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:00.576Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a2275dce05e6d1cce69bf68f23ea7a63c0c54bae"
},
{
"url": "https://git.kernel.org/stable/c/5c3ce6d3559ce57e6c3108aa9ecf7b32764188c5"
},
{
"url": "https://git.kernel.org/stable/c/a454f61747c97e2eadaa7a35ffc1f4b1645c6a53"
},
{
"url": "https://git.kernel.org/stable/c/e483a406a23a92d5202e8d324f206e127eef48ff"
},
{
"url": "https://git.kernel.org/stable/c/f772ff5a0e6758fd412803c09e03ba3bca5f5878"
}
],
"title": "soundwire: fix bug in sdw_add_element_group_count found by syzkaller",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72488",
"datePublished": "2026-08-15T05:57:24.146Z",
"dateReserved": "2026-08-09T03:40:39.936Z",
"dateUpdated": "2026-10-21T12:45:00.576Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90307 (GCVE-0-2026-90307)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ
srp_recv_done() passes wc->byte_len to srp_process_rsp(). It passes
nothing to srp_process_cred_req() and srp_process_aer_req(), which read
fixed-size fields from the receive buffer without checking that those
fields were received.
The buffer size is max_ti_iu_len, which comes from the login response
and is not validated. A target that advertises 8 and then sends an
8-byte SRP_CRED_REQ makes the initiator read req->tag from beyond the
end of the buffer. req->tag is copied into the SRP_CRED_RSP and sent
back, so those bytes reach the target. SRP_AER_REQ behaves the same way
and also reads req->lun.
The leak is 8 bytes per response. max_ti_iu_len also decides which slab
cache the buffer comes from. With 8 the buffer is a kmalloc-8 object and
the read is entirely outside it:
BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0
Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50
which belongs to the cache kmalloc-8 of size 8
The buggy address is located 0 bytes to the right of
allocated 8-byte region [ffff888104714da0, ffff888104714da8)
Without KASAN the returned bytes are whatever is next in the slab. One
run returned ".strtab".
rsp->data[3] in srp_process_rsp() has the same problem: only
resp_data_len is checked before it is read.
Drop a request that is shorter than the structure being parsed, and
check byte_len before the tsk_mgmt read.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 Version: bb12588a38e6db85e01dceadff7bc161fc92e7d2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/srp/ib_srp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3f7fdf561f1ec3b523c39708df00bd808671668d",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "138eb2f0ef02adfe6ad126afad5b54c56b5046ee",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "0e7ba617514902501514d577647d866e670dad90",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "001adf2fe87d1ab677c014a97467bbea5153ae5f",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "fa1b33fdab3e79dce83721ead3220200a2dbec22",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
},
{
"lessThan": "961ac0f0c5e414abdd6b33fae84b311d9fde0bd0",
"status": "affected",
"version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/srp/ib_srp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.37"
},
{
"lessThan": "2.6.37",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.37",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ\n\nsrp_recv_done() passes wc-\u003ebyte_len to srp_process_rsp(). It passes\nnothing to srp_process_cred_req() and srp_process_aer_req(), which read\nfixed-size fields from the receive buffer without checking that those\nfields were received.\n\nThe buffer size is max_ti_iu_len, which comes from the login response\nand is not validated. A target that advertises 8 and then sends an\n8-byte SRP_CRED_REQ makes the initiator read req-\u003etag from beyond the\nend of the buffer. req-\u003etag is copied into the SRP_CRED_RSP and sent\nback, so those bytes reach the target. SRP_AER_REQ behaves the same way\nand also reads req-\u003elun.\n\nThe leak is 8 bytes per response. max_ti_iu_len also decides which slab\ncache the buffer comes from. With 8 the buffer is a kmalloc-8 object and\nthe read is entirely outside it:\n\n BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0\n Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50\n which belongs to the cache kmalloc-8 of size 8\n The buggy address is located 0 bytes to the right of\n allocated 8-byte region [ffff888104714da0, ffff888104714da8)\n\nWithout KASAN the returned bytes are whatever is next in the slab. One\nrun returned \".strtab\".\n\nrsp-\u003edata[3] in srp_process_rsp() has the same problem: only\nresp_data_len is checked before it is read.\n\nDrop a request that is shorter than the structure being parsed, and\ncheck byte_len before the tsk_mgmt read."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:24.980Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3f7fdf561f1ec3b523c39708df00bd808671668d"
},
{
"url": "https://git.kernel.org/stable/c/138eb2f0ef02adfe6ad126afad5b54c56b5046ee"
},
{
"url": "https://git.kernel.org/stable/c/3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7"
},
{
"url": "https://git.kernel.org/stable/c/0e7ba617514902501514d577647d866e670dad90"
},
{
"url": "https://git.kernel.org/stable/c/001adf2fe87d1ab677c014a97467bbea5153ae5f"
},
{
"url": "https://git.kernel.org/stable/c/dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd"
},
{
"url": "https://git.kernel.org/stable/c/fa1b33fdab3e79dce83721ead3220200a2dbec22"
},
{
"url": "https://git.kernel.org/stable/c/961ac0f0c5e414abdd6b33fae84b311d9fde0bd0"
}
],
"title": "RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90307",
"datePublished": "2026-09-17T16:08:29.045Z",
"dateReserved": "2026-09-11T19:38:34.800Z",
"dateUpdated": "2026-10-19T09:01:24.980Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98028 (GCVE-0-2026-98028)
Vulnerability from cvelistv5
Published
2026-09-25 10:23
Modified
2026-10-19 09:12
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
eth: nfp: drop the replaced rule from the list when reprogramming fails
nfp_net_fs_add() replaces an existing rule by deleting it from the
hardware, decrementing nn->fs.count and programming the new one. If
nfp_net_fs_add_hw() fails the old entry stays on nn->fs.list - only the
success path reaches list_replace() - so the list is one longer than
nn->fs.count, and it advertises a rule whose hardware entry has already
been torn down.
nn->fs.count is what ETHTOOL_GRXCLSRLCNT reports, so userspace then sizes
its buffer one entry short of what the GRXCLSRLALL walk wants to write.
That used to overwrite one u32 past the allocation; since the walk is
bounded it is a permanent -EMSGSIZE instead, as nothing ever resyncs the
counter.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "603b70093f729f52a37544b48679903cad834856",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "edaec279f59f801a05b751df475ed71a0a68c88a",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "552e528a7d85cbe088b2ae4f78194713975b46cf",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "108bb2142e3a12c9ad625ad662973127a113ddc6",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\neth: nfp: drop the replaced rule from the list when reprogramming fails\n\nnfp_net_fs_add() replaces an existing rule by deleting it from the\nhardware, decrementing nn-\u003efs.count and programming the new one. If\nnfp_net_fs_add_hw() fails the old entry stays on nn-\u003efs.list - only the\nsuccess path reaches list_replace() - so the list is one longer than\nnn-\u003efs.count, and it advertises a rule whose hardware entry has already\nbeen torn down.\n\nnn-\u003efs.count is what ETHTOOL_GRXCLSRLCNT reports, so userspace then sizes\nits buffer one entry short of what the GRXCLSRLALL walk wants to write.\nThat used to overwrite one u32 past the allocation; since the walk is\nbounded it is a permanent -EMSGSIZE instead, as nothing ever resyncs the\ncounter."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:33.311Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/603b70093f729f52a37544b48679903cad834856"
},
{
"url": "https://git.kernel.org/stable/c/edaec279f59f801a05b751df475ed71a0a68c88a"
},
{
"url": "https://git.kernel.org/stable/c/552e528a7d85cbe088b2ae4f78194713975b46cf"
},
{
"url": "https://git.kernel.org/stable/c/108bb2142e3a12c9ad625ad662973127a113ddc6"
}
],
"title": "eth: nfp: drop the replaced rule from the list when reprogramming fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98028",
"datePublished": "2026-09-25T10:23:45.737Z",
"dateReserved": "2026-09-25T10:19:56.070Z",
"dateUpdated": "2026-10-19T09:12:33.311Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74637 (GCVE-0-2026-74637)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Fix group leader use-after-free after sibling detach
perf_group_detach() handles leader and sibling detach differently. When the
group leader is detached, all siblings are promoted to singleton events and
their group_leader pointer is reset to themselves. When a sibling is
detached, it is removed from the leader's sibling_list, but its
group_leader pointer is left pointing at the old leader.
That is harmless when the sibling is being closed and freed immediately, as
in the DETACH_DEAD path. It is not safe when the sibling is detached but
kept alive, such as during CPU hotplug with DETACH_GROUP. In that case the
sibling is removed from the context, while its file descriptor can still
keep it alive.
A typical failing sequence is:
- A group contains leader L and sibling S.
- CPU hot-unplug detaches S with DETACH_GROUP, removing it from
L->sibling_list but leaving S->group_leader == L.
- L is later closed and freed.
- A PERF_IOC_FLAG_GROUP ioctl on S follows S->group_leader and
dereferences the freed leader.
This was reproduced by running the perf event fuzzer, CPU hotplug, and a
stress workload concurrently:
Unable to handle kernel paging request at virtual address 006b6b6b6b6b6cdb
CPU: 2 PID: 12489 Comm: perf_fuzzer 6.18.7 PREEMPT
pc : perf_ioctl+0x34c/0xc68
x20: ffffff89a3fa2c70 x8 : 6b6b6b6b6b6b6b6b
Code: 943c4a0e 340047a0 f9404a94 f9411e88 (f940b908)
Call trace:
perf_ioctl+0x34c/0xc68 (P)
__arm64_sys_ioctl+0xa0/0xf4
invoke_syscall+0x58/0xe4
el0_svc_common+0xa8/0xdc
do_el0_svc+0x1c/0x28
el0_svc+0x40/0xc0
el0t_64_sync_handler+0x68/0xdc
el0t_64_sync+0x1c4/0x1c8
The fault happened in perf_ioctl(), where perf_event_for_each() follows
the stale group_leader pointer and perf_event_for_each_child() then
dereferences the freed leader's context.
Fix the use-after-free by promoting the detached sibling to a singleton.
Also fix __event_disable() cgroup accounting and event state change.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: 8a49542c0554af7d0073aac0ee73ee65b807ef34 Version: e732ebc42aea321ee84514330eb3a675307fcc83 Version: 2.6.34.14 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74637",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:03:25.089432Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:04.262Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8f867c0e8da4c2303d91adf45acb6b1820966c27",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "8e92e03984364d93e0d5b0acd81c95eca773f034",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "f8a07021679aadfb6d63b209207ccc41f26982d1",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "80c6054a4c40a0ffad82acef9f9a0dee108d152a",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "b42948f9e0d1ea4dbd5742ce1dfc7688de5d4a35",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "a979a642402d0b1f856c7a729b4cb2d92de4cf2f",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "1e7abfeb23c12bf46f6457e4a3e1a1a300d50619",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"lessThan": "42c5ca1f0a288a52878bd72a5595b08261057438",
"status": "affected",
"version": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
"versionType": "git"
},
{
"status": "affected",
"version": "e732ebc42aea321ee84514330eb3a675307fcc83",
"versionType": "git"
},
{
"lessThan": "2.6.35",
"status": "affected",
"version": "2.6.34.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.35"
},
{
"lessThan": "2.6.35",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "2.6.34.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/core: Fix group leader use-after-free after sibling detach\n\nperf_group_detach() handles leader and sibling detach differently. When the\ngroup leader is detached, all siblings are promoted to singleton events and\ntheir group_leader pointer is reset to themselves. When a sibling is\ndetached, it is removed from the leader\u0027s sibling_list, but its\ngroup_leader pointer is left pointing at the old leader.\n\nThat is harmless when the sibling is being closed and freed immediately, as\nin the DETACH_DEAD path. It is not safe when the sibling is detached but\nkept alive, such as during CPU hotplug with DETACH_GROUP. In that case the\nsibling is removed from the context, while its file descriptor can still\nkeep it alive.\n\nA typical failing sequence is:\n\n - A group contains leader L and sibling S.\n - CPU hot-unplug detaches S with DETACH_GROUP, removing it from\n L-\u003esibling_list but leaving S-\u003egroup_leader == L.\n - L is later closed and freed.\n - A PERF_IOC_FLAG_GROUP ioctl on S follows S-\u003egroup_leader and\n dereferences the freed leader.\n\nThis was reproduced by running the perf event fuzzer, CPU hotplug, and a\nstress workload concurrently:\n\n Unable to handle kernel paging request at virtual address 006b6b6b6b6b6cdb\n CPU: 2 PID: 12489 Comm: perf_fuzzer 6.18.7 PREEMPT\n pc : perf_ioctl+0x34c/0xc68\n x20: ffffff89a3fa2c70 x8 : 6b6b6b6b6b6b6b6b\n Code: 943c4a0e 340047a0 f9404a94 f9411e88 (f940b908)\n Call trace:\n perf_ioctl+0x34c/0xc68 (P)\n __arm64_sys_ioctl+0xa0/0xf4\n invoke_syscall+0x58/0xe4\n el0_svc_common+0xa8/0xdc\n do_el0_svc+0x1c/0x28\n el0_svc+0x40/0xc0\n el0t_64_sync_handler+0x68/0xdc\n el0t_64_sync+0x1c4/0x1c8\n\nThe fault happened in perf_ioctl(), where perf_event_for_each() follows\nthe stale group_leader pointer and perf_event_for_each_child() then\ndereferences the freed leader\u0027s context.\n\nFix the use-after-free by promoting the detached sibling to a singleton.\nAlso fix __event_disable() cgroup accounting and event state change."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local perf_event_open(2), ioctl(2) on perf fds (PERF_IOC_FLAG_GROUP), close(2), and execve(2); perf_ioctl() follows the stale group_leader into freed memory. There is no network, adjacent-wireless, or physical device entry path.\nAC:L - An attacker fully controls creation of leader/sibling groups, triggering sibling DETACH_GROUP via remove_on_exec or racing CPU hot-unplug against leader close, then issuing GROUP ioctls on the surviving sibling fd. The reproducer used perf_fuzzer with concurrent hotplug, and the attacker controls both sides of the lifecycle race.\nPR:L - A basic unprivileged local user can open per-task perf event groups on their own process with exclude_kernel=1 under the default sysctl_perf_event_paranoid=2, without CAP_PERFMON or init-namespace root. security_perf_event_open(PERF_SECURITY_OPEN) and perf_check_permission() allow this self-monitoring path.\nUI:N - Exploitation requires no action from another user or administrator beyond the attacker running their own syscalls (open group, exec or wait for hotplug, close leader, ioctl sibling). No victim must mount filesystems, open files, or interact with the system.\nS:U - Impact is confined to kernel perf/core heap corruption and privilege escalation within the same host kernel security authority. This is not a VM escape, IOMMU bypass, or cross-namespace boundary change; it is standard local kernel memory corruption.\nC:H - This is a use-after-free: perf_event_for_each() and perf_event_for_each_child() dereference a freed group leader and its context (repro showed 0x6b6b6b6b6b6b6b poisoned pointers). UAF on attacker-influenceable perf_event objects enables arbitrary kernel memory disclosure via controlled reallocations.\nI:H - Freed perf_event/group_leader structures can be reallocated with attacker-controlled data, providing heap grooming primitives for arbitrary kernel writes and control-flow hijack. Memory corruption from following stale group_leader pointers is exploitable beyond a simple crash.\nA:H - The fix commit documents a reproducible kernel paging fault in perf_ioctl() (\"Unable to handle kernel paging request\"). UAF dereferences reliably cause kernel oops/panic or hang, giving full denial of service and potential system-wide unavailability on affected hosts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:51.869Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8f867c0e8da4c2303d91adf45acb6b1820966c27"
},
{
"url": "https://git.kernel.org/stable/c/8e92e03984364d93e0d5b0acd81c95eca773f034"
},
{
"url": "https://git.kernel.org/stable/c/f8a07021679aadfb6d63b209207ccc41f26982d1"
},
{
"url": "https://git.kernel.org/stable/c/80c6054a4c40a0ffad82acef9f9a0dee108d152a"
},
{
"url": "https://git.kernel.org/stable/c/b42948f9e0d1ea4dbd5742ce1dfc7688de5d4a35"
},
{
"url": "https://git.kernel.org/stable/c/a979a642402d0b1f856c7a729b4cb2d92de4cf2f"
},
{
"url": "https://git.kernel.org/stable/c/1e7abfeb23c12bf46f6457e4a3e1a1a300d50619"
},
{
"url": "https://git.kernel.org/stable/c/42c5ca1f0a288a52878bd72a5595b08261057438"
}
],
"title": "perf/core: Fix group leader use-after-free after sibling detach",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74637",
"datePublished": "2026-08-22T15:32:16.755Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-10-16T19:06:04.262Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53061 (GCVE-0-2026-53061)
Vulnerability from cvelistv5
Published
2026-06-24 16:30
Modified
2026-06-24 16:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm cache: fix dirty mapping checking in passthrough mode switching
As mentioned in commit 9b1cc9f251af ("dm cache: share cache-metadata
object across inactive and active DM tables"), dm-cache assumed table
reload occurs after suspension, while LVM's table preload breaks this
assumption. The dirty mapping check for passthrough mode was designed
around this assumption and is performed during table creation, causing
the check to fail with preload while metadata updates are ongoing. This
risks loading dirty mappings into passthrough mode, resulting in data
loss.
Reproduce steps:
1. Create a writeback cache with zero migration_threshold to produce
dirty mappings
dmsetup create cmeta --table "0 8192 linear /dev/sdc 0"
dmsetup create cdata --table "0 131072 linear /dev/sdc 8192"
dmsetup create corig --table "0 262144 linear /dev/sdc 262144"
dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct
dmsetup create cache --table "0 262144 cache /dev/mapper/cmeta \
/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writeback smq \
2 migration_threshold 0"
2. Preload a table in passthrough mode
dmsetup reload cache --table "0 262144 cache /dev/mapper/cmeta \
/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0"
3. Write to the first cache block to make it dirty
fio --filename=/dev/mapper/cache --name=populate --rw=write --bs=4k \
--direct=1 --size=64k
4. Resume the inactive table. Now it's possible to load the dirty block
into passthrough mode.
dmsetup resume cache
Fix by moving the checks to the preresume phase to support table
preloading. Also remove the unused function dm_cache_metadata_all_clean.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 Version: 2ee57d587357f0d752af6c2e3e46434a74b1bee3 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-cache-metadata.c",
"drivers/md/dm-cache-metadata.h",
"drivers/md/dm-cache-target.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c2e86f647561fcf5e1c6eba7d75e9e0c4299c94d",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "5c98a3f1d7a554c9e920aa31daf92af6b5bbb8cc",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "1443c32f24d6d8bcdf4beceef2afc09290b98717",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "12105c7f18375d7615dad7605d89eadae7eb12a6",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "bd5a2c1018938e6b32670728bdb32a3f0efff00f",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "21c503d60a257e54ca3ac58e2721bd24501d5bde",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "01b22656d8a68dbeae59f8b80866e7b11936b20a",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
},
{
"lessThan": "322586745bd1a0e5f3559fd1635fdeb4dbd1d6b8",
"status": "affected",
"version": "2ee57d587357f0d752af6c2e3e46434a74b1bee3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-cache-metadata.c",
"drivers/md/dm-cache-metadata.h",
"drivers/md/dm-cache-target.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.13"
},
{
"lessThan": "3.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.141",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.91",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.33",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.141",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.91",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.33",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.10",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm cache: fix dirty mapping checking in passthrough mode switching\n\nAs mentioned in commit 9b1cc9f251af (\"dm cache: share cache-metadata\nobject across inactive and active DM tables\"), dm-cache assumed table\nreload occurs after suspension, while LVM\u0027s table preload breaks this\nassumption. The dirty mapping check for passthrough mode was designed\naround this assumption and is performed during table creation, causing\nthe check to fail with preload while metadata updates are ongoing. This\nrisks loading dirty mappings into passthrough mode, resulting in data\nloss.\n\nReproduce steps:\n\n1. Create a writeback cache with zero migration_threshold to produce\n dirty mappings\n\ndmsetup create cmeta --table \"0 8192 linear /dev/sdc 0\"\ndmsetup create cdata --table \"0 131072 linear /dev/sdc 8192\"\ndmsetup create corig --table \"0 262144 linear /dev/sdc 262144\"\ndd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct\ndmsetup create cache --table \"0 262144 cache /dev/mapper/cmeta \\\n/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writeback smq \\\n2 migration_threshold 0\"\n\n2. Preload a table in passthrough mode\n\ndmsetup reload cache --table \"0 262144 cache /dev/mapper/cmeta \\\n/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0\"\n\n3. Write to the first cache block to make it dirty\n\nfio --filename=/dev/mapper/cache --name=populate --rw=write --bs=4k \\\n--direct=1 --size=64k\n\n4. Resume the inactive table. Now it\u0027s possible to load the dirty block\n into passthrough mode.\n\ndmsetup resume cache\n\nFix by moving the checks to the preresume phase to support table\npreloading. Also remove the unused function dm_cache_metadata_all_clean."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-24T16:30:05.522Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c2e86f647561fcf5e1c6eba7d75e9e0c4299c94d"
},
{
"url": "https://git.kernel.org/stable/c/5c98a3f1d7a554c9e920aa31daf92af6b5bbb8cc"
},
{
"url": "https://git.kernel.org/stable/c/1443c32f24d6d8bcdf4beceef2afc09290b98717"
},
{
"url": "https://git.kernel.org/stable/c/12105c7f18375d7615dad7605d89eadae7eb12a6"
},
{
"url": "https://git.kernel.org/stable/c/bd5a2c1018938e6b32670728bdb32a3f0efff00f"
},
{
"url": "https://git.kernel.org/stable/c/21c503d60a257e54ca3ac58e2721bd24501d5bde"
},
{
"url": "https://git.kernel.org/stable/c/01b22656d8a68dbeae59f8b80866e7b11936b20a"
},
{
"url": "https://git.kernel.org/stable/c/322586745bd1a0e5f3559fd1635fdeb4dbd1d6b8"
}
],
"title": "dm cache: fix dirty mapping checking in passthrough mode switching",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53061",
"datePublished": "2026-06-24T16:30:05.522Z",
"dateReserved": "2026-06-09T07:44:35.382Z",
"dateUpdated": "2026-06-24T16:30:05.522Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46272 (GCVE-0-2026-46272)
Vulnerability from cvelistv5
Published
2026-06-03 15:50
Modified
2026-10-21 12:41
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
coresight: tmc-etr: Fix race condition between sysfs and perf mode
When trying to run perf and sysfs mode simultaneously, the WARN_ON()
in tmc_etr_enable_hw() is triggered sometimes:
WARNING: CPU: 42 PID: 3911571 at drivers/hwtracing/coresight/coresight-tmc-etr.c:1060 tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc]
[..snip..]
Call trace:
tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc] (P)
tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc] (L)
tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc]
coresight_enable_path+0x1c8/0x218 [coresight]
coresight_enable_sysfs+0xa4/0x228 [coresight]
enable_source_store+0x58/0xa8 [coresight]
dev_attr_store+0x20/0x40
sysfs_kf_write+0x4c/0x68
kernfs_fop_write_iter+0x120/0x1b8
vfs_write+0x2c8/0x388
ksys_write+0x74/0x108
__arm64_sys_write+0x24/0x38
el0_svc_common.constprop.0+0x64/0x148
do_el0_svc+0x24/0x38
el0_svc+0x3c/0x130
el0t_64_sync_handler+0xc8/0xd0
el0t_64_sync+0x1ac/0x1b0
---[ end trace 0000000000000000 ]---
Since the enablement of sysfs mode is separeted into two critical regions,
one for sysfs buffer allocation and another for hardware enablement, it's
possible to race with the perf mode. Fix this by double check whether
the perf mode's been used before enabling the hardware in sysfs mode.
mode:
[sysfs mode] [perf mode]
tmc_etr_get_sysfs_buffer()
spin_lock(&drvdata->spinlock)
[sysfs buffer allocation]
spin_unlock(&drvdata->spinlock)
spin_lock(&drvdata->spinlock)
tmc_etr_enable_hw()
drvdata->etr_buf = etr_perf->etr_buf
spin_unlock(&drvdata->spinlock)
spin_lock(&drvdata->spinlock)
tmc_etr_enable_hw()
WARN_ON(drvdata->etr_buf) // WARN sicne etr_buf initialized at
the perf side
spin_unlock(&drvdata->spinlock)
With this fix, we retain the check for CS_MODE_PERF in get_etr_sysfs_buf.
This ensures we verify whether the perf mode's already running before we
actually allocate the buffer. Then we can save the time of
allocating/freeing the sysfs buffer if race with the perf mode.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwtracing/coresight/coresight-tmc-etr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3e8cdf184646c28c5ea5fba754d24a3b29068739",
"status": "affected",
"version": "296b01fd106e787d4463974a7f42d286a5df08cd",
"versionType": "git"
},
{
"lessThan": "206b6f672613d08b33e951a744d0a1c6ac5ad8ad",
"status": "affected",
"version": "296b01fd106e787d4463974a7f42d286a5df08cd",
"versionType": "git"
},
{
"lessThan": "38a07194bbcddb18d77dad40ba9978d994c0b74c",
"status": "affected",
"version": "296b01fd106e787d4463974a7f42d286a5df08cd",
"versionType": "git"
},
{
"lessThan": "6906aa70d4fc5900b954136e20e27c2be6d1acab",
"status": "affected",
"version": "296b01fd106e787d4463974a7f42d286a5df08cd",
"versionType": "git"
},
{
"lessThan": "e6e43e82c79c97917cbe356c07e8a6f3f982ab53",
"status": "affected",
"version": "296b01fd106e787d4463974a7f42d286a5df08cd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwtracing/coresight/coresight-tmc-etr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.5"
},
{
"lessThan": "6.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.14",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.14",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.4",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "6.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncoresight: tmc-etr: Fix race condition between sysfs and perf mode\n\nWhen trying to run perf and sysfs mode simultaneously, the WARN_ON()\nin tmc_etr_enable_hw() is triggered sometimes:\n\n WARNING: CPU: 42 PID: 3911571 at drivers/hwtracing/coresight/coresight-tmc-etr.c:1060 tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc]\n [..snip..]\n Call trace:\n tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc] (P)\n tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc] (L)\n tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc]\n coresight_enable_path+0x1c8/0x218 [coresight]\n coresight_enable_sysfs+0xa4/0x228 [coresight]\n enable_source_store+0x58/0xa8 [coresight]\n dev_attr_store+0x20/0x40\n sysfs_kf_write+0x4c/0x68\n kernfs_fop_write_iter+0x120/0x1b8\n vfs_write+0x2c8/0x388\n ksys_write+0x74/0x108\n __arm64_sys_write+0x24/0x38\n el0_svc_common.constprop.0+0x64/0x148\n do_el0_svc+0x24/0x38\n el0_svc+0x3c/0x130\n el0t_64_sync_handler+0xc8/0xd0\n el0t_64_sync+0x1ac/0x1b0\n ---[ end trace 0000000000000000 ]---\n\nSince the enablement of sysfs mode is separeted into two critical regions,\none for sysfs buffer allocation and another for hardware enablement, it\u0027s\npossible to race with the perf mode. Fix this by double check whether\nthe perf mode\u0027s been used before enabling the hardware in sysfs mode.\n\n mode:\n [sysfs mode] [perf mode]\n tmc_etr_get_sysfs_buffer()\n spin_lock(\u0026drvdata-\u003espinlock)\n [sysfs buffer allocation]\n spin_unlock(\u0026drvdata-\u003espinlock)\n spin_lock(\u0026drvdata-\u003espinlock)\n tmc_etr_enable_hw()\n drvdata-\u003eetr_buf = etr_perf-\u003eetr_buf\n spin_unlock(\u0026drvdata-\u003espinlock)\n spin_lock(\u0026drvdata-\u003espinlock)\n tmc_etr_enable_hw()\n WARN_ON(drvdata-\u003eetr_buf) // WARN sicne etr_buf initialized at\n the perf side\n spin_unlock(\u0026drvdata-\u003espinlock)\n\nWith this fix, we retain the check for CS_MODE_PERF in get_etr_sysfs_buf.\nThis ensures we verify whether the perf mode\u0027s already running before we\nactually allocate the buffer. Then we can save the time of\nallocating/freeing the sysfs buffer if race with the perf mode."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:41:33.089Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3e8cdf184646c28c5ea5fba754d24a3b29068739"
},
{
"url": "https://git.kernel.org/stable/c/206b6f672613d08b33e951a744d0a1c6ac5ad8ad"
},
{
"url": "https://git.kernel.org/stable/c/38a07194bbcddb18d77dad40ba9978d994c0b74c"
},
{
"url": "https://git.kernel.org/stable/c/6906aa70d4fc5900b954136e20e27c2be6d1acab"
},
{
"url": "https://git.kernel.org/stable/c/e6e43e82c79c97917cbe356c07e8a6f3f982ab53"
}
],
"title": "coresight: tmc-etr: Fix race condition between sysfs and perf mode",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46272",
"datePublished": "2026-06-03T15:50:14.618Z",
"dateReserved": "2026-05-13T15:03:33.109Z",
"dateUpdated": "2026-10-21T12:41:33.089Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74490 (GCVE-0-2026-74490)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: avoid use-after-free in poll trace queue dumps
TIPC socket tracepoints dump queue state through tipc_sk_dump(). Most
queue-dump callsites already serialize that walk under the socket lock or
sk->sk_lock.slock, but tipc_poll() calls trace_tipc_sk_poll(...,
TIPC_DUMP_ALL, ...) without holding either lock.
That lets the poll trace path reach tipc_list_dump() and backlog head/tail
dumping while another context dequeues and frees an skb, leaving the trace
helper dereferencing a stale queue entry.
Stop the unlocked poll trace site from requesting queue dumps. Other queue
dump trace callsites keep their existing output under the locking they
already provide, while poll still emits the event itself without walking
live queue members from an unlocked context.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74490",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:58:05.163289Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:49.765Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "ae7fc824970888b4fdaa076819c9a6f2fcede275",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "78706367fe1b98aee0a6de27c62b7f1e3035f38d",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "d7940bb6a8e7ab28f972c2875cb05783216312dc",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "bed792737b5f1ba773054dbe984502958bdfe6ce",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "ac2f787980fdf4364cd5651a4c8128e59b8de3aa",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "b4f1719dfea023220e0e6bd892b087d76b2a6a49",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: avoid use-after-free in poll trace queue dumps\n\nTIPC socket tracepoints dump queue state through tipc_sk_dump(). Most\nqueue-dump callsites already serialize that walk under the socket lock or\nsk-\u003esk_lock.slock, but tipc_poll() calls trace_tipc_sk_poll(...,\nTIPC_DUMP_ALL, ...) without holding either lock.\n\nThat lets the poll trace path reach tipc_list_dump() and backlog head/tail\ndumping while another context dequeues and frees an skb, leaving the trace\nhelper dereferencing a stale queue entry.\n\nStop the unlocked poll trace site from requesting queue dumps. Other queue\ndump trace callsites keep their existing output under the locking they\nalready provide, while poll still emits the event itself without walking\nlive queue members from an unlocked context."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is a race between tipc_poll()\u0027s unlocked trace queue walk and concurrent skb dequeue/free on the TIPC receive path; on cluster nodes a remote TIPC peer can supply the freeing side while poll/epoll runs on the victim socket processing that network traffic.\nAC:L - The attacker controls both sides of the race by concurrently polling/epolling a TIPC socket while sending/receiving TIPC traffic (or having a remote peer deliver packets), and can repeat attempts until the unlocked head/tail dump overlaps skb free.\nPR:L - Exploitation requires only an unprivileged local process with an AF_TIPC socket calling poll/epoll while TIPC traffic is processed; no real-root capability is needed beyond participation in an operational TIPC cluster where tracing may be enabled for diagnostics.\nUI:N - No end-user interaction is required; the race is triggered by normal daemon poll/epoll loops and incoming TIPC packet processing on cluster nodes.\nS:U - Impact is confined to kernel memory corruption and privilege boundaries within the host kernel; this is not a cross-VM or cross-container sandbox escape scenario.\nC:H - The bug is a use-after-free where tipc_list_dump()/tipc_skb_dump() dereference head/tail skbs after concurrent dequeue/kfree, enabling reads of freed skb and message memory usable for kernel information disclosure.\nI:H - UAF on skb queue entries can be leveraged with heap grooming for arbitrary kernel writes and control-flow hijack, not merely a benign crash, because freed skbs can be reallocated under attacker-influenced TIPC traffic.\nA:H - Accessing freed skbs from the poll trace path can cause kernel oops/panic or hang during tipc_skb_dump(), and repeated triggering yields reliable denial of service on affected cluster nodes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:45.610Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8"
},
{
"url": "https://git.kernel.org/stable/c/ae7fc824970888b4fdaa076819c9a6f2fcede275"
},
{
"url": "https://git.kernel.org/stable/c/78706367fe1b98aee0a6de27c62b7f1e3035f38d"
},
{
"url": "https://git.kernel.org/stable/c/d7940bb6a8e7ab28f972c2875cb05783216312dc"
},
{
"url": "https://git.kernel.org/stable/c/5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d"
},
{
"url": "https://git.kernel.org/stable/c/bed792737b5f1ba773054dbe984502958bdfe6ce"
},
{
"url": "https://git.kernel.org/stable/c/ac2f787980fdf4364cd5651a4c8128e59b8de3aa"
},
{
"url": "https://git.kernel.org/stable/c/b4f1719dfea023220e0e6bd892b087d76b2a6a49"
}
],
"title": "tipc: avoid use-after-free in poll trace queue dumps",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74490",
"datePublished": "2026-08-15T12:27:20.107Z",
"dateReserved": "2026-08-15T05:44:03.905Z",
"dateUpdated": "2026-10-16T19:05:49.765Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97520 (GCVE-0-2026-97520)
Vulnerability from cvelistv5
Published
2026-09-24 16:05
Modified
2026-09-28 05:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gfs2: move quota_init qc iterator increment
Move qc++ from the loop body into the for-loop increment
expression in gfs2_quota_init().
This keeps iterator progression explicit and avoids mixing pointer
advance with duplicate-slot handling in the loop body.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/gfs2/quota.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04ec2f3b29b3c8a59950b8816b5ebc8ba052808a",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
},
{
"lessThan": "21a50a9373adab35ffadf5cf59272dc99078170e",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
},
{
"lessThan": "942202677f8f2ee448a6a2feb06aeeaf520342e3",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/gfs2/quota.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngfs2: move quota_init qc iterator increment\n\nMove qc++ from the loop body into the for-loop increment\nexpression in gfs2_quota_init().\n\nThis keeps iterator progression explicit and avoids mixing pointer\nadvance with duplicate-slot handling in the loop body."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The malformed bytes are on-disk struct gfs2_quota_change records in the per-node quota_change file. gfs2_quota_init() reads them via gfs2_meta_ra() from gfs2_get_tree()\u2192get_tree_bdev()\u2192gfs2_fill_super()\u2192gfs2_make_fs_rw(); no NFS/SMB/TCP message carries qc_id or qc_change.\nAC:L - A crafted quota_change file with two non-zero qc_change entries sharing qc_id, the duplicate in the last slot of a QC block, makes the pre-fix body qc++ then memset(qc,0,sizeof(*qc)) run on every read-write mount of that image, with no race.\nPR:N - Crafting the image needs no host account. gfs2_fs_type.fs_flags is only FS_REQUIRES_DEV (no FS_USERNS_MOUNT), so mount_capable() is capable(CAP_SYS_ADMIN) in init_user_ns; that privileged mount of the attacker image is scored as UI:R, not attacker privilege.\nUI:R - gfs2_quota_init() runs only from gfs2_make_fs_rw() after gfs2_fill_super() or gfs2_reconfigure() attaches the attacker-supplied block device. Because gfs2 is not FS_USERNS_MOUNT, a victim or administrator must mount that image read-write before the duplicate-slot memset runs.\nS:U - The out-of-bounds memset in gfs2_quota_init() corrupts page-cache memory in the host kernel that mounted the volume; this is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:N - The duplicate path only stores 16 zeros through the already-advanced qc pointer; it does not load adjacent kernel bytes or copy them to userspace.\nI:H - Pre-fix, qc++ runs before memset(qc,0,sizeof(*qc)). sd_qc_per_block is (sb_bsize-24)/16, leaving 8 bytes of padding, so a last-slot duplicate stores 8 zeros past bh-\u003eb_data+sb_bsize of the gfs2_getbuf() buffer_head: a kernel out-of-bounds write.\nA:H - Those 8 zeros past the QC buffer_head land in the next folio/page (or the next BH in the same folio when sb_bsize\u003cPAGE_SIZE) and can oops the kernel when that memory is live, poisoned, or KASAN-guarded."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-28T05:30:58.172Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04ec2f3b29b3c8a59950b8816b5ebc8ba052808a"
},
{
"url": "https://git.kernel.org/stable/c/21a50a9373adab35ffadf5cf59272dc99078170e"
},
{
"url": "https://git.kernel.org/stable/c/942202677f8f2ee448a6a2feb06aeeaf520342e3"
}
],
"title": "gfs2: move quota_init qc iterator increment",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97520",
"datePublished": "2026-09-24T16:05:20.188Z",
"dateReserved": "2026-09-24T16:01:01.152Z",
"dateUpdated": "2026-09-28T05:30:58.172Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80851 (GCVE-0-2026-80851)
Vulnerability from cvelistv5
Published
2026-09-04 15:55
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gtp: serialize PDP context updates
PDP contexts can be deleted through GTP_CMD_DELPDP or while the GTP
network device is being unregistered. The latter is serialized by RTNL,
but the generic-netlink delete path only holds RCU.
Running both paths concurrently can therefore make both paths delete the
same PDP context. The issue was found through static analysis and
reproduced on a KASAN-enabled kernel by a simple two-thread program
racing GTP_CMD_DELPDP against RTM_DELLINK:
Oops: general protection fault, probably for non-canonical address
KASAN: maybe wild-memory-access in range
[0xdead000000000120-0xdead000000000127]
RIP: gtp_genl_del_pdp+0x1c1/0x420 [gtp]
RBP: dead000000000122
The second deletion dereferenced the poisoned hlist pprev pointer.
Serialize gtp_pdp_add(), gtp_genl_del_pdp(), and gtp_dellink() with a
shared mutex. Keep the mutex held until the final use of a PDP context in
the NEWPDP path, and keep the RCU read-side section around the complete
PDP context use in the DELPDP path.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b4ac2a5ce5a96ec21ed48f60d30b52b1fb22c62a",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "5f77ddb2756340c1b05381674ca025d52998005e",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "3d950e98f74af9611925a5226edced02155f6ed1",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "6df4f05bc2991467939d7d80b6f7e121559cc3df",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "1e995498d29784a06a2b2899370a1926cfc8410d",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "498386b6d402737db1e2eeed4c385acbf0ef9e34",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngtp: serialize PDP context updates\n\nPDP contexts can be deleted through GTP_CMD_DELPDP or while the GTP\nnetwork device is being unregistered. The latter is serialized by RTNL,\nbut the generic-netlink delete path only holds RCU.\n\nRunning both paths concurrently can therefore make both paths delete the\nsame PDP context. The issue was found through static analysis and\nreproduced on a KASAN-enabled kernel by a simple two-thread program\nracing GTP_CMD_DELPDP against RTM_DELLINK:\n\n Oops: general protection fault, probably for non-canonical address\n KASAN: maybe wild-memory-access in range\n [0xdead000000000120-0xdead000000000127]\n RIP: gtp_genl_del_pdp+0x1c1/0x420 [gtp]\n RBP: dead000000000122\n\nThe second deletion dereferenced the poisoned hlist pprev pointer.\n\nSerialize gtp_pdp_add(), gtp_genl_del_pdp(), and gtp_dellink() with a\nshared mutex. Keep the mutex held until the final use of a PDP context in\nthe NEWPDP path, and keep the RCU read-side section around the complete\nPDP context use in the DELPDP path."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:45.370Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b4ac2a5ce5a96ec21ed48f60d30b52b1fb22c62a"
},
{
"url": "https://git.kernel.org/stable/c/5f77ddb2756340c1b05381674ca025d52998005e"
},
{
"url": "https://git.kernel.org/stable/c/3d950e98f74af9611925a5226edced02155f6ed1"
},
{
"url": "https://git.kernel.org/stable/c/6df4f05bc2991467939d7d80b6f7e121559cc3df"
},
{
"url": "https://git.kernel.org/stable/c/1e995498d29784a06a2b2899370a1926cfc8410d"
},
{
"url": "https://git.kernel.org/stable/c/498386b6d402737db1e2eeed4c385acbf0ef9e34"
}
],
"title": "gtp: serialize PDP context updates",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80851",
"datePublished": "2026-09-04T15:55:01.667Z",
"dateReserved": "2026-08-26T14:34:25.797Z",
"dateUpdated": "2026-10-19T08:44:45.370Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90417 (GCVE-0-2026-90417)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-21 12:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/cxgb4: Fix dereg_skb leak and double free in write_tpt_entry()
When the device is in the fatal error state, write_tpt_entry() returns -EIO
before handing the caller's preallocated skb to the transmit path; its
allocation-failure returns do the same. c4iw_dereg_mr() ignores the error
and frees mhp, leaking mhp->dereg_skb. c4iw_get_dma_mr() instead frees the
skb a second time after dereg_mem() already consumed it, a double free.
Make write_tpt_entry() the sole owner of a non-NULL skb, freeing it on
every return preceding handoff to c4iw_ofld_send(): fatal error, tpt and
stag allocation failure. c4iw_ofld_send() consumes the skb on success and
error alike, so drop the redundant kfree_skb() in c4iw_get_dma_mr() after
dereg_mem().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "68c1d2c085f205e8a5338bc3d3304f897deca4d9",
"status": "affected",
"version": "0f8ab0b6e91b4d5302ceee5ec12ce54d81297635",
"versionType": "git"
},
{
"lessThan": "379cf06e6fe34af980064c6ccaf15d8e26ec4a42",
"status": "affected",
"version": "0f8ab0b6e91b4d5302ceee5ec12ce54d81297635",
"versionType": "git"
},
{
"lessThan": "2fcd26f4680143e9ec477069530548dbe20fce6f",
"status": "affected",
"version": "0f8ab0b6e91b4d5302ceee5ec12ce54d81297635",
"versionType": "git"
},
{
"lessThan": "6b15fc9bc117fb6597fa1c2cc30284aafe71101c",
"status": "affected",
"version": "0f8ab0b6e91b4d5302ceee5ec12ce54d81297635",
"versionType": "git"
},
{
"lessThan": "373f3716a2de7adc739269ebb4d87e5bf4dc180c",
"status": "affected",
"version": "0f8ab0b6e91b4d5302ceee5ec12ce54d81297635",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/cxgb4: Fix dereg_skb leak and double free in write_tpt_entry()\n\nWhen the device is in the fatal error state, write_tpt_entry() returns -EIO\nbefore handing the caller\u0027s preallocated skb to the transmit path; its\nallocation-failure returns do the same. c4iw_dereg_mr() ignores the error\nand frees mhp, leaking mhp-\u003edereg_skb. c4iw_get_dma_mr() instead frees the\nskb a second time after dereg_mem() already consumed it, a double free.\n\nMake write_tpt_entry() the sole owner of a non-NULL skb, freeing it on\nevery return preceding handoff to c4iw_ofld_send(): fatal error, tpt and\nstag allocation failure. c4iw_ofld_send() consumes the skb on success and\nerror alike, so drop the redundant kfree_skb() in c4iw_get_dma_mr() after\ndereg_mem()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:51:33.618Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/68c1d2c085f205e8a5338bc3d3304f897deca4d9"
},
{
"url": "https://git.kernel.org/stable/c/379cf06e6fe34af980064c6ccaf15d8e26ec4a42"
},
{
"url": "https://git.kernel.org/stable/c/2fcd26f4680143e9ec477069530548dbe20fce6f"
},
{
"url": "https://git.kernel.org/stable/c/6b15fc9bc117fb6597fa1c2cc30284aafe71101c"
},
{
"url": "https://git.kernel.org/stable/c/373f3716a2de7adc739269ebb4d87e5bf4dc180c"
}
],
"title": "RDMA/cxgb4: Fix dereg_skb leak and double free in write_tpt_entry()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90417",
"datePublished": "2026-09-17T16:09:42.342Z",
"dateReserved": "2026-09-11T19:38:34.813Z",
"dateUpdated": "2026-10-21T12:51:33.618Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68128 (GCVE-0-2026-68128)
Vulnerability from cvelistv5
Published
2026-08-10 11:58
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ice: reject out-of-range ptype in ice_parser_profile_init
set_bit(rslt->ptype, prof->ptypes) operates on a DECLARE_BITMAP of
ICE_FLOW_PTYPE_MAX (1024) bits. Nothing prevents a malicious VF from
providing ptype >= 1024 through VIRTCHNL, resulting in a write past
the end of the bitmap and a kernel page fault.
Reproduced with a custom kernel module injecting a crafted
VIRTCHNL_OP_ADD_RSS_CFG on E810-C QSFP (8086:1592),
FW 4.91 0x800214af 1.3909.0, ICE COMMS DDP 1.3.53.0,
kernel 7.1.0-rc1.
crash_parser: ice_parser_profile_init @ ffffffffc0d61b60
crash_parser: setting ptype=0xffff (max valid=1023)
crash_parser: calling ice_parser_profile_init -- expect OOB crash!
BUG: kernel NULL pointer dereference, address: 0000000000000000
Oops: Oops: 0002 [#1] SMP NOPTI
CPU: 56 UID: 0 PID: 165011 Comm: insmod Kdump: loaded Tainted: G S U OE 7.1.0-rc1 #1
Hardware name: Intel Corporation S2600BPB/S2600BPB
RIP: 0010:ice_parser_profile_init+0x2d/0x1d0 [ice]
Call Trace:
<TASK>
? __pfx_ice_parser_profile_init+0x10/0x10 [ice]
crash_init+0x127/0xff0 [crash_parser]
do_one_initcall+0x45/0x310
do_init_module+0x64/0x270
init_module_from_file+0xcc/0xf0
idempotent_init_module+0x17b/0x280
__x64_sys_finit_module+0x6e/0xe0
Bail out early with -EINVAL when ptype is out of range.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68128",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:44:20.996927Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:52.382Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ice/ice_parser.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fe2f8d5a77adea38e889fe3d6cde1b76d4a635bf",
"status": "affected",
"version": "e312b3a1e2092f612914dbc4fa5d96b4d8ff94ef",
"versionType": "git"
},
{
"lessThan": "5e496f2b615cec4b45537cfb5b54f36a51dc8753",
"status": "affected",
"version": "e312b3a1e2092f612914dbc4fa5d96b4d8ff94ef",
"versionType": "git"
},
{
"lessThan": "33cc15aaf2491166dddc018b24b3b7db53ec01b2",
"status": "affected",
"version": "e312b3a1e2092f612914dbc4fa5d96b4d8ff94ef",
"versionType": "git"
},
{
"lessThan": "59abb87159c53605c063f6e2ceb215b5eba43ee6",
"status": "affected",
"version": "e312b3a1e2092f612914dbc4fa5d96b4d8ff94ef",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ice/ice_parser.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nice: reject out-of-range ptype in ice_parser_profile_init\n\nset_bit(rslt-\u003eptype, prof-\u003eptypes) operates on a DECLARE_BITMAP of\nICE_FLOW_PTYPE_MAX (1024) bits. Nothing prevents a malicious VF from\nproviding ptype \u003e= 1024 through VIRTCHNL, resulting in a write past\nthe end of the bitmap and a kernel page fault.\n\nReproduced with a custom kernel module injecting a crafted\nVIRTCHNL_OP_ADD_RSS_CFG on E810-C QSFP (8086:1592),\nFW 4.91 0x800214af 1.3909.0, ICE COMMS DDP 1.3.53.0,\nkernel 7.1.0-rc1.\n\ncrash_parser: ice_parser_profile_init @ ffffffffc0d61b60\ncrash_parser: setting ptype=0xffff (max valid=1023)\ncrash_parser: calling ice_parser_profile_init -- expect OOB crash!\nBUG: kernel NULL pointer dereference, address: 0000000000000000\nOops: Oops: 0002 [#1] SMP NOPTI\nCPU: 56 UID: 0 PID: 165011 Comm: insmod Kdump: loaded Tainted: G S U OE 7.1.0-rc1 #1\nHardware name: Intel Corporation S2600BPB/S2600BPB\nRIP: 0010:ice_parser_profile_init+0x2d/0x1d0 [ice]\nCall Trace:\n \u003cTASK\u003e\n ? __pfx_ice_parser_profile_init+0x10/0x10 [ice]\n crash_init+0x127/0xff0 [crash_parser]\n do_one_initcall+0x45/0x310\n do_init_module+0x64/0x270\n init_module_from_file+0xcc/0xf0\n idempotent_init_module+0x17b/0x280\n __x64_sys_finit_module+0x6e/0xe0\n\nBail out early with -EINVAL when ptype is out of range."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a malicious SR-IOV VF (or guest with VF passthrough) to send VIRTCHNL_OP_ADD_RSS_CFG/ADD_FDIR_FILTER mailbox messages to the host PF driver; this is local device/mailbox access, not remote network packet processing.\nAC:L - A VF can craft a raw RSS/FDIR packet pattern that leaves ice_ptype_resolve() returning U16_MAX (0xFFFF); set_bit() then deterministically indexes far past the 1024-bit prof-\u003eptypes bitmap with no attacker-uncontrollable race or layout dependency.\nPR:L - Attack requires control of an assigned E810 VF, typically as a cloud tenant VM with netdev admin capability or a VFIO-delegated process; this is low privilege relative to the host (not init-namespace root), mirroring similar SR-IOV VF bugs.\nUI:N - The attacker sends their own VIRTCHNL configuration message (or loads a guest kernel module to do so); no separate victim-user interaction is required beyond routine VF assignment already present in SR-IOV deployments.\nS:C - In virtualized/cloud deployments (the primary E810 use case), a malicious guest VF corrupts host kernel stack memory in the PF driver, crossing the guest-to-host isolation boundary analogous to KVM/SR-IOV escape class bugs.\nC:H - The out-of-bounds set_bit() stack write corrupts kernel memory far beyond the 128-byte ptypes bitmap; such uncontrolled memory corruption is leverageable for kernel information disclosure in an exploit chain.\nI:H - set_bit(0xFFFF, prof-\u003eptypes) performs an arbitrary out-of-bounds stack write (~8 KB past the bitmap on x86_64), providing memory corruption primitives potentially usable for host kernel code execution.\nA:H - The bug was reproduced causing a NULL-pointer kernel oops/page fault in ice_parser_profile_init(); reliable triggering from a malicious VF can panic or lock up the host PF kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:59:19.746Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fe2f8d5a77adea38e889fe3d6cde1b76d4a635bf"
},
{
"url": "https://git.kernel.org/stable/c/5e496f2b615cec4b45537cfb5b54f36a51dc8753"
},
{
"url": "https://git.kernel.org/stable/c/33cc15aaf2491166dddc018b24b3b7db53ec01b2"
},
{
"url": "https://git.kernel.org/stable/c/59abb87159c53605c063f6e2ceb215b5eba43ee6"
}
],
"title": "ice: reject out-of-range ptype in ice_parser_profile_init",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68128",
"datePublished": "2026-08-10T11:58:50.013Z",
"dateReserved": "2026-07-30T09:28:09.370Z",
"dateUpdated": "2026-10-19T20:58:52.382Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74605 (GCVE-0-2026-74605)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
eventfs: Use children field for rcu head and add memory barriers
When an eventfs inode is freed, it sets ei->is_freed and then uses its
ei->list to add it to the srcu link list as the list field is a union with
the rcu list head. As the ei->list is used to iterate over an SRCU
protected list without taking the eventfs_mutex, there's nothing stopping
the iteration over that list to see the ei->rcu instead of the ei->list
and it will read a corrupt target.
To fix this, change the union of the rcu list head with the children list.
On freeing the eventfs inode, set the is_free and execute a smp_wmb()
before adding the eventfs inode to the SRCU list.
On iteration of the ei->children list, at the start, execute a smp_rmb()
and then read the is_freed of the ei to see if the children list is still
valid. If is_freed is set, then the ei_child read is not valid and the
loop should exit immediately.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f3f41f444b321ec393edbc251e024fd62658ce55 Version: 704f960dbee2f1634f4b4e16f208cb16eaf41c1e Version: 704f960dbee2f1634f4b4e16f208cb16eaf41c1e Version: 704f960dbee2f1634f4b4e16f208cb16eaf41c1e Version: 704f960dbee2f1634f4b4e16f208cb16eaf41c1e Version: 305c4e4d80aca2c2d9cf2ebdea56e2eca6d3a6aa Version: 6.6.18 ≤ Version: 6.7.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/tracefs/event_inode.c",
"fs/tracefs/internal.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "25d27d5fa8645ab61018c3efec5c69f49280ca7d",
"status": "affected",
"version": "f3f41f444b321ec393edbc251e024fd62658ce55",
"versionType": "git"
},
{
"lessThan": "1b95382da85cff3bf0f922ff0275f186abdadfce",
"status": "affected",
"version": "704f960dbee2f1634f4b4e16f208cb16eaf41c1e",
"versionType": "git"
},
{
"lessThan": "2b80707b9e27671e10840d17c6f8f774c4ad9847",
"status": "affected",
"version": "704f960dbee2f1634f4b4e16f208cb16eaf41c1e",
"versionType": "git"
},
{
"lessThan": "004f7232e49730448f91665e76bdd7dff8e0c638",
"status": "affected",
"version": "704f960dbee2f1634f4b4e16f208cb16eaf41c1e",
"versionType": "git"
},
{
"lessThan": "f0ece16ffca7384787b692431961ce202907acf5",
"status": "affected",
"version": "704f960dbee2f1634f4b4e16f208cb16eaf41c1e",
"versionType": "git"
},
{
"status": "affected",
"version": "305c4e4d80aca2c2d9cf2ebdea56e2eca6d3a6aa",
"versionType": "git"
},
{
"lessThan": "6.6.160",
"status": "affected",
"version": "6.6.18",
"versionType": "semver"
},
{
"lessThan": "6.8",
"status": "affected",
"version": "6.7.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/tracefs/event_inode.c",
"fs/tracefs/internal.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.7.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\neventfs: Use children field for rcu head and add memory barriers\n\nWhen an eventfs inode is freed, it sets ei-\u003eis_freed and then uses its\nei-\u003elist to add it to the srcu link list as the list field is a union with\nthe rcu list head. As the ei-\u003elist is used to iterate over an SRCU\nprotected list without taking the eventfs_mutex, there\u0027s nothing stopping\nthe iteration over that list to see the ei-\u003ercu instead of the ei-\u003elist\nand it will read a corrupt target.\n\nTo fix this, change the union of the rcu list head with the children list.\nOn freeing the eventfs inode, set the is_free and execute a smp_wmb()\nbefore adding the eventfs inode to the SRCU list.\n\nOn iteration of the ei-\u003echildren list, at the start, execute a smp_rmb()\nand then read the is_freed of the ei to see if the children list is still\nvalid. If is_freed is set, then the ei_child read is not valid and the\nloop should exit immediately."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local syscalls (getdents64/readdir on tracefs eventfs directories through eventfs_iterate); tracefs is a kernel pseudo-filesystem under /sys/kernel/tracing with no network, adjacent-wireless, or physical-device entry path.\nAC:L - A single multithreaded attacker can loop getdents on events/ or events/kprobes/ while concurrently adding/removing kprobes via kprobe_events writes that call eventfs_remove_dir; the attacker controls both the SRCU list walk and the free path, making the race reliably triggerable.\nPR:L - Exploitation needs only local tracefs read/write access (getdents plus kprobe_events to create/remove eventfs children); kprobe_events checks only LOCKDOWN_TRACEFS and DAC with no capable(), and tracing-group gid mounts, Android/ChromeOS, and developer systems commonly grant this to unprivileged users.\nUI:N - The attacker performs all concurrent directory reads and dynamic event removals in their own process; no separate victim mount, click, or configuration action is required beyond tracefs already being accessible on the system.\nS:U - The union misuse causes kernel heap/list corruption and use-after-free within the tracing filesystem subsystem on the same host; it does not cross VM, container, IOMMU, or other security boundaries to affect a different authority.\nC:H - During list_for_each_entry_srcu over ei-\u003echildren, a concurrently freed child repurposes ei-\u003elist (union with rcu_head) for SRCU teardown, so the iterator follows corrupt list pointers and dereferences freed or attacker-influenced kernel memory typical of UAF read primitives.\nI:H - Corrupt SRCU list traversal over freed eventfs_inode objects is classic kernel UAF memory corruption that can be combined with heap grooming from repeated kprobe create/delete to obtain arbitrary kernel writes and local privilege escalation, not merely a bounded crash.\nA:H - Following a child\u0027s list.next after the list/rcu union is switched during free_ei() readily causes invalid pointer dereferences, kernel oops, or panic; the race can be retriggered at will by alternating getdents with dynamic event teardown."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:03.903Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/25d27d5fa8645ab61018c3efec5c69f49280ca7d"
},
{
"url": "https://git.kernel.org/stable/c/1b95382da85cff3bf0f922ff0275f186abdadfce"
},
{
"url": "https://git.kernel.org/stable/c/2b80707b9e27671e10840d17c6f8f774c4ad9847"
},
{
"url": "https://git.kernel.org/stable/c/004f7232e49730448f91665e76bdd7dff8e0c638"
},
{
"url": "https://git.kernel.org/stable/c/f0ece16ffca7384787b692431961ce202907acf5"
}
],
"title": "eventfs: Use children field for rcu head and add memory barriers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74605",
"datePublished": "2026-08-22T15:31:53.063Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-21T12:46:03.903Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74391 (GCVE-0-2026-74391)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-08-17 05:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Bound synthetic-field strings with seq_buf
The synthetic field helpers build a prefixed synthetic variable name and
a generated hist command in fixed MAX_FILTER_STR_VAL buffers. The
current code appends those strings with raw strcat(), so long key lists,
field names, or saved filters can run past the end of the staging
buffers.
Build both strings with seq_buf and propagate -E2BIG if either the
synthetic variable name or the generated command exceeds
MAX_FILTER_STR_VAL. This keeps the existing tracing-side limit while
using the helper intended for bounded command construction.
[ sdr: Moved struct seq_buf *s for upside-down x-mas tree formatting ]
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events_hist.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0c584c27f6649a93ec12061cc779a4bd8f7c1434",
"status": "affected",
"version": "02205a6752f223779a1b0e9e8ffacbea6e717851",
"versionType": "git"
},
{
"lessThan": "88b901fdc1662b131ff908cbd017333b61e7acc8",
"status": "affected",
"version": "02205a6752f223779a1b0e9e8ffacbea6e717851",
"versionType": "git"
},
{
"lessThan": "baa333b2700a7fa3529d504529c8c10060fd687c",
"status": "affected",
"version": "02205a6752f223779a1b0e9e8ffacbea6e717851",
"versionType": "git"
},
{
"lessThan": "cf334620036ad2250e008c7e7bb6646a3938b7b0",
"status": "affected",
"version": "02205a6752f223779a1b0e9e8ffacbea6e717851",
"versionType": "git"
},
{
"lessThan": "f07883450eb14d1cf020b55d9f3a7ec5683bcd26",
"status": "affected",
"version": "02205a6752f223779a1b0e9e8ffacbea6e717851",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events_hist.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Bound synthetic-field strings with seq_buf\n\nThe synthetic field helpers build a prefixed synthetic variable name and\na generated hist command in fixed MAX_FILTER_STR_VAL buffers. The\ncurrent code appends those strings with raw strcat(), so long key lists,\nfield names, or saved filters can run past the end of the staging\nbuffers.\n\nBuild both strings with seq_buf and propagate -E2BIG if either the\nsynthetic variable name or the generated command exceeds\nMAX_FILTER_STR_VAL. This keeps the existing tracing-side limit while\nusing the helper intended for bounded command construction.\n\n[ sdr: Moved struct seq_buf *s for upside-down x-mas tree formatting ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:18:30.085Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0c584c27f6649a93ec12061cc779a4bd8f7c1434"
},
{
"url": "https://git.kernel.org/stable/c/88b901fdc1662b131ff908cbd017333b61e7acc8"
},
{
"url": "https://git.kernel.org/stable/c/baa333b2700a7fa3529d504529c8c10060fd687c"
},
{
"url": "https://git.kernel.org/stable/c/cf334620036ad2250e008c7e7bb6646a3938b7b0"
},
{
"url": "https://git.kernel.org/stable/c/f07883450eb14d1cf020b55d9f3a7ec5683bcd26"
}
],
"title": "tracing: Bound synthetic-field strings with seq_buf",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74391",
"datePublished": "2026-08-15T05:59:05.127Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-08-17T05:18:30.085Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68451 (GCVE-0-2026-68451)
Vulnerability from cvelistv5
Published
2026-08-13 13:59
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Validate length for CCA ECC private key requests
cca_ecc2protkey() derives the copy length for the CPRB parameter
block directly from the length field in the key token. Reject the
request early if the token length exceeds the available space in the
parameter block.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 Version: fa6999e326fe7851ecbd572b8cb9be8e930ebf41 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68451",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:11.874669Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-120",
"description": "CWE-120 Buffer Copy without Checking Size of Input (\u0027Classic Buffer Overflow\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:10.945Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7dc306ff7c4d951582adaae65e0aee9fb4968dbe",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "447a37a6bef11bfd3645069e380460b11386e2b9",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "f0831f13c42c1261d449dcee8a035e1c6cd9fcaa",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "dd25bd9b0f36849808bd7625dcc59dd4c1aeef3e",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "ecc3b8691c1935f9f3e4eb964ab11e40fdec17f5",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "013a4484f061a2b41f052e25c0015203287e63f1",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "8fa3e9435a13c335efb63fb4f4e77531a0031159",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
},
{
"lessThan": "a9ae0f6dd45c3ccc1d69363f7aea8af179122730",
"status": "affected",
"version": "fa6999e326fe7851ecbd572b8cb9be8e930ebf41",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: Validate length for CCA ECC private key requests\n\ncca_ecc2protkey() derives the copy length for the CPRB parameter\nblock directly from the length field in the key token. Reject the\nrequest early if the token length exceeds the available space in the\nparameter block."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached through the `/dev/pkey` misc device via the PKEY_KBLOB2PROTK/PROTK2/PROTK3 ioctls, requiring local access to the s390 system; there is no remote or network-facing path into cca_ecc2protkey().\nAC:L - The attacker fully controls both the overflow length and the overflowing bytes by crafting the ECC key token\u0027s `len` field and blob contents, and the memcpy executes deterministically on every call with no race, timing, or layout precondition.\nPR:L - The pkey misc device is registered with mode 0666 and pkey_unlocked_ioctl performs no capability check, so any unprivileged local user (or a container/sandbox process with the node visible) can issue the ioctl.\nUI:N - The attacker triggers the overflow entirely from its own ioctl call; no action by another user or administrator is needed.\nS:U - The heap corruption occurs in kernel memory within the same security authority; no VM, IOMMU, or other trust boundary is crossed by the overflow itself.\nC:H - The controlled slab overflow can overwrite adjacent kernel objects (pointers, lengths, credentials) with attacker-chosen data, which is readily leveraged into arbitrary kernel memory disclosure, including protected/secure key material handled by this subsystem.\nI:H - memcpy() writes up to ~7 KB of fully attacker-controlled data past a kmalloc\u0027d CPRB buffer, giving a classic controlled heap out-of-bounds write usable for corrupting neighbouring slab objects and achieving privilege escalation or control-flow hijack.\nA:H - Even without reliable exploitation, the oversized memcpy smashes the slab and neighbouring allocations, causing memory corruption, SLUB/redzone BUG detonations, oops or kernel panic, repeatedly triggerable by an unprivileged user."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:35:48.084Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7dc306ff7c4d951582adaae65e0aee9fb4968dbe"
},
{
"url": "https://git.kernel.org/stable/c/447a37a6bef11bfd3645069e380460b11386e2b9"
},
{
"url": "https://git.kernel.org/stable/c/f0831f13c42c1261d449dcee8a035e1c6cd9fcaa"
},
{
"url": "https://git.kernel.org/stable/c/dd25bd9b0f36849808bd7625dcc59dd4c1aeef3e"
},
{
"url": "https://git.kernel.org/stable/c/ecc3b8691c1935f9f3e4eb964ab11e40fdec17f5"
},
{
"url": "https://git.kernel.org/stable/c/013a4484f061a2b41f052e25c0015203287e63f1"
},
{
"url": "https://git.kernel.org/stable/c/8fa3e9435a13c335efb63fb4f4e77531a0031159"
},
{
"url": "https://git.kernel.org/stable/c/a9ae0f6dd45c3ccc1d69363f7aea8af179122730"
}
],
"title": "s390/zcrypt: Validate length for CCA ECC private key requests",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68451",
"datePublished": "2026-08-13T13:59:53.674Z",
"dateReserved": "2026-07-30T09:28:09.395Z",
"dateUpdated": "2026-10-19T21:09:10.945Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72435 (GCVE-0-2026-72435)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: fix order of kfree_rcu() and rcu_assign_pointer()
Sashiko pointed out that kfree_rcu() was called before
rcu_assign_pointer() in handling the comment extension.
Fix the order so that rcu_assign_pointer() called first.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 Version: b57b2d1fa53fe8563bdfc66a33b844463b9af285 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72435",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:54.310798Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:23.893Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c9787d7c24ffd83019f379455e1b97fb4f0f75eb",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "6e98407cb94e035bba98956adc9096a76d8b2a9f",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "50b70f56f3baaff46599f59b2d93fa2540120776",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "d01b4b471f0fc5c396af62845e972ccf99cee29a",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "fcb565966534909377a16be5f7b065db2e25c8b5",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "8087bb360a936a6314d22b567e4b861656943eb6",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "93a775fd67f3ef34949a9523bfa69403ee74efdd",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
},
{
"lessThan": "3ca9982a8882470aa0ac4e8bb9a552b181d1efcd",
"status": "affected",
"version": "b57b2d1fa53fe8563bdfc66a33b844463b9af285",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: fix order of kfree_rcu() and rcu_assign_pointer()\n\nSashiko pointed out that kfree_rcu() was called before\nrcu_assign_pointer() in handling the comment extension.\nFix the order so that rcu_assign_pointer() called first."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through nfnetlink IPSET commands (ADD/DEL/LIST/SAVE) on NETLINK_GENERIC; nfnetlink_rcv() requires CAP_NET_ADMIN and no remote packet path feeds comment free/replace, so kernel CNA guidance treats netfilter/ipset netlink as Local.\nAC:L - LIST/SAVE dump runs asynchronously without holding the nfnl mutex while mtype_list holds rcu_read_lock and calls ip_set_put_comment; an attacker with CAP_NET_ADMIN can concurrently issue ADD/--exist comment replacement, DEL/flush, or timeout GC to hit the kfree_rcu-before-NULL ordering reliably.\nPR:L - nfnetlink_rcv() gates every ipset command on netlink_net_capable(skb, CAP_NET_ADMIN), which resolves to ns_capable(sock_net()-\u003euser_ns, CAP_NET_ADMIN); unprivileged users obtain this inside a user/network namespace via unshare -Urn and fully control per-netns ipset configuration.\nUI:N - Exploitation is fully attacker-driven through netlink: create a comment-enabled set, start LIST/SAVE dump, and concurrently add/delete/flush elements or let timeout GC run; no victim click, mount, or other deliberate action is required beyond ordinary local control.\nS:U - The RCU use-after-free corrupts kernel heap memory and can yield host privilege escalation or crash, but impact stays within the same kernel security authority and does not cross VM/host, container/host, or IOMMU boundaries.\nC:H - Calling kfree_rcu() before rcu_assign_pointer(NULL) lets dump readers under rcu_read_lock still rcu_dereference(comment-\u003ec) and nla_put_string() reads freed ip_set_comment_rcu kmalloc memory\u2014a classic UAF read usable for arbitrary kernel disclosure with heap grooming.\nI:H - Concurrent free and replacement of RCU-managed comment objects lets an attacker reclaim and control freed slab memory, providing standard paths to arbitrary kernel writes, metadata corruption, and control-flow hijack rather than a bounded or crash-only integrity effect.\nA:H - Stale comment pointer dereference during dump or subsequent slab reuse can immediately kernel-oops or panic the host, and the underlying UAF heap corruption can crash or hang the system even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:10.925Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c9787d7c24ffd83019f379455e1b97fb4f0f75eb"
},
{
"url": "https://git.kernel.org/stable/c/6e98407cb94e035bba98956adc9096a76d8b2a9f"
},
{
"url": "https://git.kernel.org/stable/c/50b70f56f3baaff46599f59b2d93fa2540120776"
},
{
"url": "https://git.kernel.org/stable/c/d01b4b471f0fc5c396af62845e972ccf99cee29a"
},
{
"url": "https://git.kernel.org/stable/c/fcb565966534909377a16be5f7b065db2e25c8b5"
},
{
"url": "https://git.kernel.org/stable/c/8087bb360a936a6314d22b567e4b861656943eb6"
},
{
"url": "https://git.kernel.org/stable/c/93a775fd67f3ef34949a9523bfa69403ee74efdd"
},
{
"url": "https://git.kernel.org/stable/c/3ca9982a8882470aa0ac4e8bb9a552b181d1efcd"
}
],
"title": "netfilter: ipset: fix order of kfree_rcu() and rcu_assign_pointer()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72435",
"datePublished": "2026-08-15T05:56:49.402Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-10-16T18:55:23.893Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72086 (GCVE-0-2026-72086)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-08-17 05:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: xen: scsiback: Free the command tag on the TMR submit-failure path
scsiback_device_action() obtains a command tag in
scsiback_get_pend_req() and submits a task-management request with
target_submit_tmr(). When target_submit_tmr() fails it returns < 0 and
scsiback jumps to the err: label, which sends a response but frees
nothing, leaking the tag.
Impact: a pvSCSI guest can leak the command tags of a LUN's session,
stopping the LUN, by issuing VSCSIIF_ACT_SCSI_ABORT or RESET requests
whenever target_submit_tmr() fails.
transport_generic_free_cmd() cannot be used here. By the time
target_submit_tmr() returns an error it has already run
__target_init_cmd() (so se_cmd->cmd_kref is one, not zero), and on its
target_get_sess_cmd() error path it has freed se_cmd->se_tmr_req via
core_tmr_release_req() while leaving SCF_SCSI_TMR_CDB set and the
pointer dangling. Letting the command release run target_free_cmd_mem()
would then double-free se_tmr_req.
Use the same helper, which returns just the tag, on this path too.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e Version: 2dbcdf33dbf61f44b29adb52338282c3d7840d0e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/xen/xen-scsiback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4567ce79fe2f84c3dcc3a91b22a377cf482d33ad",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "6c01f0439098f00a64b246dc27479602201382f7",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "18d4f86816592586b38513543b5e1f9553bc271f",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "fbc1bdede66d0f2cde83b75d6524ce1a815bb69f",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "255fb7b0cdc947b1c01929c7f133281342a3a6b5",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "1357fb32d42ad8da193e6da285f09e6452feabda",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
},
{
"lessThan": "66aefc277ebb796ec285d550305535dc3fc0179f",
"status": "affected",
"version": "2dbcdf33dbf61f44b29adb52338282c3d7840d0e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/xen/xen-scsiback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: xen: scsiback: Free the command tag on the TMR submit-failure path\n\nscsiback_device_action() obtains a command tag in\nscsiback_get_pend_req() and submits a task-management request with\ntarget_submit_tmr(). When target_submit_tmr() fails it returns \u003c 0 and\nscsiback jumps to the err: label, which sends a response but frees\nnothing, leaking the tag.\n\nImpact: a pvSCSI guest can leak the command tags of a LUN\u0027s session,\nstopping the LUN, by issuing VSCSIIF_ACT_SCSI_ABORT or RESET requests\nwhenever target_submit_tmr() fails.\n\ntransport_generic_free_cmd() cannot be used here. By the time\ntarget_submit_tmr() returns an error it has already run\n__target_init_cmd() (so se_cmd-\u003ecmd_kref is one, not zero), and on its\ntarget_get_sess_cmd() error path it has freed se_cmd-\u003ese_tmr_req via\ncore_tmr_release_req() while leaving SCF_SCSI_TMR_CDB set and the\npointer dangling. Letting the command release run target_free_cmd_mem()\nwould then double-free se_tmr_req.\n\nUse the same helper, which returns just the tag, on this path too."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:07:56.806Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4567ce79fe2f84c3dcc3a91b22a377cf482d33ad"
},
{
"url": "https://git.kernel.org/stable/c/6c01f0439098f00a64b246dc27479602201382f7"
},
{
"url": "https://git.kernel.org/stable/c/18d4f86816592586b38513543b5e1f9553bc271f"
},
{
"url": "https://git.kernel.org/stable/c/fbc1bdede66d0f2cde83b75d6524ce1a815bb69f"
},
{
"url": "https://git.kernel.org/stable/c/255fb7b0cdc947b1c01929c7f133281342a3a6b5"
},
{
"url": "https://git.kernel.org/stable/c/1357fb32d42ad8da193e6da285f09e6452feabda"
},
{
"url": "https://git.kernel.org/stable/c/66aefc277ebb796ec285d550305535dc3fc0179f"
}
],
"title": "scsi: xen: scsiback: Free the command tag on the TMR submit-failure path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72086",
"datePublished": "2026-08-15T05:52:34.822Z",
"dateReserved": "2026-08-09T03:40:39.905Z",
"dateUpdated": "2026-08-17T05:07:56.806Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72282 (GCVE-0-2026-72282)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers
kvm_io_bus_get_dev() returns a device that is only matched by the
address, and nothing else. This can cause a lifetime issue if
the matched device is not the expected type, as by the time
the caller can introspect the object, it might be gone (the srcu
lock having been dropped).
Given that there is only a single user of this helper, the simplest
option is to move the locking responsibility to the caller, which
can keep the srcu lock held for as long as it wants.
Note that this aligns with other kvm_io_bus*() helpers, which
already require the srcu lock to be held by the callers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72282",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:45:38.940544Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:14.491Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-its.c",
"virt/kvm/kvm_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f398b7d92cd999191249830b9171c9bd787a9a91",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "1b4a3c2f0509e7b0e65667f3c36676a849ee2755",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "cfe107b02a3c3f049e0dc15b6a36625f048eda2a",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "90d35d2b8e47afd68fe2a4dd0eeb60bc71641775",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "e01071ea006c9b952125ed8b0cc90ac7bd356cce",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "7099e7148f81c605bbc319b16ce0131540341560",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
},
{
"lessThan": "3a07249981629ace483ebbef81ef6b34c2d2afec",
"status": "affected",
"version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-its.c",
"virt/kvm/kvm_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: Move kvm_io_bus_get_dev() locking responsibilities to callers\n\nkvm_io_bus_get_dev() returns a device that is only matched by the\naddress, and nothing else. This can cause a lifetime issue if\nthe matched device is not the expected type, as by the time\nthe caller can introspect the object, it might be gone (the srcu\nlock having been dropped).\n\nGiven that there is only a single user of this helper, the simplest\noption is to move the locking responsibility to the caller, which\ncan keep the srcu lock held for as long as it wants.\n\nNote that this aligns with other kvm_io_bus*() helpers, which\nalready require the srcu lock to be held by the callers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via host-local KVM VM file descriptor ioctls (KVM_SIGNAL_MSI, KVM_IRQFD/eventfd MSI routing) and related in-kernel MSI injection paths on arm64 GICv3 ITS; there is no network, adjacent-radio, or physical-device packet path to kvm_io_bus_get_dev() or __vgic_doorbell_to_its().\nAC:L - Exploitation is a race where the attacker runs concurrent KVM_SIGNAL_MSI/irqfd MSI injection against vCPU teardown or VM shutdown that unregisters the matched MMIO device; the attacker controls both threads and can retry until the window is hit, so success does not depend on conditions outside attacker influence.\nPR:L - Triggering requires local access to a KVM VM fd (typically via /dev/kvm membership or equivalent host-local VM management rights), not remote authentication; this is low-privilege local access comparable to other namespace-reachable capabilities, not init-namespace root exclusively.\nUI:N - Exploitation is fully automated through concurrent ioctl/eventfd activity and does not require any victim user action such as opening files, mounting filesystems, or interacting with the guest.\nS:U - The vulnerable code runs in the host kernel on behalf of the VM owner/VMM; impact is host kernel memory corruption and privilege escalation within the same host security authority, not a direct guest-to-host VM escape across the guest/host boundary without prior host-side KVM access.\nC:H - This is a kernel use-after-free on a returned kvm_io_device/vgic_io_device pointer accessed after SRCU is dropped (ops pointer and container_of introspection), which can disclose kernel heap contents and be weaponized into arbitrary read primitives.\nI:H - UAF on emulated GIC MMIO device objects allows corrupting freed heap objects and hijacking function pointers/structure fields during type checking and follow-on ITS MSI handling, enabling arbitrary kernel write and local privilege escalation.\nA:H - The UAF can cause immediate kernel oops/panic from dereferencing freed kvm_io_device memory during concurrent device unregistration, and repeated triggering can reliably deny availability even before full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:17.093Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f398b7d92cd999191249830b9171c9bd787a9a91"
},
{
"url": "https://git.kernel.org/stable/c/1b4a3c2f0509e7b0e65667f3c36676a849ee2755"
},
{
"url": "https://git.kernel.org/stable/c/cfe107b02a3c3f049e0dc15b6a36625f048eda2a"
},
{
"url": "https://git.kernel.org/stable/c/90d35d2b8e47afd68fe2a4dd0eeb60bc71641775"
},
{
"url": "https://git.kernel.org/stable/c/e01071ea006c9b952125ed8b0cc90ac7bd356cce"
},
{
"url": "https://git.kernel.org/stable/c/7099e7148f81c605bbc319b16ce0131540341560"
},
{
"url": "https://git.kernel.org/stable/c/0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa"
},
{
"url": "https://git.kernel.org/stable/c/3a07249981629ace483ebbef81ef6b34c2d2afec"
}
],
"title": "KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72282",
"datePublished": "2026-08-15T05:55:06.307Z",
"dateReserved": "2026-08-09T03:40:39.916Z",
"dateUpdated": "2026-10-16T18:55:14.491Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74473 (GCVE-0-2026-74473)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: use pskb_network_may_pull() in route_shortcircuit()
route_shortcircuit() currently calls pskb_may_pull(skb, sizeof(struct iphdr))
(or ipv6hdr), which checks if bytes are available starting from skb->data.
However, in vxlan_xmit(), skb->data points to the MAC header, so
skb_network_offset(skb) is ETH_HLEN (14 bytes). Using pskb_may_pull(skb, 20)
only checks 20 bytes from skb->data (which is 14 bytes MAC header + 6 bytes of
IP header), leaving the rest of the IP header potentially un-pulled in non-linear
frags. Subsequent dereferences of ip_hdr(skb)->daddr can read beyond the pulled
linear buffer length.
Fix this by using pskb_network_may_pull(), which adds skb_network_offset(skb) to
the length check to ensure the full network header is present in the linear buffer.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74473",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:24.199754Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:47.966Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c419af4924c1593500a40519730ed98575d04a3e",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "6bd0a3a1b5744166946f0c551a6665c3b46b05e4",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "214ba43faf106cb06cd3dd30999c5c809c868b53",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "42887be7c4cf283cce02cd0fb6411221167c8b6c",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "aa0d31376d574ac858a40078431a77127bf04ee4",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "ee799977d7941dbfb11049e17edd9eaf4f8820f7",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "4f3f96e771a20263635bb5e1307c112d613b4bbd",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "26bb2dd0a8839617e2c79ffbbe1923f8e4bab9fb",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.8"
},
{
"lessThan": "3.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: use pskb_network_may_pull() in route_shortcircuit()\n\nroute_shortcircuit() currently calls pskb_may_pull(skb, sizeof(struct iphdr))\n(or ipv6hdr), which checks if bytes are available starting from skb-\u003edata.\n\nHowever, in vxlan_xmit(), skb-\u003edata points to the MAC header, so\nskb_network_offset(skb) is ETH_HLEN (14 bytes). Using pskb_may_pull(skb, 20)\nonly checks 20 bytes from skb-\u003edata (which is 14 bytes MAC header + 6 bytes of\nIP header), leaving the rest of the IP header potentially un-pulled in non-linear\nfrags. Subsequent dereferences of ip_hdr(skb)-\u003edaddr can read beyond the pulled\nlinear buffer length.\n\nFix this by using pskb_network_may_pull(), which adds skb_network_offset(skb) to\nthe length check to ensure the full network header is present in the linear buffer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - route_shortcircuit() runs in vxlan_xmit() during overlay transmit; remote packets forwarded or routed onto a VXLAN netdev with route-short-circuit enabled reach this path without local access, matching net-stack guidance for network-reachable packet processing on cloud/SDN nodes.\nAC:L - An attacker can reliably craft non-linear skbs (scatter/gather/frags and size boundaries) and aim traffic at a known router MAC in the VXLAN FDB; no race or uncontrollable memory layout is required beyond targeting an RSC-enabled deployment, which is the scored scenario.\nPR:N - Exploitation needs no credentials or capabilities on the victim when VXLAN RSC is already configured; a remote peer only has to send IPv4/IPv6 frames that traverse the tunnel transmit path, with no netlink setup or CAP_NET_ADMIN in the target namespace.\nUI:N - Triggering the bug requires only attacker-controlled network traffic through the overlay; no victim mount, file open, link click, or other interactive action is needed.\nS:U - Impact is confined to the kernel hosting the VXLAN endpoint (memory disclosure, packet-header corruption, or crash); it does not cross VM, container, or IOMMU security boundaries by itself.\nC:H - The faulty pskb_may_pull() check leaves the IP/IPv6 header in non-linear frags, so ip_hdr(skb)-\u003edaddr/ipv6 daddr is read past the linear head and can disclose adjacent kernel memory per OOB-read guidance.\nI:H - The out-of-bounds destination address feeds neigh_lookup() and may rewrite eth_hdr()-\u003eh_dest before encapsulation, giving attacker-influenced overlay forwarding and a memory-safety primitive in the transmit path.\nA:H - Dereferencing network-header fields beyond the pulled linear buffer can provoke kernel oops/panic on affected skb layouts, and OOB reads in xmit context are treated as high availability impact even when exploitation is not fully weaponized."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:25.639Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c419af4924c1593500a40519730ed98575d04a3e"
},
{
"url": "https://git.kernel.org/stable/c/6bd0a3a1b5744166946f0c551a6665c3b46b05e4"
},
{
"url": "https://git.kernel.org/stable/c/214ba43faf106cb06cd3dd30999c5c809c868b53"
},
{
"url": "https://git.kernel.org/stable/c/42887be7c4cf283cce02cd0fb6411221167c8b6c"
},
{
"url": "https://git.kernel.org/stable/c/aa0d31376d574ac858a40078431a77127bf04ee4"
},
{
"url": "https://git.kernel.org/stable/c/ee799977d7941dbfb11049e17edd9eaf4f8820f7"
},
{
"url": "https://git.kernel.org/stable/c/4f3f96e771a20263635bb5e1307c112d613b4bbd"
},
{
"url": "https://git.kernel.org/stable/c/26bb2dd0a8839617e2c79ffbbe1923f8e4bab9fb"
}
],
"title": "vxlan: use pskb_network_may_pull() in route_shortcircuit()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74473",
"datePublished": "2026-08-15T12:27:09.382Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-10-16T19:05:47.966Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97477 (GCVE-0-2026-97477)
Vulnerability from cvelistv5
Published
2026-09-24 16:04
Modified
2026-10-21 12:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/counter: Fix num_counters leak on bind_qp failure in alloc_and_bind()
When __rdma_counter_bind_qp() fails in alloc_and_bind(), the error path
jumps to err_mode which frees the counter without decrementing
port_counter->num_counters. The only place that decrements is
rdma_counter_free(), which is unreachable since the counter was never
successfully bound.
This leak accumulates across repeated failures, permanently preventing
the port from switching to AUTO mode (-EBUSY in __counter_set_mode())
and blocking the MANUAL→NONE auto-revert in rdma_counter_free(). When
the mode was NONE before the call, the MANUAL mode set by
__counter_set_mode() also leaks since the revert logic is never
reached.
Add an err_bind label between the num_counters increment and the
existing err_mode label. It decrements num_counters and mirrors the
MANUAL→NONE revert from rdma_counter_free(), ensuring the port state
is fully restored on bind failure.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/counters.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7c9fee40fc8d8d928f44e99bc6e6adf93f9f2c2a",
"status": "affected",
"version": "8bc205eff3056a9ed3850937cdd2192f05e6d3cb",
"versionType": "git"
},
{
"lessThan": "1bcdeddddffadff9993657f6b0e5535d66ebd10f",
"status": "affected",
"version": "8bc205eff3056a9ed3850937cdd2192f05e6d3cb",
"versionType": "git"
},
{
"lessThan": "da95cb016812c0e012ea839f191926e35ca8f57f",
"status": "affected",
"version": "8bc205eff3056a9ed3850937cdd2192f05e6d3cb",
"versionType": "git"
},
{
"lessThan": "4fbc8230009f5b1bcd13cc74c5a6a43ddba141fd",
"status": "affected",
"version": "8bc205eff3056a9ed3850937cdd2192f05e6d3cb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/counters.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/counter: Fix num_counters leak on bind_qp failure in alloc_and_bind()\n\nWhen __rdma_counter_bind_qp() fails in alloc_and_bind(), the error path\njumps to err_mode which frees the counter without decrementing\nport_counter-\u003enum_counters. The only place that decrements is\nrdma_counter_free(), which is unreachable since the counter was never\nsuccessfully bound.\n\nThis leak accumulates across repeated failures, permanently preventing\nthe port from switching to AUTO mode (-EBUSY in __counter_set_mode())\nand blocking the MANUAL\u2192NONE auto-revert in rdma_counter_free(). When\nthe mode was NONE before the call, the MANUAL mode set by\n__counter_set_mode() also leaks since the revert logic is never\nreached.\n\nAdd an err_bind label between the num_counters increment and the\nexisting err_mode label. It decrements num_counters and mirrors the\nMANUAL\u2192NONE revert from rdma_counter_free(), ensuring the port state\nis fully restored on bind failure."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:52:48.541Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7c9fee40fc8d8d928f44e99bc6e6adf93f9f2c2a"
},
{
"url": "https://git.kernel.org/stable/c/1bcdeddddffadff9993657f6b0e5535d66ebd10f"
},
{
"url": "https://git.kernel.org/stable/c/da95cb016812c0e012ea839f191926e35ca8f57f"
},
{
"url": "https://git.kernel.org/stable/c/4fbc8230009f5b1bcd13cc74c5a6a43ddba141fd"
}
],
"title": "RDMA/counter: Fix num_counters leak on bind_qp failure in alloc_and_bind()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97477",
"datePublished": "2026-09-24T16:04:19.358Z",
"dateReserved": "2026-09-24T16:01:01.149Z",
"dateUpdated": "2026-10-21T12:52:48.541Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45836 (GCVE-0-2026-45836)
Vulnerability from cvelistv5
Published
2026-05-26 16:14
Modified
2026-10-15 01:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_get_sndtimeo_cb()
Add the same NULL guard already present in
l2cap_sock_resume_cb() and l2cap_sock_ready_cb().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 Version: 8d836d71e2223b8961b21112bb4ce89ef8231682 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:19:39.061Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/l2cap_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fd072f833147b0bc10c43a454624cb99d02f3fc7",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "6e8d1a2a677a81caa60cf0aabd4217bd585fbba1",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "e1863e7480feddb90125d0dd5a1b572972d75908",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "cf1fd517f892ded88168df878f834b625133f86d",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "58dc5e3d8768e121907608e6e196a908512fb083",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "32bd343803d4ba47cc516f9d5f037f01b855d767",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "a93d66907dd4d29b65c9797a93784bf61906d6d6",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
},
{
"lessThan": "78a88d43dab8d23aeef934ed8ce34d40e6b3d613",
"status": "affected",
"version": "8d836d71e2223b8961b21112bb4ce89ef8231682",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/l2cap_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.13"
},
{
"lessThan": "3.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.140",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.90",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.30",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.140",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.90",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.30",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.7",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_get_sndtimeo_cb()\n\nAdd the same NULL guard already present in\nl2cap_sock_resume_cb() and l2cap_sock_ready_cb()."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-14T17:45:57.724Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fd072f833147b0bc10c43a454624cb99d02f3fc7"
},
{
"url": "https://git.kernel.org/stable/c/6e8d1a2a677a81caa60cf0aabd4217bd585fbba1"
},
{
"url": "https://git.kernel.org/stable/c/e1863e7480feddb90125d0dd5a1b572972d75908"
},
{
"url": "https://git.kernel.org/stable/c/cf1fd517f892ded88168df878f834b625133f86d"
},
{
"url": "https://git.kernel.org/stable/c/58dc5e3d8768e121907608e6e196a908512fb083"
},
{
"url": "https://git.kernel.org/stable/c/32bd343803d4ba47cc516f9d5f037f01b855d767"
},
{
"url": "https://git.kernel.org/stable/c/a93d66907dd4d29b65c9797a93784bf61906d6d6"
},
{
"url": "https://git.kernel.org/stable/c/78a88d43dab8d23aeef934ed8ce34d40e6b3d613"
}
],
"title": "Bluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_get_sndtimeo_cb()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-45836",
"datePublished": "2026-05-26T16:14:13.568Z",
"dateReserved": "2026-05-13T15:03:33.077Z",
"dateUpdated": "2026-10-15T01:19:39.061Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72330 (GCVE-0-2026-72330)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/tls: Consume empty data records in tls_sw_read_sock()
A peer may send a zero-length TLS application_data record; TLS 1.3
explicitly permits these as a traffic-analysis countermeasure (RFC
8446, Section 5.1). After decryption such a record has full_len ==
0. tls_sw_read_sock() hands it to the read_actor, which has no
payload to consume and returns zero. The loop treats a zero return
as backpressure (used <= 0), requeues the skb at the head of
rx_list, and stops. rx_list is serviced head-first on the next
call, so the empty record is dequeued, fails the same way, and is
requeued again; every later record on the connection is blocked
behind it.
tls_sw_recvmsg() does not stall on this: a zero-length data record
copies nothing and falls through to consume_skb(). Mirror that in
the read_sock() path by recognizing an empty data record before
the actor runs, consuming it, and continuing.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72330",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:08.220194Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:18.242Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0867b0f2513ebc1c475af9898c97f4772a68d964",
"status": "affected",
"version": "662fbcec32f4af6bdcf5b4006b792ebe9543d945",
"versionType": "git"
},
{
"lessThan": "c6b440cf766a557b08d25f1b571b3d57d039686e",
"status": "affected",
"version": "662fbcec32f4af6bdcf5b4006b792ebe9543d945",
"versionType": "git"
},
{
"lessThan": "e8a4c9fc437b16aef38f86ce3275677e36924259",
"status": "affected",
"version": "662fbcec32f4af6bdcf5b4006b792ebe9543d945",
"versionType": "git"
},
{
"lessThan": "ebc295ce343600c2d60c1e1e0c5d192080217457",
"status": "affected",
"version": "662fbcec32f4af6bdcf5b4006b792ebe9543d945",
"versionType": "git"
},
{
"lessThan": "3be28e2c9cd0230cb51fd4967df095273afd3848",
"status": "affected",
"version": "662fbcec32f4af6bdcf5b4006b792ebe9543d945",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/tls: Consume empty data records in tls_sw_read_sock()\n\nA peer may send a zero-length TLS application_data record; TLS 1.3\nexplicitly permits these as a traffic-analysis countermeasure (RFC\n8446, Section 5.1). After decryption such a record has full_len ==\n0. tls_sw_read_sock() hands it to the read_actor, which has no\npayload to consume and returns zero. The loop treats a zero return\nas backpressure (used \u003c= 0), requeues the skb at the head of\nrx_list, and stops. rx_list is serviced head-first on the next\ncall, so the empty record is dequeued, fails the same way, and is\nrequeued again; every later record on the connection is blocked\nbehind it.\n\ntls_sw_recvmsg() does not stall on this: a zero-length data record\ncopies nothing and falls through to consume_skb(). Mirror that in\nthe read_sock() path by recognizing an empty data record before\nthe actor runs, consuming it, and continuing."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote TLS peer sends zero-length TLS 1.3 application_data records over TCP; they are decrypted in the kTLS software RX path and processed in tls_sw_read_sock(), reachable from network-facing consumers such as NVMe-over-TCP host I/O via sock-\u003eops-\u003eread_sock.\nAC:L - After a normal TLS handshake, sending a standards-compliant zero-length application_data record reliably reproduces the stall; no races, special memory layout, or rare timing are required.\nPR:N - Exploitation requires only being the remote TLS peer on an established kTLS connection (e.g. a malicious NVMe-oF target); no local account, capability, namespace, or administrator privileges on the victim host are needed.\nUI:N - No victim user action beyond the system maintaining its normal encrypted network connection; the attacker triggers the flaw by sending protocol-valid TLS records.\nS:U - Impact is confined to stalling the affected TLS/kTLS connection and its dependent service I/O; it does not cross a security boundary such as guest-to-host escape or sandbox breakout.\nC:N - The flaw is a receive-path logic error that requeues an empty skb indefinitely; there is no out-of-bounds access, use-after-free, or other memory corruption that could disclose kernel or application data.\nI:N - The bug does not modify kernel memory, credentials, or application data; it only prevents forward progress on the stalled connection by blocking consumption of subsequent decrypted records.\nA:H - The empty record is permanently requeued at the head of rx_list, creating a repeatable deadlock that blocks all later traffic on the connection and can hang NVMe-over-TCP (or similar read_sock) I/O until the connection is torn down."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:52.302Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0867b0f2513ebc1c475af9898c97f4772a68d964"
},
{
"url": "https://git.kernel.org/stable/c/c6b440cf766a557b08d25f1b571b3d57d039686e"
},
{
"url": "https://git.kernel.org/stable/c/e8a4c9fc437b16aef38f86ce3275677e36924259"
},
{
"url": "https://git.kernel.org/stable/c/ebc295ce343600c2d60c1e1e0c5d192080217457"
},
{
"url": "https://git.kernel.org/stable/c/3be28e2c9cd0230cb51fd4967df095273afd3848"
}
],
"title": "net/tls: Consume empty data records in tls_sw_read_sock()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72330",
"datePublished": "2026-08-15T05:55:40.555Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-16T18:55:18.242Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89511 (GCVE-0-2026-89511)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
qede: Fix NULL pointer dereference in TPA fragment processing
Under memory pressure, the qede driver encounters NULL pointer
dereferences when processing TPA continuation fragments.
Commit 8a8633978b84 ("qede: Add build_skb() support.") accidentally
dropped the assignment of tpa_info->buffer.data in qede_tpa_start().
When memory pressure causes an SKB allocation failure in qede_tpa_start(),
the driver sets tpa_start_fail = true and attempts to recycle the physical
page later in qede_tpa_end() via qede_reuse_page(). However, because
buffer.data was left uninitialized (NULL), qede_reuse_page() pushes a
"ghost" BD (valid DMA mapping but NULL data pointer) back into the
active Rx ring.
The next time the hardware uses this ring slot, it passes a NULL page
to qede_fill_frag_skb(), causing a kernel panic.
Example crash from production system:
BUG: unable to handle kernel NULL pointer dereference at 0x8
RIP: qede_fill_frag_skb+0x96/0x430 [qede]
Call Trace:
qede_rx_int+0xb06/0x1de0
qede_poll+0x2f4/0x6c0
__napi_poll+0x2d/0x130
Fix the root cause by restoring the tpa_info->buffer.data assignment
in qede_tpa_start(), ensuring valid pages are correctly tracked and
recycled. Additionally, update the stale comment for
struct qede_agg_info::buffer to reflect its current usage.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89511",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:54.697925Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:40.664Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede.h",
"drivers/net/ethernet/qlogic/qede/qede_fp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e2214e2793154b745436e46c6a9a7985d9b3781d",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "dd8bc0a9d87d2b048711edd17ba7286432edd285",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "fa7c9bd2c4a8de167e2fb32968ca4d91dd774375",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "a5e1fdc126ab337d601d1a00cc4b47910679d005",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "7f911e208b3ca2c76d9f2bbba1f54b9403568c10",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "2a952fb1b20d83e83ca852773e6188511f7d2191",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "f5c8619ccbd70102642120c4c6fda1c048a555fd",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "06aa3d26327f24edd039ff249672fdf6f2ba5695",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede.h",
"drivers/net/ethernet/qlogic/qede/qede_fp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nqede: Fix NULL pointer dereference in TPA fragment processing\n\nUnder memory pressure, the qede driver encounters NULL pointer\ndereferences when processing TPA continuation fragments.\n\nCommit 8a8633978b84 (\"qede: Add build_skb() support.\") accidentally\ndropped the assignment of tpa_info-\u003ebuffer.data in qede_tpa_start().\n\nWhen memory pressure causes an SKB allocation failure in qede_tpa_start(),\nthe driver sets tpa_start_fail = true and attempts to recycle the physical\npage later in qede_tpa_end() via qede_reuse_page(). However, because\nbuffer.data was left uninitialized (NULL), qede_reuse_page() pushes a\n\"ghost\" BD (valid DMA mapping but NULL data pointer) back into the\nactive Rx ring.\n\nThe next time the hardware uses this ring slot, it passes a NULL page\nto qede_fill_frag_skb(), causing a kernel panic.\n\nExample crash from production system:\n BUG: unable to handle kernel NULL pointer dereference at 0x8\n RIP: qede_fill_frag_skb+0x96/0x430 [qede]\n Call Trace:\n qede_rx_int+0xb06/0x1de0\n qede_poll+0x2f4/0x6c0\n __napi_poll+0x2d/0x130\n\nFix the root cause by restoring the tpa_info-\u003ebuffer.data assignment\nin qede_tpa_start(), ensuring valid pages are correctly tracked and\nrecycled. Additionally, update the stale comment for\nstruct qede_agg_info::buffer to reflect its current usage."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in qede TPA/GRO RX on Marvell/QLogic FastLinQ NICs used on internet-facing datacenter and cloud servers. Remote TCP segments cause firmware to post TPA CQEs handled by qede_msix_fp_int()-\u003eqede_poll()-\u003eqede_rx_int()-\u003eqede_rx_process_tpa_cqe()-\u003eqede_tpa_start()/qede_tpa_end()/qede_fill_frag_skb().\nAC:L - An attacker can send high-rate TCP streams that HW GRO (enabled by default) aggregates and flood GFP_ATOMIC skb allocations until qede_tpa_start() fails, then keep sending so the recycled ghost BD is consumed. No uncontrolled race or victim-specific layout is required; the attacker drives TPA and the allocation-failure condition.\nPR:N - NIC receive and TPA completion handling run in softirq on inbound frames with no authentication, capability check, or local account. Any unauthenticated remote host that can send Ethernet/TCP traffic to a qede interface can reach the vulnerable path.\nUI:N - Packet reception, MSI-X interrupt handling, and NAPI polling process attacker frames automatically whenever the qede interface is up. The victim need not mount a filesystem, open a device, or otherwise interact.\nS:U - The NULL dereference oops stays in the host kernel that owns the qede driver and RX rings. It does not cross a VM, IOMMU, container, or other security-authority boundary.\nC:N - The fault is a pure NULL page-pointer dereference in qede_fill_frag_skb() (production RIP at offset 0x8) when a recycled ghost BD with buffer.data==NULL is consumed. There is no use-after-free reclaim, out-of-bounds read, or other disclosure primitive.\nI:N - skb_fill_page_desc()/page_ref_inc() abort immediately on the NULL page pointer without writing attacker-controlled data into other kernel objects, so there is no arbitrary-write or control-flow hijack primitive.\nA:H - The documented production crash is a kernel NULL pointer dereference panic in NAPI/softirq context (qede_fill_frag_skb), which is a complete availability impact under kernel CVSS guidance and can be retriggered by further traffic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:02.658Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e2214e2793154b745436e46c6a9a7985d9b3781d"
},
{
"url": "https://git.kernel.org/stable/c/dd8bc0a9d87d2b048711edd17ba7286432edd285"
},
{
"url": "https://git.kernel.org/stable/c/fa7c9bd2c4a8de167e2fb32968ca4d91dd774375"
},
{
"url": "https://git.kernel.org/stable/c/a5e1fdc126ab337d601d1a00cc4b47910679d005"
},
{
"url": "https://git.kernel.org/stable/c/7f911e208b3ca2c76d9f2bbba1f54b9403568c10"
},
{
"url": "https://git.kernel.org/stable/c/2a952fb1b20d83e83ca852773e6188511f7d2191"
},
{
"url": "https://git.kernel.org/stable/c/f5c8619ccbd70102642120c4c6fda1c048a555fd"
},
{
"url": "https://git.kernel.org/stable/c/06aa3d26327f24edd039ff249672fdf6f2ba5695"
}
],
"title": "qede: Fix NULL pointer dereference in TPA fragment processing",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89511",
"datePublished": "2026-09-11T19:43:56.640Z",
"dateReserved": "2026-09-11T19:38:34.716Z",
"dateUpdated": "2026-10-19T08:48:02.658Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64373 (GCVE-0-2026-64373)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-08-17 04:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cpufreq: Fix hotplug-suspend race during reboot
During system reboot, cpufreq_suspend() is called via the
kernel_restart() -> device_shutdown() path. Unlike the normal system
suspend path, the reboot path does not call freeze_processes(), so
userspace processes and kernel threads remain active.
This allows CPU hotplug operations to run concurrently with
cpufreq_suspend(). The original code has no synchronization with CPU
hotplug, leading to a race condition where governor_data can be freed
by the hotplug path while cpufreq_suspend() is still accessing it,
resulting in a null pointer dereference:
Unable to handle kernel NULL pointer dereference
Call Trace:
do_kernel_fault+0x28/0x3c
cpufreq_suspend+0xdc/0x160
device_shutdown+0x18/0x200
kernel_restart+0x40/0x80
arm64_sys_reboot+0x1b0/0x200
Fix this by adding cpus_read_lock()/cpus_read_unlock() to
cpufreq_suspend() to block CPU hotplug operations while suspend is in
progress.
[ rjw: Changelog edits ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 Version: 8bfa06ea6e81bf08d2132d7e70c2b5313b34caf8 Version: 7ccf3b8b7a12dc9da158c2e699c36d04b2496944 Version: 5f466713989250938624afa79dc33bae20920700 Version: 89ab39da1452d272007acc5912d4008047b86706 Version: cb4b4601f910c78d2b49f637a12ef98b41cb76a9 Version: 4.4.198 ≤ Version: 4.9.198 ≤ Version: 4.14.151 ≤ Version: 4.19.81 ≤ Version: 5.3.8 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/cpufreq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6d5dd354c37abaf4d60400c55c71f23ba2b33639",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "9103078c7b3091a2fbb52af176f95982ee7dd7f8",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "cd4524ff6567fa4458a5bec4b017105e671d393e",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "73255d702c7560185fd5951aadcf7eb057c2f453",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "a0ef2fc89d28ca62923376c4b8ffaa57136a36be",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "6e175c00c62dca3d91b987015808b5d52e8db2b4",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "a0106b41f9a724868d390b8b3b4ea5ca0e04ea53",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"lessThan": "a9029dd55696c651ee46912afa2a166fa456bb3e",
"status": "affected",
"version": "65650b35133ff20f0c9ef0abd5c3c66dbce3ae57",
"versionType": "git"
},
{
"status": "affected",
"version": "8bfa06ea6e81bf08d2132d7e70c2b5313b34caf8",
"versionType": "git"
},
{
"status": "affected",
"version": "7ccf3b8b7a12dc9da158c2e699c36d04b2496944",
"versionType": "git"
},
{
"status": "affected",
"version": "5f466713989250938624afa79dc33bae20920700",
"versionType": "git"
},
{
"status": "affected",
"version": "89ab39da1452d272007acc5912d4008047b86706",
"versionType": "git"
},
{
"status": "affected",
"version": "cb4b4601f910c78d2b49f637a12ef98b41cb76a9",
"versionType": "git"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.198",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.198",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.151",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.81",
"versionType": "semver"
},
{
"lessThan": "5.4",
"status": "affected",
"version": "5.3.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/cpufreq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.198",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.198",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.151",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.81",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: Fix hotplug-suspend race during reboot\n\nDuring system reboot, cpufreq_suspend() is called via the\nkernel_restart() -\u003e device_shutdown() path. Unlike the normal system\nsuspend path, the reboot path does not call freeze_processes(), so\nuserspace processes and kernel threads remain active.\n\nThis allows CPU hotplug operations to run concurrently with\ncpufreq_suspend(). The original code has no synchronization with CPU\nhotplug, leading to a race condition where governor_data can be freed\nby the hotplug path while cpufreq_suspend() is still accessing it,\nresulting in a null pointer dereference:\n\n Unable to handle kernel NULL pointer dereference\n Call Trace:\n do_kernel_fault+0x28/0x3c\n cpufreq_suspend+0xdc/0x160\n device_shutdown+0x18/0x200\n kernel_restart+0x40/0x80\n arm64_sys_reboot+0x1b0/0x200\n\nFix this by adding cpus_read_lock()/cpus_read_unlock() to\ncpufreq_suspend() to block CPU hotplug operations while suspend is in\nprogress.\n\n[ rjw: Changelog edits ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:54:23.307Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6d5dd354c37abaf4d60400c55c71f23ba2b33639"
},
{
"url": "https://git.kernel.org/stable/c/9103078c7b3091a2fbb52af176f95982ee7dd7f8"
},
{
"url": "https://git.kernel.org/stable/c/cd4524ff6567fa4458a5bec4b017105e671d393e"
},
{
"url": "https://git.kernel.org/stable/c/73255d702c7560185fd5951aadcf7eb057c2f453"
},
{
"url": "https://git.kernel.org/stable/c/a0ef2fc89d28ca62923376c4b8ffaa57136a36be"
},
{
"url": "https://git.kernel.org/stable/c/6e175c00c62dca3d91b987015808b5d52e8db2b4"
},
{
"url": "https://git.kernel.org/stable/c/a0106b41f9a724868d390b8b3b4ea5ca0e04ea53"
},
{
"url": "https://git.kernel.org/stable/c/a9029dd55696c651ee46912afa2a166fa456bb3e"
}
],
"title": "cpufreq: Fix hotplug-suspend race during reboot",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64373",
"datePublished": "2026-07-25T08:50:25.427Z",
"dateReserved": "2026-07-19T15:36:31.784Z",
"dateUpdated": "2026-08-17T04:54:23.307Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72306 (GCVE-0-2026-72306)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-08-17 05:12
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vduse: Fix race in vduse_dev_msg_sync and vduse_dev_read_iter
There is one race case in vduse_dev_msg_sync and vduse_dev_read_iter:
vduse_dev_read_iter():
lock(msg_lock);
dequeue_msg(send_list);
unlock(msg_lock);
vduse_dev_msg_sync():
wait_timeout() finish
lock(msg_lock);
check msg->complete is false
list_del(msg); <- double list_del() crash!
To fix this case, we shall ensure vduse_msg is on send_list or recv_list
outside the msg_lock critical section.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/vduse_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c83ad3dfa6d9953d5ce6839416bf5a1bfc50285a",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "09723f26ed801c083e914cec4cc0e1af4b933dc7",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "d7e7c813834c6c05c26033456ab7169e2f9c99eb",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "3755965adbb617f4283ac6ccd351ed0676843cba",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "d8715b5a8fdb23fef576700e71d0c253dbeddad4",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "8062ff9d366c4bc4ae775e14eac9a769f20c60dd",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "ae9c13b6fd79087cc5a216ee1649b6f012c2a238",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/vduse_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvduse: Fix race in vduse_dev_msg_sync and vduse_dev_read_iter\n\nThere is one race case in vduse_dev_msg_sync and vduse_dev_read_iter:\n\nvduse_dev_read_iter():\n lock(msg_lock);\n dequeue_msg(send_list);\n unlock(msg_lock);\nvduse_dev_msg_sync():\n wait_timeout() finish\n lock(msg_lock);\n check msg-\u003ecomplete is false\n list_del(msg); \u003c- double list_del() crash!\n\nTo fix this case, we shall ensure vduse_msg is on send_list or recv_list\noutside the msg_lock critical section."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:12:10.666Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c83ad3dfa6d9953d5ce6839416bf5a1bfc50285a"
},
{
"url": "https://git.kernel.org/stable/c/09723f26ed801c083e914cec4cc0e1af4b933dc7"
},
{
"url": "https://git.kernel.org/stable/c/d7e7c813834c6c05c26033456ab7169e2f9c99eb"
},
{
"url": "https://git.kernel.org/stable/c/3755965adbb617f4283ac6ccd351ed0676843cba"
},
{
"url": "https://git.kernel.org/stable/c/d8715b5a8fdb23fef576700e71d0c253dbeddad4"
},
{
"url": "https://git.kernel.org/stable/c/8062ff9d366c4bc4ae775e14eac9a769f20c60dd"
},
{
"url": "https://git.kernel.org/stable/c/ae9c13b6fd79087cc5a216ee1649b6f012c2a238"
}
],
"title": "vduse: Fix race in vduse_dev_msg_sync and vduse_dev_read_iter",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72306",
"datePublished": "2026-08-15T05:55:23.532Z",
"dateReserved": "2026-08-09T03:40:39.918Z",
"dateUpdated": "2026-08-17T05:12:10.666Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92514 (GCVE-0-2026-92514)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/erdma: Fix CEQ tasklet use-after-free on removal
Each CEQ interrupt handler only schedules eqc->tasklet. The tasklet calls
erdma_ceq_completion_handler(), which reads the DMA-coherent EQ ring
through get_next_valid_eqe() and updates eq->dbrec through notify_eq().
erdma_ceqs_uninit() frees each CEQ IRQ and then destroys its EQ.
free_irq() prevents another hard IRQ and waits for an in-flight handler,
but it does not drain a tasklet that the handler already scheduled. The
tasklet can therefore access eq->qbuf or eq->dbrec after
erdma_eq_destroy() frees them.
Clearing ceq_cb->ready does not synchronize with a tasklet that already
passed the check at the start of erdma_ceq_completion_handler().
Kill the tasklet after free_irq(), when no handler can schedule it again,
and before erdma_ceq_uninit_one() releases the EQ buffers.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f2a0a630b953451a59a2612ad8c29246638f0a38 Version: f2a0a630b953451a59a2612ad8c29246638f0a38 Version: f2a0a630b953451a59a2612ad8c29246638f0a38 Version: f2a0a630b953451a59a2612ad8c29246638f0a38 Version: f2a0a630b953451a59a2612ad8c29246638f0a38 Version: f2a0a630b953451a59a2612ad8c29246638f0a38 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_eq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0e8b78dabb1f156db05ffe74c6eae861167c7c21",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
},
{
"lessThan": "6e129c1310abfa786a510cc63e69c5ef12349048",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
},
{
"lessThan": "f738c0a372d36a10dfae6dc357717c13b2aa72f4",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
},
{
"lessThan": "a60c36d8d17f1b86705523d5eb6d290df28831e5",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
},
{
"lessThan": "61a25b8d333e1eb2a189881d516f8d5194e26840",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
},
{
"lessThan": "0ca79979384f031d710c4b3bae065dcb5d95aca3",
"status": "affected",
"version": "f2a0a630b953451a59a2612ad8c29246638f0a38",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_eq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/erdma: Fix CEQ tasklet use-after-free on removal\n\nEach CEQ interrupt handler only schedules eqc-\u003etasklet. The tasklet calls\nerdma_ceq_completion_handler(), which reads the DMA-coherent EQ ring\nthrough get_next_valid_eqe() and updates eq-\u003edbrec through notify_eq().\n\nerdma_ceqs_uninit() frees each CEQ IRQ and then destroys its EQ.\nfree_irq() prevents another hard IRQ and waits for an in-flight handler,\nbut it does not drain a tasklet that the handler already scheduled. The\ntasklet can therefore access eq-\u003eqbuf or eq-\u003edbrec after\nerdma_eq_destroy() frees them.\n\nClearing ceq_cb-\u003eready does not synchronize with a tasklet that already\npassed the check at the start of erdma_ceq_completion_handler().\n\nKill the tasklet after free_irq(), when no handler can schedule it again,\nand before erdma_ceq_uninit_one() releases the EQ buffers."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:20.857Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0e8b78dabb1f156db05ffe74c6eae861167c7c21"
},
{
"url": "https://git.kernel.org/stable/c/6e129c1310abfa786a510cc63e69c5ef12349048"
},
{
"url": "https://git.kernel.org/stable/c/f738c0a372d36a10dfae6dc357717c13b2aa72f4"
},
{
"url": "https://git.kernel.org/stable/c/a60c36d8d17f1b86705523d5eb6d290df28831e5"
},
{
"url": "https://git.kernel.org/stable/c/61a25b8d333e1eb2a189881d516f8d5194e26840"
},
{
"url": "https://git.kernel.org/stable/c/0ca79979384f031d710c4b3bae065dcb5d95aca3"
}
],
"title": "RDMA/erdma: Fix CEQ tasklet use-after-free on removal",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92514",
"datePublished": "2026-09-17T16:10:23.462Z",
"dateReserved": "2026-09-16T12:21:13.873Z",
"dateUpdated": "2026-10-19T09:04:20.857Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89658 (GCVE-0-2026-89658)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSD: Prevent client use-after-free during NFSv4.0 revoked-state cleanup
nfs40_clean_admin_revoked() takes a stateid reference under
clp->cl_lock, drops nn->client_lock, and calls
nfsd4_drop_revoked_stid(), which dereferences the stateid's client
through s->sc_client->cl_lock. The stateid reference does not pin the
client, so a teardown racing the dropped lock can free the client
while nfsd4_drop_revoked_stid() is still using it.
This cleanup runs from the laundromat, so a periodic sweep can race
force_expire_client() driven by a write to the clients/<id>/ctl file.
Skip a client that is already expiring and otherwise pin it with
cl_rpc_users under client_lock before dropping the lock, matching
nfsd4_revoke_states().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0ae0d2b5c5a1b39c0b3c15d96b32a5b0c583d519",
"status": "affected",
"version": "d688d8585e6bea5e4e37f7497feea93b6b0a469c",
"versionType": "git"
},
{
"lessThan": "b413ec5b23e3445dc9c4f273116078e2d4747626",
"status": "affected",
"version": "d688d8585e6bea5e4e37f7497feea93b6b0a469c",
"versionType": "git"
},
{
"lessThan": "81cf7f1413862f87b078920c838460a6a88aa030",
"status": "affected",
"version": "d688d8585e6bea5e4e37f7497feea93b6b0a469c",
"versionType": "git"
},
{
"lessThan": "7b4f8a1586c42d3afc3c0ac779af2db7ab1a5c55",
"status": "affected",
"version": "d688d8585e6bea5e4e37f7497feea93b6b0a469c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent client use-after-free during NFSv4.0 revoked-state cleanup\n\nnfs40_clean_admin_revoked() takes a stateid reference under\nclp-\u003ecl_lock, drops nn-\u003eclient_lock, and calls\nnfsd4_drop_revoked_stid(), which dereferences the stateid\u0027s client\nthrough s-\u003esc_client-\u003ecl_lock. The stateid reference does not pin the\nclient, so a teardown racing the dropped lock can free the client\nwhile nfsd4_drop_revoked_stid() is still using it.\n\nThis cleanup runs from the laundromat, so a periodic sweep can race\nforce_expire_client() driven by a write to the clients/\u003cid\u003e/ctl file.\n\nSkip a client that is already expiring and otherwise pin it with\ncl_rpc_users under client_lock before dropping the lock, matching\nnfsd4_revoke_states()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is in nfsd NFSv4.0 revoked-state cleanup (nfs40_clean_admin_revoked). A remote peer reaches it over TCP/2049 via nfsd_dispatch to nfsd4_proc_compound: SETCLIENTID/SETCLIENTID_CONFIRM (ALLOWED_WITHOUT_FH) call expire_client() while the laundromat still uses the client.\nAC:L - The attacker controls the expire side by retrying SETCLIENTID_CONFIRM around the known lease interval, or by inducing the documented clients/\u003cid\u003e/ctl expire of a misbehaving client. Cleanup drops client_lock without pinning cl_rpc_users, so mark_client_expired_locked succeeds; this is not a race outside attacker influence.\nPR:N - OP_SETCLIENTID and OP_SETCLIENTID_CONFIRM are ALLOWED_WITHOUT_FH/ALLOWED_ON_ABSENT_FS with no export check. Typical nfsd AUTH_SYS/AUTH_NULL deployments never verify RPC credentials, so any host that can reach TCP/2049 can create NFSv4.0 state and trigger the expire.\nUI:N - The attacker drives the NFS compounds that establish state and expire the client. Administrative revoke or ctl expire is a server operational condition (unexport or response to a misbehaving client), not a required victim user action.\nS:U - The freed object is struct nfs4_client in the NFS server kernel. Impact remains in that kernel security authority; there is no VM, IOMMU, or sandbox boundary crossing.\nC:H - nfsd4_drop_revoked_stid() and nfs4_put_stid() dereference s-\u003esc_client after expire_client() frees the nfs4_client. Reclaim of that slab lets an attacker groom contents and disclose kernel memory. Per kernel guidance a UAF is C:H.\nI:H - nfs4_put_stid() lock-and-idr_remove on the freed client\u0027s cl_lock/cl_stateids, concurrent with __destroy_client() list walks, is a slab UAF write primitive usable for heap corruption and control-flow hijacking. Per kernel guidance a UAF is I:H.\nA:H - Use of the freed nfs4_client spinlock, IDR, and lists oopses or panics the nfsd host, fully denying service of the NFS server."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:29.852Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0ae0d2b5c5a1b39c0b3c15d96b32a5b0c583d519"
},
{
"url": "https://git.kernel.org/stable/c/b413ec5b23e3445dc9c4f273116078e2d4747626"
},
{
"url": "https://git.kernel.org/stable/c/81cf7f1413862f87b078920c838460a6a88aa030"
},
{
"url": "https://git.kernel.org/stable/c/7b4f8a1586c42d3afc3c0ac779af2db7ab1a5c55"
}
],
"title": "NFSD: Prevent client use-after-free during NFSv4.0 revoked-state cleanup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89658",
"datePublished": "2026-09-11T19:45:46.857Z",
"dateReserved": "2026-09-11T19:38:34.743Z",
"dateUpdated": "2026-10-19T08:50:29.852Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80681 (GCVE-0-2026-80681)
Vulnerability from cvelistv5
Published
2026-08-28 06:52
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: re-fetch eth header after route_shortcircuit()
Before route_shortcircuit(), the eth header pointer is cached from eth_hdr(skb).
Inside route_shortcircuit(), pskb_may_pull() can be called, which may
reallocate skb->head.
In this case, returning to vxlan_xmit() leaves the cached eth pointer pointing to
freed memory, leading to a use-after-free when dereferencing eth->h_dest.
Fix this by updating eth = eth_hdr(skb) after calling route_shortcircuit().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e Version: ae8840825605f36f98f247323edc150e761cb64e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80681",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:19:50.454403Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:32.921Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6375093eb45cd7d89f1945f939eeae3b29d79f56",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "1b7f7b653e3557690047c62f03b80a24ea5a58a5",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "bf045341dfb3e767f0ff94cf240ce3c371973bd4",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "2355c8c26d2aa1b4385b369e67202e47d460d555",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "1511631b7cfc4152b10a0a9d04c7a0bf2ddf4585",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "1235e017aa11cf01e91b613c4c5ed6aa28934fff",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "c9dceac9e1c7c772c43c732fc0d325e72835801a",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
},
{
"lessThan": "1395a676ec15a0a02a2a6d86602324f2d5fd41d5",
"status": "affected",
"version": "ae8840825605f36f98f247323edc150e761cb64e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: re-fetch eth header after route_shortcircuit()\n\nBefore route_shortcircuit(), the eth header pointer is cached from eth_hdr(skb).\n\nInside route_shortcircuit(), pskb_may_pull() can be called, which may\nreallocate skb-\u003ehead.\n\nIn this case, returning to vxlan_xmit() leaves the cached eth pointer pointing to\nfreed memory, leading to a use-after-free when dereferencing eth-\u003eh_dest.\n\nFix this by updating eth = eth_hdr(skb) after calling route_shortcircuit()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in vxlan_xmit(), reached when the kernel transmits packets out a VXLAN netdev via routing, bridging, or overlay forwarding; remote peers can inject IPv4/IPv6 Ethernet frames that traverse this TX path on cloud, Kubernetes, and data-center VXLAN deployments.\nAC:L - An attacker controlling overlay or forwarded traffic can reliably meet RSC prerequisites (router FDB entry, IPv4/IPv6 ethertype, neighbour MAC mismatch, cloned/nonlinear skb) so route_shortcircuit() calls pskb_may_pull/skb_cow_head and reallocates skb-\u003ehead, invalidating the cached eth pointer.\nPR:N - Exploitation requires only sending network traffic processed by an existing VXLAN interface with RSC enabled, not host administrator credentials; remote overlay peers and unauthenticated senders whose packets are forwarded through VXLAN need no elevated privileges on the target.\nUI:N - The use-after-free is triggered automatically during kernel packet transmit processing in vxlan_xmit() with no action required from a local user or administrator beyond normal network operation on a VXLAN-enabled host.\nS:U - The stale eth_hdr pointer causes heap use-after-free within the kernel\u0027s own memory domain during VXLAN transmit processing; impact is standard in-kernel memory corruption and does not inherently cross VM, container, or IOMMU security boundaries.\nC:H - After route_shortcircuit() reallocates skb-\u003ehead, vxlan_xmit() dereferences the stale eth pointer for eth-\u003eh_dest, constituting a heap use-after-free read that can disclose adjacent freed slab contents and support further kernel memory disclosure primitives.\nI:H - Use-after-free of the Ethernet header buffer in skb head memory enables attacker-controlled reuse of freed kmalloc slabs, a well-established path to heap grooming and arbitrary kernel memory corruption or control-flow hijacking beyond the immediate MAC header read.\nA:H - Dereferencing a freed skb head pointer in vxlan_xmit() can cause an immediate kernel oops or panic from invalid memory access, and UAF heap corruption routinely destabilizes or crashes the system even when full exploitation is not pursued."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:07.840Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6375093eb45cd7d89f1945f939eeae3b29d79f56"
},
{
"url": "https://git.kernel.org/stable/c/1b7f7b653e3557690047c62f03b80a24ea5a58a5"
},
{
"url": "https://git.kernel.org/stable/c/bf045341dfb3e767f0ff94cf240ce3c371973bd4"
},
{
"url": "https://git.kernel.org/stable/c/2355c8c26d2aa1b4385b369e67202e47d460d555"
},
{
"url": "https://git.kernel.org/stable/c/1511631b7cfc4152b10a0a9d04c7a0bf2ddf4585"
},
{
"url": "https://git.kernel.org/stable/c/1235e017aa11cf01e91b613c4c5ed6aa28934fff"
},
{
"url": "https://git.kernel.org/stable/c/c9dceac9e1c7c772c43c732fc0d325e72835801a"
},
{
"url": "https://git.kernel.org/stable/c/1395a676ec15a0a02a2a6d86602324f2d5fd41d5"
}
],
"title": "vxlan: re-fetch eth header after route_shortcircuit()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80681",
"datePublished": "2026-08-28T06:52:48.896Z",
"dateReserved": "2026-08-26T14:34:25.783Z",
"dateUpdated": "2026-10-16T19:26:32.921Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90259 (GCVE-0-2026-90259)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: qgroup: fix a wrong length calculation in qgroup_free_reserved_data()
In that function, we round down the start position and round up the
ending position.
But during the calculation of @len, we use "round_up(start + len,
sectorsize)", which is the rounded up end position, not the rounded up
length.
Which results a much larger length, and later we are still using
"start + len", which is completely incorrect.
Fix it by declaring a local @aligned_start and @aligned_len and use them
instead.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/qgroup.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "202ac9e469b78817512921c5db05cc2140e4ca43",
"status": "affected",
"version": "bc42bda22345efdb5d8b578d1b4df2c6eaa85c58",
"versionType": "git"
},
{
"lessThan": "34adc843c28e5cd1f533a1d64f51b0f756fdf945",
"status": "affected",
"version": "bc42bda22345efdb5d8b578d1b4df2c6eaa85c58",
"versionType": "git"
},
{
"lessThan": "e6edde29990af8064b9d12217ec03db231ccd55d",
"status": "affected",
"version": "bc42bda22345efdb5d8b578d1b4df2c6eaa85c58",
"versionType": "git"
},
{
"lessThan": "c4c136555ff90f1e2921cc42da43daac0ef9985e",
"status": "affected",
"version": "bc42bda22345efdb5d8b578d1b4df2c6eaa85c58",
"versionType": "git"
},
{
"lessThan": "9102b179512e11644fb0489ae62010a09afa199c",
"status": "affected",
"version": "bc42bda22345efdb5d8b578d1b4df2c6eaa85c58",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/qgroup.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.13"
},
{
"lessThan": "4.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: qgroup: fix a wrong length calculation in qgroup_free_reserved_data()\n\nIn that function, we round down the start position and round up the\nending position.\n\nBut during the calculation of @len, we use \"round_up(start + len,\nsectorsize)\", which is the rounded up end position, not the rounded up\nlength.\n\nWhich results a much larger length, and later we are still using\n\"start + len\", which is completely incorrect.\n\nFix it by declaring a local @aligned_start and @aligned_len and use them\ninstead."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:41.144Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/202ac9e469b78817512921c5db05cc2140e4ca43"
},
{
"url": "https://git.kernel.org/stable/c/34adc843c28e5cd1f533a1d64f51b0f756fdf945"
},
{
"url": "https://git.kernel.org/stable/c/e6edde29990af8064b9d12217ec03db231ccd55d"
},
{
"url": "https://git.kernel.org/stable/c/c4c136555ff90f1e2921cc42da43daac0ef9985e"
},
{
"url": "https://git.kernel.org/stable/c/9102b179512e11644fb0489ae62010a09afa199c"
}
],
"title": "btrfs: qgroup: fix a wrong length calculation in qgroup_free_reserved_data()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90259",
"datePublished": "2026-09-17T16:07:57.416Z",
"dateReserved": "2026-09-11T19:38:34.796Z",
"dateUpdated": "2026-10-21T12:50:41.144Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97950 (GCVE-0-2026-97950)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-21 12:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
configfs: pin the symlink target's dirent instead of chasing ->ci_dentry
create_link() reads the target's configfs_dirent from
item->ci_dentry->d_fsdata, relying on the item reference taken by
get_target(). That reference pins the item, not its dentry: the dentry is
pinned by DCACHE_PERSISTENT, which configfs_remove_dir() releases via
simple_rmdir() while the item is still alive. A symlink racing with rmdir
of its target can therefore find ->ci_dentry freed and its dirent
released, triggering WARN_ON(!atomic_read(&sd->s_count)) in configfs_get().
Take the dirent in get_target() as well, under ->d_lock and atomically
with the item reference, and pass it down to create_link(). A hashed
dentry has not been killed yet, so its ->d_fsdata reference keeps the
dirent alive there.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/configfs/symlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a44744454eafbc158e8c8e3ef8d207076410b195",
"status": "affected",
"version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
"versionType": "git"
},
{
"lessThan": "846ff40fd57a47e59a41f4e331ec3b34efaddc23",
"status": "affected",
"version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
"versionType": "git"
},
{
"lessThan": "4f54beb2e7f6d399396466682fba3539bcdcb414",
"status": "affected",
"version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
"versionType": "git"
},
{
"lessThan": "d47c5de1cd6bfbe1067fc310bf90e4e00205e839",
"status": "affected",
"version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
"versionType": "git"
},
{
"lessThan": "a7c1290eef60711c10289c056ad32ed1f2b47b12",
"status": "affected",
"version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/configfs/symlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.16"
},
{
"lessThan": "2.6.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs: pin the symlink target\u0027s dirent instead of chasing -\u003eci_dentry\n\ncreate_link() reads the target\u0027s configfs_dirent from\nitem-\u003eci_dentry-\u003ed_fsdata, relying on the item reference taken by\nget_target(). That reference pins the item, not its dentry: the dentry is\npinned by DCACHE_PERSISTENT, which configfs_remove_dir() releases via\nsimple_rmdir() while the item is still alive. A symlink racing with rmdir\nof its target can therefore find -\u003eci_dentry freed and its dirent\nreleased, triggering WARN_ON(!atomic_read(\u0026sd-\u003es_count)) in configfs_get().\n\nTake the dirent in get_target() as well, under -\u003ed_lock and atomically\nwith the item reference, and pass it down to create_link(). A hashed\ndentry has not been killed yet, so its -\u003ed_fsdata reference keeps the\ndirent alive there."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:53:48.740Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a44744454eafbc158e8c8e3ef8d207076410b195"
},
{
"url": "https://git.kernel.org/stable/c/846ff40fd57a47e59a41f4e331ec3b34efaddc23"
},
{
"url": "https://git.kernel.org/stable/c/4f54beb2e7f6d399396466682fba3539bcdcb414"
},
{
"url": "https://git.kernel.org/stable/c/d47c5de1cd6bfbe1067fc310bf90e4e00205e839"
},
{
"url": "https://git.kernel.org/stable/c/a7c1290eef60711c10289c056ad32ed1f2b47b12"
}
],
"title": "configfs: pin the symlink target\u0027s dirent instead of chasing -\u003eci_dentry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97950",
"datePublished": "2026-09-25T10:22:58.970Z",
"dateReserved": "2026-09-25T10:18:58.205Z",
"dateUpdated": "2026-10-21T12:53:48.740Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93103 (GCVE-0-2026-93103)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/hfi1: Preserve unit 0 on allocation failure
hfi1_free_devdata() assumes that the device was inserted into the unit
table and unconditionally erases dd->unit. If xa_alloc_irq() fails, the
zero-initialized unit remains zero, so full cleanup can remove an
unrelated device from index 0.
Release only the rdmavt allocation and return immediately while the unit
table has not acquired the device.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 Version: 03b92789e5cfdac66805c1a98f1ec67336199d56 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "852637d3ee56aed8ea3ee8948eda21eca406c051",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "3d0e5252b8d0345ef494763ca31e3ddd666e02cb",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "0feb29d434e6cc0ebefec4f77be014c85ad751b0",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "3f1e196eb66b8cd3882e373794d6cea46f150a20",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "4ff9d58d34758e9633078b37e8d5289b513ff80e",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "fd4d3ad5f244a867166d1e2da7ece3d82878ec81",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "4204f5c0312ba136181a6e148ffa0bfaf95a4cc1",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
},
{
"lessThan": "2e3809ad8911f5d5581b3f046bd628417bface76",
"status": "affected",
"version": "03b92789e5cfdac66805c1a98f1ec67336199d56",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hfi1: Preserve unit 0 on allocation failure\n\nhfi1_free_devdata() assumes that the device was inserted into the unit\ntable and unconditionally erases dd-\u003eunit. If xa_alloc_irq() fails, the\nzero-initialized unit remains zero, so full cleanup can remove an\nunrelated device from index 0.\n\nRelease only the rdmavt allocation and return immediately while the unit\ntable has not acquired the device."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:36.156Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/852637d3ee56aed8ea3ee8948eda21eca406c051"
},
{
"url": "https://git.kernel.org/stable/c/3d0e5252b8d0345ef494763ca31e3ddd666e02cb"
},
{
"url": "https://git.kernel.org/stable/c/0feb29d434e6cc0ebefec4f77be014c85ad751b0"
},
{
"url": "https://git.kernel.org/stable/c/3f1e196eb66b8cd3882e373794d6cea46f150a20"
},
{
"url": "https://git.kernel.org/stable/c/4ff9d58d34758e9633078b37e8d5289b513ff80e"
},
{
"url": "https://git.kernel.org/stable/c/fd4d3ad5f244a867166d1e2da7ece3d82878ec81"
},
{
"url": "https://git.kernel.org/stable/c/4204f5c0312ba136181a6e148ffa0bfaf95a4cc1"
},
{
"url": "https://git.kernel.org/stable/c/2e3809ad8911f5d5581b3f046bd628417bface76"
}
],
"title": "RDMA/hfi1: Preserve unit 0 on allocation failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93103",
"datePublished": "2026-09-17T16:11:15.105Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:36.156Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74475 (GCVE-0-2026-74475)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: use neigh_ha_snapshot() in route_shortcircuit()
The neighbour hardware address n->ha can be updated asynchronously by the
neighbour subsystem, protected by n->ha_lock seqlock. Reading n->ha without
holding the seqlock loop can lead to torn reads or reading a partially updated
MAC address.
Use neigh_ha_snapshot() in route_shortcircuit() to safely copy n->ha under
read_seqbegin()/read_seqretry() lock protection before using it.
Note that arp_reduce() and neigh_reduce() seem to have the same issue
left for future patches.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 Version: e4f67addf158f98f8197e08974966b18480dc751 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74475",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:29.550730Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:48.322Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "32a9590a8d30426e3db63e6b20893e47e02576c0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "d0993fc053f29e15cc7c9fe2029df3882a2ab5ab",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "87210054bad82bbae6f483a742dc45722fb47a6b",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "d08e8ac13f2e228cc7fc3c70b5ebe71557b624a0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "ec341bb76d77b4c2948764375ee6bfeef4bb41c3",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "ff89415d34c3ab9f5312316423122e664ed3524f",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "05f2987f73daa05333fd713d05546142f9f7c5f0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "8eca411347e1d38964f9ed2c8d3b6ab0e7e4473d",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.8"
},
{
"lessThan": "3.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: use neigh_ha_snapshot() in route_shortcircuit()\n\nThe neighbour hardware address n-\u003eha can be updated asynchronously by the\nneighbour subsystem, protected by n-\u003eha_lock seqlock. Reading n-\u003eha without\nholding the seqlock loop can lead to torn reads or reading a partially updated\nMAC address.\n\nUse neigh_ha_snapshot() in route_shortcircuit() to safely copy n-\u003eha under\nread_seqbegin()/read_seqretry() lock protection before using it.\n\nNote that arp_reduce() and neigh_reduce() seem to have the same issue\nleft for future patches."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - route_shortcircuit() runs on the vxlan_xmit() transmit path when overlay IP/IPv6 traffic is encapsulated; in cloud/SDN VTEP deployments a remote tenant can drive dev_queue_xmit() through bridge/IP forwarding without any local syscall or netlink access.\nAC:L - The attacker controls both sides of the race by concurrently sending overlay traffic that hits route_shortcircuit() and generating neighbour ha updates (ARP/NDP churn); repeated attempts do not depend on victim state or uncontrollable memory layout.\nPR:N - Exploitation requires only the ability to send overlay/underlay packets to a VTEP that already has VXLAN_F_RSC and router FDB entries configured by infrastructure; no CAP_NET_ADMIN, root, or host credentials are needed on the victim.\nUI:N - Triggering is automatic during kernel packet forwarding and VXLAN encapsulation once matching traffic flows; no mount, file open, or other victim action is required beyond normal overlay operation.\nS:C - A torn n-\u003eha read can rewrite the skb Ethernet destination and reselect a different FDB remote, mis-encapsulating traffic to an unintended VXLAN peer and crossing intended multi-tenant overlay segmentation boundaries beyond the local VTEP authority.\nC:H - Unsynchronized reads of neighbour ha during concurrent updates yield torn MAC values that drive post-rewrite FDB lookup and encapsulation, potentially delivering other tenants\u0027 overlay frames to an attacker-controlled remote endpoint or leaking mixed neighbour state.\nI:H - The corrupted hardware address is copied into the skb Ethernet header and steers subsequent vxlan_find_mac_tx()/vxlan_xmit_one() encapsulation, enabling deterministic overlay traffic redirection or injection toward an attacker-chosen VTEP rather than the intended router destination.\nA:L - While the host kernel does not panic, torn MAC rewriting can cause mis-encapsulation, FDB misses, and dropped or misdelivered overlay packets, producing intermittent connectivity loss and performance degradation on affected VTEP nodes under sustained attack."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:28.096Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/32a9590a8d30426e3db63e6b20893e47e02576c0"
},
{
"url": "https://git.kernel.org/stable/c/d0993fc053f29e15cc7c9fe2029df3882a2ab5ab"
},
{
"url": "https://git.kernel.org/stable/c/87210054bad82bbae6f483a742dc45722fb47a6b"
},
{
"url": "https://git.kernel.org/stable/c/d08e8ac13f2e228cc7fc3c70b5ebe71557b624a0"
},
{
"url": "https://git.kernel.org/stable/c/ec341bb76d77b4c2948764375ee6bfeef4bb41c3"
},
{
"url": "https://git.kernel.org/stable/c/ff89415d34c3ab9f5312316423122e664ed3524f"
},
{
"url": "https://git.kernel.org/stable/c/05f2987f73daa05333fd713d05546142f9f7c5f0"
},
{
"url": "https://git.kernel.org/stable/c/8eca411347e1d38964f9ed2c8d3b6ab0e7e4473d"
}
],
"title": "vxlan: use neigh_ha_snapshot() in route_shortcircuit()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74475",
"datePublished": "2026-08-15T12:27:10.685Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-10-16T19:05:48.322Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74365 (GCVE-0-2026-74365)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvdimm/btt: Handle preemption in BTT lane acquisition
BTT lanes serialize access to per-lane metadata and workspace state
during BTT I/O. The btt-check unit test reports data mismatches during
BTT writes due to a race in lane acquisition that can lead to silent
data corruption.
The existing lane model uses a spinlock together with a per-CPU
recursion count. That recursion model stopped being valid after BTT
lanes became preemptible: another task can run on the same CPU,
observe a non-zero recursion count, bypass locking, and use the same
lane concurrently.
BTT lanes are also held across arena_write_bytes() calls. That path
reaches nsio_rw_bytes(), which flushes writes with nvdimm_flush().
Some provider flush callbacks can sleep, making a spinlock the wrong
primitive for the lane lifetime.
Replace the spinlock-based recursion model with a dynamically
allocated per-lane mutex array and take the lane lock
unconditionally.
Add might_sleep() to catch any future atomic-context caller.
Found with the ndctl unit test btt-check.sh.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f23859748e3d530217b197e146a9ac84faf0a282 Version: 6f50b414f1a0d790f11a6438a3ad6d0577eb2c18 Version: 36c75ce3bd299878fd9b238e9803d3817ddafbf3 Version: 36c75ce3bd299878fd9b238e9803d3817ddafbf3 Version: 36c75ce3bd299878fd9b238e9803d3817ddafbf3 Version: 36c75ce3bd299878fd9b238e9803d3817ddafbf3 Version: 2577fece583c7c05cda7ad50dde7638c962665e1 Version: 40ba3fa21250e361bdd8f00800b3e2cb6160de95 Version: b0e7a935739f33ed2bd6868b89f97dd4c2683c26 Version: 66eb7b7f23dd9aec5356e7054dd3596ae7648ff5 Version: b27751fb1f271bbb78d5993c0b10011628e40e18 Version: 6.1.63 ≤ Version: 6.6.2 ≤ Version: 4.19.299 ≤ Version: 5.4.261 ≤ Version: 5.10.201 ≤ Version: 5.15.139 ≤ Version: 6.5.12 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74365",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:37.742896Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:35.765Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"Documentation/driver-api/nvdimm/btt.rst",
"drivers/nvdimm/nd.h",
"drivers/nvdimm/region_devs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fd7a97b2514cfc4b4cc067a27dd39bde2a8b1735",
"status": "affected",
"version": "f23859748e3d530217b197e146a9ac84faf0a282",
"versionType": "git"
},
{
"lessThan": "73e35c1bdfa160b41fdbe204e02325f0687de506",
"status": "affected",
"version": "6f50b414f1a0d790f11a6438a3ad6d0577eb2c18",
"versionType": "git"
},
{
"lessThan": "417918783bcfe0be135019df16a267b3af442efd",
"status": "affected",
"version": "36c75ce3bd299878fd9b238e9803d3817ddafbf3",
"versionType": "git"
},
{
"lessThan": "5c53406098b599c420b031e6ec5ba8a2f3794c50",
"status": "affected",
"version": "36c75ce3bd299878fd9b238e9803d3817ddafbf3",
"versionType": "git"
},
{
"lessThan": "4eafa810b042d985ec6bbf5b514414e73cee6f6f",
"status": "affected",
"version": "36c75ce3bd299878fd9b238e9803d3817ddafbf3",
"versionType": "git"
},
{
"lessThan": "8d4b989d9c9afe5f185aa5853b666fc4617afe9e",
"status": "affected",
"version": "36c75ce3bd299878fd9b238e9803d3817ddafbf3",
"versionType": "git"
},
{
"status": "affected",
"version": "2577fece583c7c05cda7ad50dde7638c962665e1",
"versionType": "git"
},
{
"status": "affected",
"version": "40ba3fa21250e361bdd8f00800b3e2cb6160de95",
"versionType": "git"
},
{
"status": "affected",
"version": "b0e7a935739f33ed2bd6868b89f97dd4c2683c26",
"versionType": "git"
},
{
"status": "affected",
"version": "66eb7b7f23dd9aec5356e7054dd3596ae7648ff5",
"versionType": "git"
},
{
"status": "affected",
"version": "b27751fb1f271bbb78d5993c0b10011628e40e18",
"versionType": "git"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.63",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.2",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.299",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.261",
"versionType": "semver"
},
{
"lessThan": "5.11",
"status": "affected",
"version": "5.10.201",
"versionType": "semver"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.139",
"versionType": "semver"
},
{
"lessThan": "6.6",
"status": "affected",
"version": "6.5.12",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"Documentation/driver-api/nvdimm/btt.rst",
"drivers/nvdimm/nd.h",
"drivers/nvdimm/region_devs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.63",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.299",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.261",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.10.201",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.139",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.5.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvdimm/btt: Handle preemption in BTT lane acquisition\n\nBTT lanes serialize access to per-lane metadata and workspace state\nduring BTT I/O. The btt-check unit test reports data mismatches during\nBTT writes due to a race in lane acquisition that can lead to silent\ndata corruption.\n\nThe existing lane model uses a spinlock together with a per-CPU\nrecursion count. That recursion model stopped being valid after BTT\nlanes became preemptible: another task can run on the same CPU,\nobserve a non-zero recursion count, bypass locking, and use the same\nlane concurrently.\n\nBTT lanes are also held across arena_write_bytes() calls. That path\nreaches nsio_rw_bytes(), which flushes writes with nvdimm_flush().\nSome provider flush callbacks can sleep, making a spinlock the wrong\nprimitive for the lane lifetime.\n\nReplace the spinlock-based recursion model with a dynamically\nallocated per-lane mutex array and take the lane lock\nunconditionally.\n\nAdd might_sleep() to catch any future atomic-context caller.\n\nFound with the ndctl unit test btt-check.sh."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only through local block I/O on a BTT-backed /dev/pmem* device via vfs_write/pwrite/O_DIRECT paths into btt_submit_bio-\u003ebtt_write_pg/btt_read_pg-\u003end_region_acquire_lane; it is not in a network protocol handler.\nAC:L - After BTT lanes became preemptible, a second task on the same CPU can bypass the per-CPU recursion spinlock while the first still holds the lane across sleeping arena_write_bytes/nvdimm_flush; an attacker reliably wins by issuing concurrent writes (e.g., many threads) to the BTT block device.\nPR:L - No capability checks exist on the bio submission path; any local principal with write access to the BTT block device or a filesystem mounted on it (common for database/service accounts on PMEM servers) can trigger the race without real init-namespace root.\nUI:N - Exploitation requires only automated concurrent block writes from the attacker-controlled process and does not depend on any victim user opening files, clicking prompts, or performing other interactive actions.\nS:U - Impact is confined to corrupting BTT metadata and data within the attacker\u0027s reachable persistent-memory namespace on the same host; it does not cross VM, container, or IOMMU security boundaries to affect other security authorities.\nC:H - Unserialized lane use corrupts BTT map/log/freelist and in-memory arena-\u003ertt/freelist state, so reads can return stale or mis-mapped sector contents (cross-LBA disclosure); the ndctl btt-check test observed data mismatches confirming readable integrity loss.\nI:H - Concurrent writers can silently corrupt on-media BTT translation tables and user data blocks, producing arbitrary persistent storage modification rather than a bounded or detectable single-field change, matching the fix commit\u0027s silent data-corruption description.\nA:L - The primary failure mode is silent corruption and subsequent I/O errors on the affected namespace rather than a kernel panic or hang, but corrupted BTT metadata can persistently degrade or deny reliable access to the volume until recovery or rebuild."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:24.251Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fd7a97b2514cfc4b4cc067a27dd39bde2a8b1735"
},
{
"url": "https://git.kernel.org/stable/c/73e35c1bdfa160b41fdbe204e02325f0687de506"
},
{
"url": "https://git.kernel.org/stable/c/417918783bcfe0be135019df16a267b3af442efd"
},
{
"url": "https://git.kernel.org/stable/c/5c53406098b599c420b031e6ec5ba8a2f3794c50"
},
{
"url": "https://git.kernel.org/stable/c/4eafa810b042d985ec6bbf5b514414e73cee6f6f"
},
{
"url": "https://git.kernel.org/stable/c/8d4b989d9c9afe5f185aa5853b666fc4617afe9e"
}
],
"title": "nvdimm/btt: Handle preemption in BTT lane acquisition",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74365",
"datePublished": "2026-08-15T05:58:47.594Z",
"dateReserved": "2026-08-15T05:44:03.888Z",
"dateUpdated": "2026-10-16T18:55:35.765Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64205 (GCVE-0-2026-64205)
Vulnerability from cvelistv5
Published
2026-07-20 16:27
Modified
2026-08-17 04:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
i2c: i801: fix hardware state machine corruption in error path
A severe livelock and subsequent Hung Task panic were observed in the
i2c-i801 driver during concurrent Fuzzing. The crash is caused by an
unconditional hardware register cleanup in the error handling path of
i801_access().
When i801_check_pre() fails (e.g., returning -EBUSY because the SMBus
controller is actively used by BIOS/ACPI), the kernel does not actually
acquire the hardware ownership. However, the code jumps to the 'out'
label and executes:
iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv));
This forcefully clears the INUSE_STS lock and resets the hardware status
flags without owning the controller. Doing so interrupts ongoing BIOS/ACPI
transactions and totally corrupts the SMBus hardware state machine.
Consequently, all subsequent i801_access() calls fail at the pre-check
stage, triggering an endless stream of "SMBus is busy, can't use it!"
error logs. Over a slow serial console, this printk flood monopolizes
the CPU (Console Livelock), starving other processes trying to acquire
the mmap_lock down_read semaphore, ultimately triggering the hung task
watchdog.
Fix this by moving the 'out' label below the hardware register cleanup.
If i801_check_pre() fails, we safely bypass the iowrite8() and only
release the software locks (pm_runtime and mutex), strictly adhering to
the rule of not releasing resources that were never acquired.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/i2c/busses/i2c-i801.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2ef69871b313aa0f02182795f5e0f5aa455f203c",
"status": "affected",
"version": "1f760b87e54cf56a25ab68f8dc625e339f6e46d5",
"versionType": "git"
},
{
"lessThan": "ef5a347532932f58748dad485c15039f5168c377",
"status": "affected",
"version": "1f760b87e54cf56a25ab68f8dc625e339f6e46d5",
"versionType": "git"
},
{
"lessThan": "bb5133a7d5f3fe5c387770e25f2e00e682ce11ed",
"status": "affected",
"version": "1f760b87e54cf56a25ab68f8dc625e339f6e46d5",
"versionType": "git"
},
{
"lessThan": "00904687b9c5527d569d9a1ca72119823e735a61",
"status": "affected",
"version": "1f760b87e54cf56a25ab68f8dc625e339f6e46d5",
"versionType": "git"
},
{
"lessThan": "10dd1a736d557e310a77117832874729a0175d57",
"status": "affected",
"version": "1f760b87e54cf56a25ab68f8dc625e339f6e46d5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/i2c/busses/i2c-i801.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: i801: fix hardware state machine corruption in error path\n\nA severe livelock and subsequent Hung Task panic were observed in the\ni2c-i801 driver during concurrent Fuzzing. The crash is caused by an\nunconditional hardware register cleanup in the error handling path of\ni801_access().\n\nWhen i801_check_pre() fails (e.g., returning -EBUSY because the SMBus\ncontroller is actively used by BIOS/ACPI), the kernel does not actually\nacquire the hardware ownership. However, the code jumps to the \u0027out\u0027\nlabel and executes:\n\n iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv));\n\nThis forcefully clears the INUSE_STS lock and resets the hardware status\nflags without owning the controller. Doing so interrupts ongoing BIOS/ACPI\ntransactions and totally corrupts the SMBus hardware state machine.\n\nConsequently, all subsequent i801_access() calls fail at the pre-check\nstage, triggering an endless stream of \"SMBus is busy, can\u0027t use it!\"\nerror logs. Over a slow serial console, this printk flood monopolizes\nthe CPU (Console Livelock), starving other processes trying to acquire\nthe mmap_lock down_read semaphore, ultimately triggering the hung task\nwatchdog.\n\nFix this by moving the \u0027out\u0027 label below the hardware register cleanup.\nIf i801_check_pre() fails, we safely bypass the iowrite8() and only\nrelease the software locks (pm_runtime and mutex), strictly adhering to\nthe rule of not releasing resources that were never acquired."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:51:51.900Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2ef69871b313aa0f02182795f5e0f5aa455f203c"
},
{
"url": "https://git.kernel.org/stable/c/ef5a347532932f58748dad485c15039f5168c377"
},
{
"url": "https://git.kernel.org/stable/c/bb5133a7d5f3fe5c387770e25f2e00e682ce11ed"
},
{
"url": "https://git.kernel.org/stable/c/00904687b9c5527d569d9a1ca72119823e735a61"
},
{
"url": "https://git.kernel.org/stable/c/10dd1a736d557e310a77117832874729a0175d57"
}
],
"title": "i2c: i801: fix hardware state machine corruption in error path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64205",
"datePublished": "2026-07-20T16:27:53.310Z",
"dateReserved": "2026-07-19T15:36:31.769Z",
"dateUpdated": "2026-08-17T04:51:51.900Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74586 (GCVE-0-2026-74586)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: clear new_transport when removing a peer
sctp_process_asconf_param() stores a newly added peer transport in
asoc->new_transport. After all parameters in the ASCONF chunk have been
processed, sctp_sf_do_asconf() uses this pointer to send a HEARTBEAT to the
new transport.
An authenticated ASCONF from a remote SCTP peer can add a transport and
remove it again with a wildcard DEL-IP parameter in the same chunk. The
wildcard deletion preserves the transport on which the ASCONF arrived, but
removes the newly added transport through
sctp_assoc_del_nonprimary_peers(). The removal does not clear
asoc->new_transport, leaving it pointing to the removed transport.
sctp_sf_do_asconf() then creates a HEARTBEAT whose chunk->transport points
to the removed transport without holding a transport reference. During
local address replacement, src_out_of_asoc_ok keeps this HEARTBEAT on
control_chunk_list. After the transport is freed by RCU, a successful
ASCONF_ACK for the replacement address releases the queued HEARTBEAT and
sctp_outq_select_transport() reads the freed transport's state.
The issue was found during a static audit of SCTP objects. With an
authenticated peer, the reproducer triggered the same KASAN report in 2
of 2 unpatched runs on a KASAN-enabled netdev/main kernel:
BUG: KASAN: slab-use-after-free in sctp_outq_select_transport
Read of size 4 at addr ffff88800b9bd95c by task python3/197
Call Trace:
sctp_outq_select_transport+0x549/0x8b0 [sctp]
sctp_outq_flush+0x306/0x2c60 [sctp]
sctp_transport_immediate_rtx+0xaf/0x260 [sctp]
sctp_process_asconf_ack+0xa48/0xf70 [sctp]
Allocated by task 197:
sctp_transport_new+0x68/0x650 [sctp]
sctp_assoc_add_peer+0x258/0x12a0 [sctp]
sctp_process_asconf+0x5e9/0x1090 [sctp]
Last potentially related work creation:
__call_rcu_common.constprop.0+0x77/0xb70
sctp_assoc_del_nonprimary_peers+0x7c/0xd0 [sctp]
sctp_process_asconf+0xd9c/0x1090 [sctp]
The first invalid access was a four-byte read of transport->state at
net/sctp/outqueue.c:833. The same reproducer completed the full
authenticated ASCONF and local-address replacement sequence with this
change without a KASAN report or oops.
Clear new_transport when its peer is removed, before it can be used to
create the HEARTBEAT.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf Version: 6af29ccc223b0feb6fc6112281c3fa3cdb1afddf |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74586",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:22.679570Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:58.687Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c0f973bb5118dd1b146cda3fcc8af6f6057befec",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "3b539b317cd052236fed0350364ff1268996ba46",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "db9d8e3b670f841755bc2018f178472dc6064d27",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "31efa656cf6aface26e88f038c14f22ee6ca1500",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "291accf36febce751021888de5f15090f4875b56",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "ca33df36aa0143a1d04f57d2086020c12e7eddb7",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "163847552a571bd55094291f4ffcdc1de0f14a7b",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
},
{
"lessThan": "beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3",
"status": "affected",
"version": "6af29ccc223b0feb6fc6112281c3fa3cdb1afddf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: clear new_transport when removing a peer\n\nsctp_process_asconf_param() stores a newly added peer transport in\nasoc-\u003enew_transport. After all parameters in the ASCONF chunk have been\nprocessed, sctp_sf_do_asconf() uses this pointer to send a HEARTBEAT to the\nnew transport.\n\nAn authenticated ASCONF from a remote SCTP peer can add a transport and\nremove it again with a wildcard DEL-IP parameter in the same chunk. The\nwildcard deletion preserves the transport on which the ASCONF arrived, but\nremoves the newly added transport through\nsctp_assoc_del_nonprimary_peers(). The removal does not clear\nasoc-\u003enew_transport, leaving it pointing to the removed transport.\n\nsctp_sf_do_asconf() then creates a HEARTBEAT whose chunk-\u003etransport points\nto the removed transport without holding a transport reference. During\nlocal address replacement, src_out_of_asoc_ok keeps this HEARTBEAT on\ncontrol_chunk_list. After the transport is freed by RCU, a successful\nASCONF_ACK for the replacement address releases the queued HEARTBEAT and\nsctp_outq_select_transport() reads the freed transport\u0027s state.\n\nThe issue was found during a static audit of SCTP objects. With an\nauthenticated peer, the reproducer triggered the same KASAN report in 2\nof 2 unpatched runs on a KASAN-enabled netdev/main kernel:\n\n BUG: KASAN: slab-use-after-free in sctp_outq_select_transport\n Read of size 4 at addr ffff88800b9bd95c by task python3/197\n\n Call Trace:\n sctp_outq_select_transport+0x549/0x8b0 [sctp]\n sctp_outq_flush+0x306/0x2c60 [sctp]\n sctp_transport_immediate_rtx+0xaf/0x260 [sctp]\n sctp_process_asconf_ack+0xa48/0xf70 [sctp]\n\n Allocated by task 197:\n sctp_transport_new+0x68/0x650 [sctp]\n sctp_assoc_add_peer+0x258/0x12a0 [sctp]\n sctp_process_asconf+0x5e9/0x1090 [sctp]\n\n Last potentially related work creation:\n __call_rcu_common.constprop.0+0x77/0xb70\n sctp_assoc_del_nonprimary_peers+0x7c/0xd0 [sctp]\n sctp_process_asconf+0xd9c/0x1090 [sctp]\n\nThe first invalid access was a four-byte read of transport-\u003estate at\nnet/sctp/outqueue.c:833. The same reproducer completed the full\nauthenticated ASCONF and local-address replacement sequence with this\nchange without a KASAN report or oops.\n\nClear new_transport when its peer is removed, before it can be used to\ncreate the HEARTBEAT."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is triggered when a remote SCTP peer sends an authenticated ASCONF chunk that is processed via sctp_rcv() through the state machine into sctp_sf_do_asconf() and sctp_process_asconf(); this is standard network packet handling, not a local syscall or ioctl path.\nAC:L - The remote peer fully controls a single ASCONF containing ADD_IP followed by wildcard DEL-IP to add then remove a transport while leaving asoc-\u003enew_transport dangling; combined with routine SCTP local address replacement (src_out_of_asoc_ok), the KASAN reproducer hit the UAF in 2/2 runs.\nPR:N - Exploitation requires only being an established SCTP association peer sending SCTP-AUTH-protected ASCONF traffic negotiated during the normal handshake (or addip_noauth); no Linux account, capability, or init-namespace privilege is needed on the victim host.\nUI:N - No victim user action such as opening a file or mounting a filesystem is required; the kernel automatically processes attacker-crafted ASCONF packets on an existing SCTP association during normal server operation.\nS:U - Impact is confined to kernel heap corruption on the vulnerable host (slab UAF on sctp_transport) and potential privilege escalation within that kernel; it does not cross VM, container, or IOMMU security boundaries.\nC:H - KASAN reports slab-use-after-free with a 4-byte read of freed sctp_transport-\u003estate in sctp_outq_select_transport(); UAF on heap transport objects enables grooming for arbitrary kernel memory disclosure per kernel CVSS guidance.\nI:H - The dangling sctp_transport pointer is embedded in a queued HEARTBEAT control chunk without a reference; UAF on this heap object can be leveraged via heap spraying for arbitrary kernel writes and control-flow hijacking, not merely a bounded corruption.\nA:H - Dereferencing the freed transport during sctp_outq_flush() causes a reproducible kernel UAF/oops; remote peers can repeatedly trigger this against SCTP endpoints handling ADD-IP traffic, yielding denial of service or crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:12.552Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c0f973bb5118dd1b146cda3fcc8af6f6057befec"
},
{
"url": "https://git.kernel.org/stable/c/3b539b317cd052236fed0350364ff1268996ba46"
},
{
"url": "https://git.kernel.org/stable/c/db9d8e3b670f841755bc2018f178472dc6064d27"
},
{
"url": "https://git.kernel.org/stable/c/31efa656cf6aface26e88f038c14f22ee6ca1500"
},
{
"url": "https://git.kernel.org/stable/c/291accf36febce751021888de5f15090f4875b56"
},
{
"url": "https://git.kernel.org/stable/c/ca33df36aa0143a1d04f57d2086020c12e7eddb7"
},
{
"url": "https://git.kernel.org/stable/c/163847552a571bd55094291f4ffcdc1de0f14a7b"
},
{
"url": "https://git.kernel.org/stable/c/beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3"
}
],
"title": "sctp: clear new_transport when removing a peer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74586",
"datePublished": "2026-08-22T15:31:39.094Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:58.687Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72349 (GCVE-0-2026-72349)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-08-17 05:12
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_rateest: fix u64 truncation in xt_rateest_mt()
On links faster than ~34 Gbps, where byte rate may exceed 2^32-1
(~ 4.3 GBps), the comparison result becomes incorrect because the
truncated value no longer reflects the actual estimator rate.
Fix by changing the local variables to u64.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 Version: 1c0d32fde5bdf1184bc274f864c09799278a1114 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_rateest.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "77e9ba358d63fe2eb03c90d29ea85651d95cf2e6",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "a3ba938f45cb00f6bf49d3aa3647df9b017f5f08",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "bab305dd769d78074adca73505cc2509e1206bf2",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "5da915fc159c6b4091669447588e520183969cca",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "d5cc4c12a4b90bf099199c3c49ecda7e694f2a2b",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "e702f6dd5d21e331f55fd9168c0210542008546d",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "905a927b2e6fec7b174e9e5644d271047b61378f",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
},
{
"lessThan": "444853cd438201007da5359821adcc2995655ab1",
"status": "affected",
"version": "1c0d32fde5bdf1184bc274f864c09799278a1114",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_rateest.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_rateest: fix u64 truncation in xt_rateest_mt()\n\nOn links faster than ~34 Gbps, where byte rate may exceed 2^32-1\n(~ 4.3 GBps), the comparison result becomes incorrect because the\ntruncated value no longer reflects the actual estimator rate.\n\nFix by changing the local variables to u64."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:12:58.965Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/77e9ba358d63fe2eb03c90d29ea85651d95cf2e6"
},
{
"url": "https://git.kernel.org/stable/c/a3ba938f45cb00f6bf49d3aa3647df9b017f5f08"
},
{
"url": "https://git.kernel.org/stable/c/bab305dd769d78074adca73505cc2509e1206bf2"
},
{
"url": "https://git.kernel.org/stable/c/5da915fc159c6b4091669447588e520183969cca"
},
{
"url": "https://git.kernel.org/stable/c/d5cc4c12a4b90bf099199c3c49ecda7e694f2a2b"
},
{
"url": "https://git.kernel.org/stable/c/e702f6dd5d21e331f55fd9168c0210542008546d"
},
{
"url": "https://git.kernel.org/stable/c/905a927b2e6fec7b174e9e5644d271047b61378f"
},
{
"url": "https://git.kernel.org/stable/c/444853cd438201007da5359821adcc2995655ab1"
}
],
"title": "netfilter: xt_rateest: fix u64 truncation in xt_rateest_mt()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72349",
"datePublished": "2026-08-15T05:55:52.916Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-08-17T05:12:58.965Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64473 (GCVE-0-2026-64473)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-08-17 04:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio: Remove device debugfs before releasing devres
VFIO device debugfs files created with debugfs_create_devm_seqfile()
store a devres allocated debugfs_devm_entry as inode private data.
vfio_unregister_group_dev() currently calls vfio_device_del() before
vfio_device_debugfs_exit(), but device_del() releases devres. This can
leave debugfs entries visible with stale inode private data while
unregister waits for userspace references to drain.
Remove the per-device debugfs tree before vfio_device_del(). The debugfs
view is diagnostic only, so losing it at the start of unregister is
preferable to preserving entries whose backing storage may already have
been released.
Complete the teardown by clearing the per-device debugfs root after
removal. This matches the global debugfs root cleanup and prevents
future users from mistaking a removed dentry for a live debugfs tree
during the remainder of unregister.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/debugfs.c",
"drivers/vfio/vfio_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6cc60b41d61657dc469893d14e8e55d160056ff1",
"status": "affected",
"version": "2202844e4468c7539dba0c0b06577c93735af952",
"versionType": "git"
},
{
"lessThan": "a53109ffb6b5148e11a27fb7670355b92db12dd3",
"status": "affected",
"version": "2202844e4468c7539dba0c0b06577c93735af952",
"versionType": "git"
},
{
"lessThan": "a5df401dc84f091e20b045560569f0736758fea7",
"status": "affected",
"version": "2202844e4468c7539dba0c0b06577c93735af952",
"versionType": "git"
},
{
"lessThan": "dc7fe87de492ea7f33a72b78d26650b75bf37f4f",
"status": "affected",
"version": "2202844e4468c7539dba0c0b06577c93735af952",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/debugfs.c",
"drivers/vfio/vfio_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio: Remove device debugfs before releasing devres\n\nVFIO device debugfs files created with debugfs_create_devm_seqfile()\nstore a devres allocated debugfs_devm_entry as inode private data.\nvfio_unregister_group_dev() currently calls vfio_device_del() before\nvfio_device_debugfs_exit(), but device_del() releases devres. This can\nleave debugfs entries visible with stale inode private data while\nunregister waits for userspace references to drain.\n\nRemove the per-device debugfs tree before vfio_device_del(). The debugfs\nview is diagnostic only, so losing it at the start of unregister is\npreferable to preserving entries whose backing storage may already have\nbeen released.\n\nComplete the teardown by clearing the per-device debugfs root after\nremoval. This matches the global debugfs root cleanup and prevents\nfuture users from mistaking a removed dentry for a live debugfs tree\nduring the remainder of unregister."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:19.303Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6cc60b41d61657dc469893d14e8e55d160056ff1"
},
{
"url": "https://git.kernel.org/stable/c/a53109ffb6b5148e11a27fb7670355b92db12dd3"
},
{
"url": "https://git.kernel.org/stable/c/a5df401dc84f091e20b045560569f0736758fea7"
},
{
"url": "https://git.kernel.org/stable/c/dc7fe87de492ea7f33a72b78d26650b75bf37f4f"
}
],
"title": "vfio: Remove device debugfs before releasing devres",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64473",
"datePublished": "2026-07-25T08:51:36.702Z",
"dateReserved": "2026-07-19T15:36:31.790Z",
"dateUpdated": "2026-08-17T04:56:19.303Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92511 (GCVE-0-2026-92511)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_destroy_cq_user()
When accessing a CQ via the netlink path the only synchronization
mechanism for the said CQ is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_destroy_cq_user(), which is too late, since by that point
vendor-specific resources associated with the CQ might already be
freed. This can leave a short window where the CQ remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_begin_del() call to the start of
ib_destroy_cq_user(), ensuring that the CQ is removed from restrack
before its internal resources are released. This guarantees that no new
users hold references to a CQ that is in the process of destruction.
In addition, this change preserves the intended inverted order
between create and destroy routines: resources are added to
restrack at the end of successful creation, and hence shall be removed
from the restrack first thing during the destruction flow, which keeps
the lifecycle management consistent and predictable.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 08f294a1524bc3211a28091daa6c7513828c7d33 Version: 08f294a1524bc3211a28091daa6c7513828c7d33 Version: 08f294a1524bc3211a28091daa6c7513828c7d33 Version: 08f294a1524bc3211a28091daa6c7513828c7d33 Version: 08f294a1524bc3211a28091daa6c7513828c7d33 Version: 08f294a1524bc3211a28091daa6c7513828c7d33 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "42f7a0c7a94003059540cce448acabfa62ad119d",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
},
{
"lessThan": "253c2ed71a532c70fa0e64317ceb02bb1a50c84c",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
},
{
"lessThan": "b85a148731eceffacb6a030950187d785175607f",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
},
{
"lessThan": "197c262dbf94c0f7ab7ac54b66f892ce9f343232",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
},
{
"lessThan": "8a72a6aad84b3928dbb5e564bff1f56a7ec222ae",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
},
{
"lessThan": "3481bec4dfc4aee24ffea5a547ee95b70b67d9d5",
"status": "affected",
"version": "08f294a1524bc3211a28091daa6c7513828c7d33",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.16"
},
{
"lessThan": "4.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in ib_destroy_cq_user()\n\nWhen accessing a CQ via the netlink path the only synchronization\nmechanism for the said CQ is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nib_destroy_cq_user(), which is too late, since by that point\nvendor-specific resources associated with the CQ might already be\nfreed. This can leave a short window where the CQ remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nib_destroy_cq_user(), ensuring that the CQ is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a CQ that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached by a local IB_USER_VERBS_CMD_DESTROY_CQ/UVERBS_METHOD_CQ_DESTROY on /dev/infiniband/uverbsN (ib_uverbs_destroy_cq \u2192 uobj_get_destroy \u2192 uverbs_free_cq \u2192 ib_destroy_cq_user) racing NETLINK_RDMA RDMA_NLDEV_CMD_RES_CQ_GET (nldev_res_get_cq_doit/dumpit \u2192 rdma_restrack_get_byid/rdma_restrack_get \u2192 fill_res_cq_entry). No remote RoCE/iWARP message carries the trigger.\nAC:L - The attacker drives both sides: one thread destroys their CQ via ib_uverbs_destroy_cq/uverbs_free_cq while another issues RDMA_NLDEV_CMD_RES_CQ_GET. Pre-fix, rdma_restrack_del() ran only after cq-\u003edevice-\u003eops.destroy_cq() returned, so rdma_restrack_get() still succeeds throughout vendor teardown with no victim-controlled timing.\nPR:L - ib_uverbs_open has no CAP_* check and uverbs_devnode sets /dev/infiniband/uverbsN to 0666. RDMA_NLDEV_CMD_RES_CQ_GET is registered without RDMA_NL_ADMIN_PERM, and NETLINK_RDMA unicast to portid 0 does not require CAP_NET_ADMIN, so an unprivileged user on a system with an RDMA device can create, dump, and destroy their own CQ.\nUI:N - The attacker creates the CQ with IB_USER_VERBS_CMD_CREATE_CQ/UVERBS_METHOD_CQ_CREATE, dumps it with RDMA_NLDEV_CMD_RES_CQ_GET, and destroys it with IB_USER_VERBS_CMD_DESTROY_CQ on their own uverbs fd; no other user must mount, open a file, or otherwise act.\nS:U - fill_res_cq_entry and cq-\u003edevice-\u003eops.destroy_cq run in the same host kernel that owns the ib_cq; the dangling vendor CQ state is consumed in-kernel (nldev restrack dump versus ib_destroy_cq_user), not across a KVM/Xen, IOMMU, or other authorization boundary.\nC:H - After ib_destroy_cq_user calls destroy_cq, fill_res_cq_entry still holds the CQ via rdma_restrack_get and invokes vendor fill. c4iw_destroy_cq\u0027s destroy_cq dma_free_coherent()s cq-\u003equeue and kfree()s cq-\u003esw_queue, then c4iw_fill_res_cq_entry copies those CQEs into the netlink skb; hns_roce_fill_res_cq_entry_raw query_cqc()s a CQN after DESTROY_CQC/hns_roce_table_put. That is a UAF read of freed CQ backing store.\nI:H - The same window leaves vendor CQ allocations (c4iw cq-\u003equeue/sw_queue, hns mtr after hns_roce_mtr_destroy, mlx5 cq-\u003ebuf.umem after ib_umem_release, bnxt hwq PBLs after bnxt_qplib_free_hwq) freed while the ib_cq remains in the restrack xarray. Reclaiming those objects while fill_res_cq_entry/vendor ops still run is a UAF write/control-flow primitive.\nA:H - fill_res_cq_entry and vendor fill (c4iw_fill_res_cq_entry dereferencing dma-freed cq-\u003equeue, hns/mlx5/bnxt querying a destroyed CQN) run after destroy_cq has released those resources, so the race oopses the kernel, and repeating create_cq/destroy_cq against concurrent RDMA_NLDEV_CMD_RES_CQ_GET panics the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:17.289Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/42f7a0c7a94003059540cce448acabfa62ad119d"
},
{
"url": "https://git.kernel.org/stable/c/253c2ed71a532c70fa0e64317ceb02bb1a50c84c"
},
{
"url": "https://git.kernel.org/stable/c/b85a148731eceffacb6a030950187d785175607f"
},
{
"url": "https://git.kernel.org/stable/c/197c262dbf94c0f7ab7ac54b66f892ce9f343232"
},
{
"url": "https://git.kernel.org/stable/c/8a72a6aad84b3928dbb5e564bff1f56a7ec222ae"
},
{
"url": "https://git.kernel.org/stable/c/3481bec4dfc4aee24ffea5a547ee95b70b67d9d5"
}
],
"title": "RDMA/core: Fix potential use after free in ib_destroy_cq_user()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92511",
"datePublished": "2026-09-17T16:10:21.449Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-19T09:04:17.289Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97545 (GCVE-0-2026-97545)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: don't leak new_bp if xfs_btree_bload_drop_buf fails
LOLLM observes that in xfs_btree_bload_prep_block,
xfs_btree_bload_drop_buf can hit an IO error if writing the delwri
buffer list to disk fails. In this case, we fail to release new_bp,
which means we lose a locked buffer. Fix that.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_btree_staging.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "355b8a5d7e9a38fca8dbf7a4721450252ac7868f",
"status": "affected",
"version": "e069d549705e49841247acf9b3176744e27d5425",
"versionType": "git"
},
{
"lessThan": "176a53af77b430e1c19ee15fc492145ace666de7",
"status": "affected",
"version": "e069d549705e49841247acf9b3176744e27d5425",
"versionType": "git"
},
{
"lessThan": "b19dfd4546088a0823e0c47f8ceb6b2775bd1ac7",
"status": "affected",
"version": "e069d549705e49841247acf9b3176744e27d5425",
"versionType": "git"
},
{
"lessThan": "f1930bc578095409c2dcfca6e4e898b24f0f0de6",
"status": "affected",
"version": "e069d549705e49841247acf9b3176744e27d5425",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_btree_staging.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: don\u0027t leak new_bp if xfs_btree_bload_drop_buf fails\n\nLOLLM observes that in xfs_btree_bload_prep_block,\nxfs_btree_bload_drop_buf can hit an IO error if writing the delwri\nbuffer list to disk fails. In this case, we fail to release new_bp,\nwhich means we lose a locked buffer. Fix that."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:08.423Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/355b8a5d7e9a38fca8dbf7a4721450252ac7868f"
},
{
"url": "https://git.kernel.org/stable/c/176a53af77b430e1c19ee15fc492145ace666de7"
},
{
"url": "https://git.kernel.org/stable/c/b19dfd4546088a0823e0c47f8ceb6b2775bd1ac7"
},
{
"url": "https://git.kernel.org/stable/c/f1930bc578095409c2dcfca6e4e898b24f0f0de6"
}
],
"title": "xfs: don\u0027t leak new_bp if xfs_btree_bload_drop_buf fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97545",
"datePublished": "2026-09-25T10:21:40.433Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-19T09:09:08.423Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93814 (GCVE-0-2026-93814)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
spi: core: Abort active target transfer on controller suspend
When an SPI controller operating in target mode has a transfer in
progress at the time of system suspend, the suspend path proceeds
without aborting the ongoing transfer. This can leave the hardware in
an inconsistent state, potentially causing the system to hang or fail
to resume cleanly.
Fix this by invoking the controller's target_abort callback from
spi_controller_suspend() when the controller is in target mode and the
callback is registered. This ensures any active target transfer is
cleanly terminated before the controller is suspended.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a75d9eb78c89d3fa8d503966c91a51f02eced768",
"status": "affected",
"version": "6c364062bfed3c34490e85bea52ff6e2d4f0f281",
"versionType": "git"
},
{
"lessThan": "1cc84ca8599b8fa64014821bca453ebb3326c71e",
"status": "affected",
"version": "6c364062bfed3c34490e85bea52ff6e2d4f0f281",
"versionType": "git"
},
{
"lessThan": "b81ac605763c319ca9928a237818ab4e8ab7bb59",
"status": "affected",
"version": "6c364062bfed3c34490e85bea52ff6e2d4f0f281",
"versionType": "git"
},
{
"lessThan": "f6a0cafa265c8a4aed585d873747e3b88b146eed",
"status": "affected",
"version": "6c364062bfed3c34490e85bea52ff6e2d4f0f281",
"versionType": "git"
},
{
"lessThan": "c1bab046d4786c5b17aab7c5225bf0d4a2a2d19b",
"status": "affected",
"version": "6c364062bfed3c34490e85bea52ff6e2d4f0f281",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.13"
},
{
"lessThan": "4.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nspi: core: Abort active target transfer on controller suspend\n\nWhen an SPI controller operating in target mode has a transfer in\nprogress at the time of system suspend, the suspend path proceeds\nwithout aborting the ongoing transfer. This can leave the hardware in\nan inconsistent state, potentially causing the system to hang or fail\nto resume cleanly.\n\nFix this by invoking the controller\u0027s target_abort callback from\nspi_controller_suspend() when the controller is in target mode and the\ncallback is registered. This ensures any active target transfer is\ncleanly terminated before the controller is suspended."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:46.916Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a75d9eb78c89d3fa8d503966c91a51f02eced768"
},
{
"url": "https://git.kernel.org/stable/c/1cc84ca8599b8fa64014821bca453ebb3326c71e"
},
{
"url": "https://git.kernel.org/stable/c/b81ac605763c319ca9928a237818ab4e8ab7bb59"
},
{
"url": "https://git.kernel.org/stable/c/f6a0cafa265c8a4aed585d873747e3b88b146eed"
},
{
"url": "https://git.kernel.org/stable/c/c1bab046d4786c5b17aab7c5225bf0d4a2a2d19b"
}
],
"title": "spi: core: Abort active target transfer on controller suspend",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93814",
"datePublished": "2026-09-24T16:02:50.963Z",
"dateReserved": "2026-09-18T17:59:28.790Z",
"dateUpdated": "2026-10-03T10:57:46.916Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74666 (GCVE-0-2026-74666)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
packet: synchronize pressure clearing with ring reconfiguration
packet_set_ring() updates the RX ring state under sk_receive_queue.lock,
but used to publish the tpacket receive mode through po->prot_hook.func
after releasing that lock. packet_poll() and packet_recvmsg() can then
run the pressure clearing path after the ring has been cleared while
still seeing tpacket_rcv, causing __packet_rcv_has_room() to dereference
stale or NULL ring storage.
Move the existing receive hook assignment into the same
sk_receive_queue.lock section as the ring state update. Keep the
assignment otherwise unchanged, including on TX ring reconfiguration, to
avoid adding behavior changes that are not required for the fix.
Serialize packet_recvmsg() pressure clearing with the same queue lock
only after PACKET_SOCK_PRESSURE has been observed. If the flag is clear
and the socket has moved away from tpacket_rcv, packet_set_ring() has
already detached the socket and waited for synchronize_net(), so no new
packet input can set the flag again.
packet_poll() already holds sk_receive_queue.lock, so it uses the new
unlocked helper directly.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Version: 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74666",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:12.266180Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:08.102Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bf3c8e86bc8ad111be3f3136125e255344bcb3da",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "8cfb2e71926a682f36c4240067d424074dd8f70f",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "f015c9de92b731814059a343b765c60c0196225c",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "cf8189b82bb93f219ab740e0346c919ad65ada62",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "ad740b4990347521f0db260d381f9f74e7b340ba",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "2c7b5eb87b2b288cdbde825f21d2b83b2f5da747",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "a08196c3cc105947746ec21309edfbb60275fcdb",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
},
{
"lessThan": "1a35da325cac4d5bcad76a2aa943408a6f1d9000",
"status": "affected",
"version": "2ccdbaa6d55b0656244ba57c4b56765a0af76c0a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npacket: synchronize pressure clearing with ring reconfiguration\n\npacket_set_ring() updates the RX ring state under sk_receive_queue.lock,\nbut used to publish the tpacket receive mode through po-\u003eprot_hook.func\nafter releasing that lock. packet_poll() and packet_recvmsg() can then\nrun the pressure clearing path after the ring has been cleared while\nstill seeing tpacket_rcv, causing __packet_rcv_has_room() to dereference\nstale or NULL ring storage.\n\nMove the existing receive hook assignment into the same\nsk_receive_queue.lock section as the ring state update. Keep the\nassignment otherwise unchanged, including on TX ring reconfiguration, to\navoid adding behavior changes that are not required for the fix.\n\nSerialize packet_recvmsg() pressure clearing with the same queue lock\nonly after PACKET_SOCK_PRESSURE has been observed. If the flag is clear\nand the socket has moved away from tpacket_rcv, packet_set_ring() has\nalready detached the socket and waited for synchronize_net(), so no new\npacket input can set the flag again.\n\npacket_poll() already holds sk_receive_queue.lock, so it uses the new\nunlocked helper directly."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is hit only from local AF_PACKET syscalls\u2014setsockopt(PACKET_RX_RING) racing poll(2)/recvmsg(2) pressure clearing in packet_poll()/packet_recvmsg()\u2014not from remote packet receive paths like ksmbd, nfsd, or the TCP/IP stack.\nAC:L - The attacker controls both race sides: one thread polls/recvmsg while PACKET_SOCK_PRESSURE is set, another tears down the RX ring via PACKET_RX_RING; packet_set_ring()\u0027s synchronize_net() window makes the stale tpacket_rcv vs NULL/freed pg_vec mismatch reliably winnable.\nPR:L - packet_create() requires ns_capable(net-\u003euser_ns, CAP_NET_RAW); unprivileged users obtain CAP_NET_RAW via user+network namespaces (unshare -Urn) or container defaults (Docker NET_RAW), without init-namespace root.\nUI:N - No victim action is required; the attacker creates the AF_PACKET socket, configures the mmap RX ring, fills it to set PACKET_SOCK_PRESSURE, and races ring teardown against its own poll/recvmsg calls.\nS:U - Stale/NULL ring dereferences corrupt kernel heap state on the same host; this is standard kernel memory corruption within one security authority, not a VM escape, IOMMU bypass, or other cross-boundary scope change.\nC:H - __packet_rcv_has_room() follows tpacket_rcv and dereferences rb-\u003epg_vec or prb_bdqc block pointers after packet_set_ring() cleared/freed the ring, yielding NULL-dereference or use-after-free reads of ring metadata and mmap-backed pages.\nI:H - Freed ring storage and stale prb_bdqc/pkbdq pointers remain attacker-influenced through mmap and concurrent ring operations, providing a controllable kernel heap use-after-free write primitive typical of AF_PACKET ring reconfiguration races.\nA:H - NULL pg_vec indexing in packet_lookup_frame() or stale block access in prb_lookup_block() from the pressure-clearing path causes an immediate kernel oops/panic, giving any qualifying local attacker repeatable host-wide denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:40:00.544Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bf3c8e86bc8ad111be3f3136125e255344bcb3da"
},
{
"url": "https://git.kernel.org/stable/c/8cfb2e71926a682f36c4240067d424074dd8f70f"
},
{
"url": "https://git.kernel.org/stable/c/f015c9de92b731814059a343b765c60c0196225c"
},
{
"url": "https://git.kernel.org/stable/c/cf8189b82bb93f219ab740e0346c919ad65ada62"
},
{
"url": "https://git.kernel.org/stable/c/ad740b4990347521f0db260d381f9f74e7b340ba"
},
{
"url": "https://git.kernel.org/stable/c/2c7b5eb87b2b288cdbde825f21d2b83b2f5da747"
},
{
"url": "https://git.kernel.org/stable/c/a08196c3cc105947746ec21309edfbb60275fcdb"
},
{
"url": "https://git.kernel.org/stable/c/1a35da325cac4d5bcad76a2aa943408a6f1d9000"
}
],
"title": "packet: synchronize pressure clearing with ring reconfiguration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74666",
"datePublished": "2026-08-22T15:32:38.098Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-10-16T19:16:08.102Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89636 (GCVE-0-2026-89636)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: clear ce->tgthint in free_tgts()
When free_tgts() frees all structures in ce->tlist, ce->tgthint
is left pointing to one of the freed cache_dfs_tgt structures.
If ce->tgthint is not reset before it is used later, it results
in a use-after-free.
Set ce->tgthint to NULL in free_tgts() after the elements are
freed to reflect that no elements remain.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 54be1f6c1c37498bba557049df646cc239fa37e3 Version: 54be1f6c1c37498bba557049df646cc239fa37e3 Version: 54be1f6c1c37498bba557049df646cc239fa37e3 Version: 54be1f6c1c37498bba557049df646cc239fa37e3 Version: 54be1f6c1c37498bba557049df646cc239fa37e3 Version: 54be1f6c1c37498bba557049df646cc239fa37e3 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89636",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:47.621556Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:45.662Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/dfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "14f60e959b5ac813715ff72e127beb3584ddabf6",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
},
{
"lessThan": "3ff9462bb7a06d8d32a1dc02d39580b078ec9e55",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
},
{
"lessThan": "7507bd1885643d0461a6017767492450af1ce2a3",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
},
{
"lessThan": "9ab46a13798a61d9d020b01d4e57efdabe6624fa",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
},
{
"lessThan": "5baab40404a9393bcc0b7b8f1950bf2c307e0984",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
},
{
"lessThan": "b1b741cf8e7ce1b91d937e23decd3d3358748700",
"status": "affected",
"version": "54be1f6c1c37498bba557049df646cc239fa37e3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/dfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: clear ce-\u003etgthint in free_tgts()\n\nWhen free_tgts() frees all structures in ce-\u003etlist, ce-\u003etgthint\nis left pointing to one of the freed cache_dfs_tgt structures.\n\nIf ce-\u003etgthint is not reset before it is used later, it results\nin a use-after-free.\n\nSet ce-\u003etgthint to NULL in free_tgts() after the elements are\nfreed to reflect that no elements remain."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The dangling ce-\u003etgthint is created while handling FSCTL_DFS_GET_REFERRALS/TRANS2_GET_DFS_REFERRAL replies from a remote SMB server over TCP/445 (smb2_get_dfs_refer \u2192 cache_refresh_path \u2192 update_cache_entry_locked \u2192 free_tgts). A malicious, compromised, or MITM\u0027d DFS server reaches this purely over the network.\nAC:L - A hostile DFS server controls referral TTL (down to CACHE_MIN_TTL), target lists, and TCP resets that drive dfs_cache_refresh and reconnect into update_cache_entry_locked; after free_tgts() the later get_tgt_name()/dfs_cache_noreq_update_tgthint() use is deterministic, and the attacker can size and retry referrals to leave the stale hint and reclaim the slab.\nPR:N - The attacker is the remote SMB/DFS peer (or a MITM on an unsigned session) and needs no account, capability, or local privileges on the victim; the client authenticates to that server, and the kernel DFS cache parses the reply regardless of which local user owns the mount.\nUI:N - Once a DFS CIFS mount exists (fstab, autofs/systemd automount, enterprise DFS, cifsroot), dfs_cache_refresh delayed work and reconnect-driven cifs_tree_connect()/dfs_cache_noreq_find() use the stale tgthint automatically after a server-induced refresh or TCP drop, with no further user action.\nS:U - The use-after-free is of kmalloc\u0027d cache_dfs_tgt objects in the client kernel heap and remains in the same host kernel security authority; it does not cross a VM, IOMMU, or sandbox boundary.\nC:H - get_tgt_name() and dfs_cache_noreq_update_tgthint() dereference the freed cache_dfs_tgt (t-\u003ename). Reclaiming that slab with attacker-controlled SMB allocations yields an arbitrary kernel read via kstrdup/strcasecmp of a sprayed name pointer.\nI:H - Use-after-free of the heap cache_dfs_tgt enables heap spraying and overlapping live objects; the dangling hint is also copied into DFS referral state and used for failover tree-connect, giving a write/control-flow primitive once the object is reclaimed.\nA:H - Dereferencing the freed cache_dfs_tgt from reconnect (cifs_tree_connect \u2192 dfs_cache_noreq_find) or dfs_cache_find oopses or panics the client kernel, and a malicious server can retrigger it on every refresh or reconnect."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:08.281Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/14f60e959b5ac813715ff72e127beb3584ddabf6"
},
{
"url": "https://git.kernel.org/stable/c/3ff9462bb7a06d8d32a1dc02d39580b078ec9e55"
},
{
"url": "https://git.kernel.org/stable/c/7507bd1885643d0461a6017767492450af1ce2a3"
},
{
"url": "https://git.kernel.org/stable/c/9ab46a13798a61d9d020b01d4e57efdabe6624fa"
},
{
"url": "https://git.kernel.org/stable/c/5baab40404a9393bcc0b7b8f1950bf2c307e0984"
},
{
"url": "https://git.kernel.org/stable/c/b1b741cf8e7ce1b91d937e23decd3d3358748700"
}
],
"title": "smb: client: clear ce-\u003etgthint in free_tgts()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89636",
"datePublished": "2026-09-11T19:45:30.283Z",
"dateReserved": "2026-09-11T19:38:34.739Z",
"dateUpdated": "2026-10-19T08:50:08.281Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53384 (GCVE-0-2026-53384)
Vulnerability from cvelistv5
Published
2026-07-19 11:59
Modified
2026-10-19 20:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails
dw8250_probe() registers the 8250 port via serial8250_register_8250_port()
and then, if the device has a clock, registers a clock notifier. If
clk_notifier_register() fails, probe returns the error but leaves the
8250 port registered. The matching serial8250_unregister_port() lives
in dw8250_remove(), which is not called when probe fails, so the port
slot stays occupied until the device is rebound or the system is
rebooted. The devm-allocated driver data is freed while the port still
references it (via the saved private_data and serial_in/serial_out
callbacks), so any access to that port slot before a rebind is a
use-after-free hazard.
Unregister the port on the clk_notifier_register() error path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c Version: 57f83e5dd6a33c4696699954784f8fee789b1d0c |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-53384",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:29:55.097049Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:07:45.552Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/8250/8250_dw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ccdf4510a3873b14e5e348cdb038717996f09fda",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "511d2b92f8d20de04acafab676150d26fb5c67f4",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "07ffe414a708ae60551401cec5d727ed156b8caf",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "3d205fe80f2181f0109150ad1fa06ee5bc046935",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "d72650a4f334581b23a1892b888a4cb1be142f76",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "778b9dda4b24005a27bcd9c35c110bf8d7f259ca",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
},
{
"lessThan": "10fc708b4de7f86002d2d735a2dbf3b5b7f65692",
"status": "affected",
"version": "57f83e5dd6a33c4696699954784f8fee789b1d0c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/8250/8250_dw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.177",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.144",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.95",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.38",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.14",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.177",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.144",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.95",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.38",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.14",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.2",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: 8250_dw: unregister 8250 port if clk_notifier_register() fails\n\ndw8250_probe() registers the 8250 port via serial8250_register_8250_port()\nand then, if the device has a clock, registers a clock notifier. If\nclk_notifier_register() fails, probe returns the error but leaves the\n8250 port registered. The matching serial8250_unregister_port() lives\nin dw8250_remove(), which is not called when probe fails, so the port\nslot stays occupied until the device is rebound or the system is\nrebooted. The devm-allocated driver data is freed while the port still\nreferences it (via the saved private_data and serial_in/serial_out\ncallbacks), so any access to that port slot before a rebind is a\nuse-after-free hazard.\n\nUnregister the port on the clk_notifier_register() error path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is reached when the registered 8250 port is exercised via tty/console/IRQ callbacks in dw8250_serial_in/out; on dw8250-equipped embedded/industrial systems (RZN1, StarFive, Intel PCH UARTs) serial ports are commonly bridged to TCP (ser2net, Modbus/SCADA gateways, BMC SOL), letting a remote attacker drive those kernel paths without physical UART access.\nAC:L - Once clk_notifier_register() fails during probe and devm frees dw8250_data while the port stays registered, any subsequent tty open, console write, or IRQ-driven handler reliably dereferences the dangling private_data and membase; no attacker-uncontrollable race or heap layout is required.\nPR:N - The corrupt state can arise automatically at boot when probe fails under memory pressure (no attacker action), and on typical embedded deployments the affected /dev/ttyS* is reachable via unauthenticated network serial bridges or world-accessible console nodes without Linux account privileges.\nUI:N - Exploitation requires no victim interaction beyond the attacker (or boot-time probe failure) accessing the already-registered port; no mount, plug-in, or UI action is needed.\nS:U - Impact is confined to kernel memory via the serial driver UAF; it does not cross VM, container, or IOMMU security boundaries into a separate authority.\nC:H - The bug leaves uart_port callbacks pointing at freed devm_kzalloc(dw8250_data) and freed devm_ioremap(membase), giving a kernel heap/IO-memory UAF that can be leveraged for arbitrary kernel memory disclosure.\nI:H - The same dangling private_data and membase pointers in serial_in/serial_out/IRQ handlers enable kernel heap corruption and control-flow hijack primitives typical of exploitable UAFs.\nA:H - Any access to the orphaned port slot (tty I/O, serial console output, or IRQ handling) dereferences freed driver data and can cause kernel oops/panic, especially if the port serves as boot console."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:50:34.893Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ccdf4510a3873b14e5e348cdb038717996f09fda"
},
{
"url": "https://git.kernel.org/stable/c/511d2b92f8d20de04acafab676150d26fb5c67f4"
},
{
"url": "https://git.kernel.org/stable/c/07ffe414a708ae60551401cec5d727ed156b8caf"
},
{
"url": "https://git.kernel.org/stable/c/3d205fe80f2181f0109150ad1fa06ee5bc046935"
},
{
"url": "https://git.kernel.org/stable/c/d72650a4f334581b23a1892b888a4cb1be142f76"
},
{
"url": "https://git.kernel.org/stable/c/778b9dda4b24005a27bcd9c35c110bf8d7f259ca"
},
{
"url": "https://git.kernel.org/stable/c/10fc708b4de7f86002d2d735a2dbf3b5b7f65692"
}
],
"title": "serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53384",
"datePublished": "2026-07-19T11:59:32.153Z",
"dateReserved": "2026-06-09T07:44:35.401Z",
"dateUpdated": "2026-10-19T20:07:45.552Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74283 (GCVE-0-2026-74283)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: require net admin for TIPCv2 netlink mutators
TIPCv2 registers mutating generic-netlink operations without admin
permission flags. Generic netlink only checks CAP_NET_ADMIN when an
operation sets GENL_ADMIN_PERM or GENL_UNS_ADMIN_PERM, so a local
unprivileged process can currently change TIPC state through commands
such as TIPC_NL_NET_SET, TIPC_NL_KEY_SET, TIPC_NL_KEY_FLUSH, and
bearer enable/disable.
The legacy TIPC netlink API already checks netlink_net_capable(...,
CAP_NET_ADMIN) for administrative commands. Give the TIPCv2 mutators
the equivalent generic-netlink gate. Use GENL_UNS_ADMIN_PERM, which
maps to the same namespace-aware CAP_NET_ADMIN check that
netlink_net_capable() performs, so the behaviour matches the legacy
path and keeps working for CAP_NET_ADMIN holders in a non-initial user
namespace (containers).
A QEMU/KASAN repro run as uid/gid 65534 with zero effective
capabilities previously succeeded in changing the network id and node
identity, setting and flushing key material, and enabling/disabling a
UDP bearer. With this patch applied the same operations fail with
-EPERM.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf Version: 0655f6a8635b1b66f2434d5556b1044c14b1ccaf |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74283",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:09.795417Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:30.055Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/netlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b06fb5f78a9af0929aaa47c92d0b7bca0617fb25",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "52864c6c13dcc292481eabfeb3c31a86c3ec06f2",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "e87dcc1a644d087de0bb6c94c6dd28c29b89597f",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "9b937de4b3ded62a24da6e8d9d623cdb2748fa74",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "c9668a4adb2264625daeeabc7466b783badd4614",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "cebaefe1aceb650d5c99a4c0e1a4dde09e211818",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "56f0a2e0a1d004e025cd031c3a801ab73959269f",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
},
{
"lessThan": "86b0c540e2ea397cde021eecd24145f7c16a3d4e",
"status": "affected",
"version": "0655f6a8635b1b66f2434d5556b1044c14b1ccaf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/netlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: require net admin for TIPCv2 netlink mutators\n\nTIPCv2 registers mutating generic-netlink operations without admin\npermission flags. Generic netlink only checks CAP_NET_ADMIN when an\noperation sets GENL_ADMIN_PERM or GENL_UNS_ADMIN_PERM, so a local\nunprivileged process can currently change TIPC state through commands\nsuch as TIPC_NL_NET_SET, TIPC_NL_KEY_SET, TIPC_NL_KEY_FLUSH, and\nbearer enable/disable.\n\nThe legacy TIPC netlink API already checks netlink_net_capable(...,\nCAP_NET_ADMIN) for administrative commands. Give the TIPCv2 mutators\nthe equivalent generic-netlink gate. Use GENL_UNS_ADMIN_PERM, which\nmaps to the same namespace-aware CAP_NET_ADMIN check that\nnetlink_net_capable() performs, so the behaviour matches the legacy\npath and keeps working for CAP_NET_ADMIN holders in a non-initial user\nnamespace (containers).\n\nA QEMU/KASAN repro run as uid/gid 65534 with zero effective\ncapabilities previously succeeded in changing the network id and node\nidentity, setting and flushing key material, and enabling/disabling a\nUDP bearer. With this patch applied the same operations fail with\n-EPERM."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires sending TIPCv2 generic-netlink commands via a local NETLINK_GENERIC socket; the flaw is a missing authorization check on netlink mutators, not remote packet handling in the TIPC data plane.\nAC:L - Any unprivileged local process can open a generic-netlink socket and invoke the unprotected TIPCv2 mutators deterministically; no races, special memory layout, or victim state are required beyond TIPC being loaded.\nPR:L - The fix commit reproduces the issue as uid/gid 65534 (nobody) with zero effective capabilities; no CAP_NET_ADMIN or root in the initial namespace is needed, only standard local user access.\nUI:N - No victim interaction is required; the attacker directly issues netlink configuration commands to alter TIPC cluster state.\nS:U - Impact is unauthorized kernel/TIPC administration within the caller\u2019s network namespace (and global media tuning), not crossing a VM, container-to-host, or other distinct security-authority boundary.\nC:H - Unprivileged callers can set or flush TIPC AEAD encryption keys and reconfigure node/network identity, enabling decryption or exposure of protected inter-node cluster traffic that should require administrator control.\nI:H - Attackers can arbitrarily modify TIPC network ID, node identity, bearer/link/media parameters, monitoring settings, and cluster peer state, subverting intended cluster topology and cryptographic configuration.\nA:H - Unprivileged bearer disable/enable, peer removal, and key flush operations can repeatedly disrupt or partition TIPC cluster connectivity and encrypted communication, causing sustained denial of cluster service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:24.502Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b06fb5f78a9af0929aaa47c92d0b7bca0617fb25"
},
{
"url": "https://git.kernel.org/stable/c/52864c6c13dcc292481eabfeb3c31a86c3ec06f2"
},
{
"url": "https://git.kernel.org/stable/c/e87dcc1a644d087de0bb6c94c6dd28c29b89597f"
},
{
"url": "https://git.kernel.org/stable/c/9b937de4b3ded62a24da6e8d9d623cdb2748fa74"
},
{
"url": "https://git.kernel.org/stable/c/c9668a4adb2264625daeeabc7466b783badd4614"
},
{
"url": "https://git.kernel.org/stable/c/cebaefe1aceb650d5c99a4c0e1a4dde09e211818"
},
{
"url": "https://git.kernel.org/stable/c/56f0a2e0a1d004e025cd031c3a801ab73959269f"
},
{
"url": "https://git.kernel.org/stable/c/86b0c540e2ea397cde021eecd24145f7c16a3d4e"
}
],
"title": "tipc: require net admin for TIPCv2 netlink mutators",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74283",
"datePublished": "2026-08-15T05:57:52.667Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-10-16T18:55:30.055Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90203 (GCVE-0-2026-90203)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 08:59
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Squashfs: check block offset is not negative
If a negative offset is read off disk (for example the offset into the
decompressed fragment block), this will cause squashfs_copy_data() to
perform an out of bounds access.
Fix by checking if offset is negative, and returning 0. This matches
existing behaviour where an offset beyond the block returns 0 bytes
copied.
To trigger this out of bounds access requires a crafted Squashfs
filesystem and CAP_SYS_ADMIN to mount it. Unprivileged users will not be
able to mount such a filesystem, but once mounted, an unprivileged user
can trigger the out of bounds access by reading the crafted file with the
negative offset.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 Version: f400e12656ab518be107febfe2315fb1eab5a342 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/squashfs/cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b169185d5c672b989985c6c2e38cafab2548ba88",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "c2a126fca820ae74872da28de68dc74d4595dc4b",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "95dadf366c117dcdca78a570e6832071deab1ecd",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "3d2f0cb66c909ea2312cdef465165bb9a3ba2d84",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "bbb2218eb072b0a15dc063929200183bd23c2344",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "d0a3729d464fcf516416a41cf304c0c92126ee03",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "e4afd90bc7bf3dd477970c6c42bdd29ad3fda7fe",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
},
{
"lessThan": "e300eb5002925b29be803d2661af07266cfa267e",
"status": "affected",
"version": "f400e12656ab518be107febfe2315fb1eab5a342",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/squashfs/cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.29"
},
{
"lessThan": "2.6.29",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.29",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSquashfs: check block offset is not negative\n\nIf a negative offset is read off disk (for example the offset into the\ndecompressed fragment block), this will cause squashfs_copy_data() to\nperform an out of bounds access.\n\nFix by checking if offset is negative, and returning 0. This matches\nexisting behaviour where an offset beyond the block returns 0 bytes\ncopied.\n\nTo trigger this out of bounds access requires a crafted Squashfs\nfilesystem and CAP_SYS_ADMIN to mount it. Unprivileged users will not be\nable to mount such a filesystem, but once mounted, an unprivileged user\ncan trigger the out of bounds access by reading the crafted file with the\nnegative offset."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bad bytes are squashfs_reg_inode.offset/squashfs_lreg_inode.offset, stored by squashfs_read_inode() as fragment_offset and used by squashfs_read_folio()/squashfs_readahead_fragment() \u2192 squashfs_copy_data() on a loop/block-backed image. That field is on-disk fragment metadata, not a network protocol message; squashfs_fs_type is FS_REQUIRES_DEV.\nAC:L - squashfs_read_inode() assigns le32_to_cpu(sqsh_ino-\u003eoffset) to signed int fragment_offset with no range check, so a high-bit-set on-disk value is negative. read() of that file\u0027s tail (generic_file_read_iter \u2192 squashfs_read_folio) then calls squashfs_copy_data() with that offset; there is no race.\nPR:N - squashfs_fs_type has no FS_USERNS_MOUNT, so mount_capable() needs init-namespace CAP_SYS_ADMIN, but the attacker who crafts the image needs no account. After that privileged mount, an unprivileged read of the crafted file is enough; the mount is scored as User Interaction, not Privileges Required.\nUI:R - The negative fragment_offset exists only in an attacker-supplied Squashfs image, and squashfs_copy_data() runs only after that image is mounted and the crafted file is read. The mount is the required victim action; a standing snapd or live-image setup does not remove it.\nS:U - squashfs_copy_data() indexes the fragment cache\u0027s kmalloc\u0027d data[] array and memcpy\u0027s into the file\u0027s own page-cache folio in the same kernel. This is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:H - A negative offset makes squashfs_copy_data() evaluate entry-\u003edata[offset/PAGE_SIZE] before the kcalloc\u0027d pointer array, then memcpy up to PAGE_SIZE bytes from that address into the folio returned by read(). That is an unbounded OOB kernel read into userspace, not a few-byte leak.\nI:N - The memcpy destination is the kmap of the crafted file\u0027s own folio in squashfs_fill_page()/squashfs_readahead_fragment(); the source is the OOB pointer. Length is capped by avail (\u2264PAGE_SIZE), so this path does not write kernel objects out of bounds.\nA:H - Indexing entry-\u003edata[] with a negative offset/PAGE_SIZE and memcpy from the resulting pointer is the same squashfs_copy_data() out-of-bounds access that produced a general protection fault in CVE-2026-23388; an unmapped address oopses the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:59:39.333Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b169185d5c672b989985c6c2e38cafab2548ba88"
},
{
"url": "https://git.kernel.org/stable/c/c2a126fca820ae74872da28de68dc74d4595dc4b"
},
{
"url": "https://git.kernel.org/stable/c/95dadf366c117dcdca78a570e6832071deab1ecd"
},
{
"url": "https://git.kernel.org/stable/c/3d2f0cb66c909ea2312cdef465165bb9a3ba2d84"
},
{
"url": "https://git.kernel.org/stable/c/bbb2218eb072b0a15dc063929200183bd23c2344"
},
{
"url": "https://git.kernel.org/stable/c/d0a3729d464fcf516416a41cf304c0c92126ee03"
},
{
"url": "https://git.kernel.org/stable/c/e4afd90bc7bf3dd477970c6c42bdd29ad3fda7fe"
},
{
"url": "https://git.kernel.org/stable/c/e300eb5002925b29be803d2661af07266cfa267e"
}
],
"title": "Squashfs: check block offset is not negative",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90203",
"datePublished": "2026-09-17T16:07:20.180Z",
"dateReserved": "2026-09-11T19:38:34.792Z",
"dateUpdated": "2026-10-19T08:59:39.333Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74307 (GCVE-0-2026-74307)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: validate donor file superblock early in EXT4_IOC_MOVE_EXT
Reject the EXT4_IOC_MOVE_EXT ioctl early if the donor file does not
belong to the same superblock as the original file. Currently, this
validation is performed inside ext4_move_extents() by
mext_check_validity(), but only after lock_two_nondirectories() has
already acquired the inode locks. When the donor fd refers to a file
on a different filesystem (e.g., overlayfs), this late validation
creates a circular lock dependency:
CPU0 (overlayfs write) CPU1 (ext4 ioctl)
---- ----
inode_lock(ovl_inode)
mnt_want_write_file(filp)
sb_start_write(ext4_sb) [sb_writers]
backing_file_write_iter()
vfs_iter_write(real_file)
file_start_write(real_file)
sb_start_write(ext4_sb) [blocked by freeze]
lock_two_nondirectories()
inode_lock(ovl_inode) [blocked]
With a concurrent freeze operation holding sb_writers write side, this
forms a deadlock cycle: CPU0 waits for freeze to complete, freeze waits
for CPU1's sb_writers reader to exit, CPU1 waits for CPU0's inode lock.
Since EXT4_IOC_MOVE_EXT exchanges physical extents between two files,
it fundamentally requires both files to reside on the same ext4
filesystem. Moving the superblock check before any lock acquisition
is both semantically correct and eliminates the circular dependency
by ensuring that cross-filesystem donor fds are rejected before
sb_writers or inode locks are taken.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "663f184b51492093d408e518efc95ee13b5b4440",
"status": "affected",
"version": "fcf6b1b729bcd23f2b49a84fb33ffbb44712ee6a",
"versionType": "git"
},
{
"lessThan": "74796e886ca39fcb0d3fd36ea6a39c62784ab6fb",
"status": "affected",
"version": "fcf6b1b729bcd23f2b49a84fb33ffbb44712ee6a",
"versionType": "git"
},
{
"lessThan": "29e07ec352f0ad06c833a18bf47d82c81f55544f",
"status": "affected",
"version": "fcf6b1b729bcd23f2b49a84fb33ffbb44712ee6a",
"versionType": "git"
},
{
"lessThan": "fb52013cad9e9b7d3a6a14ea1bcd841e41da7c6c",
"status": "affected",
"version": "fcf6b1b729bcd23f2b49a84fb33ffbb44712ee6a",
"versionType": "git"
},
{
"lessThan": "c143957520c6c9b5cd72e0de8b52b814f0c576fe",
"status": "affected",
"version": "fcf6b1b729bcd23f2b49a84fb33ffbb44712ee6a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.18"
},
{
"lessThan": "3.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: validate donor file superblock early in EXT4_IOC_MOVE_EXT\n\nReject the EXT4_IOC_MOVE_EXT ioctl early if the donor file does not\nbelong to the same superblock as the original file. Currently, this\nvalidation is performed inside ext4_move_extents() by\nmext_check_validity(), but only after lock_two_nondirectories() has\nalready acquired the inode locks. When the donor fd refers to a file\non a different filesystem (e.g., overlayfs), this late validation\ncreates a circular lock dependency:\n\n CPU0 (overlayfs write) CPU1 (ext4 ioctl)\n ---- ----\n inode_lock(ovl_inode)\n mnt_want_write_file(filp)\n sb_start_write(ext4_sb) [sb_writers]\n backing_file_write_iter()\n vfs_iter_write(real_file)\n file_start_write(real_file)\n sb_start_write(ext4_sb) [blocked by freeze]\n lock_two_nondirectories()\n inode_lock(ovl_inode) [blocked]\n\nWith a concurrent freeze operation holding sb_writers write side, this\nforms a deadlock cycle: CPU0 waits for freeze to complete, freeze waits\nfor CPU1\u0027s sb_writers reader to exit, CPU1 waits for CPU0\u0027s inode lock.\n\nSince EXT4_IOC_MOVE_EXT exchanges physical extents between two files,\nit fundamentally requires both files to reside on the same ext4\nfilesystem. Moving the superblock check before any lock acquisition\nis both semantically correct and eliminates the circular dependency\nby ensuring that cross-filesystem donor fds are rejected before\nsb_writers or inode locks are taken."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:19.203Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/663f184b51492093d408e518efc95ee13b5b4440"
},
{
"url": "https://git.kernel.org/stable/c/74796e886ca39fcb0d3fd36ea6a39c62784ab6fb"
},
{
"url": "https://git.kernel.org/stable/c/29e07ec352f0ad06c833a18bf47d82c81f55544f"
},
{
"url": "https://git.kernel.org/stable/c/fb52013cad9e9b7d3a6a14ea1bcd841e41da7c6c"
},
{
"url": "https://git.kernel.org/stable/c/c143957520c6c9b5cd72e0de8b52b814f0c576fe"
}
],
"title": "ext4: validate donor file superblock early in EXT4_IOC_MOVE_EXT",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74307",
"datePublished": "2026-08-15T05:58:07.969Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-10-21T12:45:19.203Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89688 (GCVE-0-2026-89688)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: drop the stateid, not the stateowner, on seqid_op replay retry
In nfs4_preprocess_seqid_op() the stateid is obtained from
nfsd4_lookup_stateid(), which holds a reference on the nfs4_stid
(sc_count) but takes no reference on the stateowner. openlockstateid()
merely casts that stid and likewise takes no reference.
When nfsd4_cstate_assign_replay() returns -EAGAIN (the replay owner is
being torn down, RP_UNHASHED) it has not taken a stateowner reference on
that path. The error handling nevertheless called
nfs4_put_stateowner(stp->st_stateowner), dropping an so_count reference
the function never acquired -- risking a stateowner refcount underflow and
use-after-free -- while leaking the sc_count reference held on the stid.
The leaked stid reference can also stall a concurrent
nfsd4_close_open_stateid() waiting for sc_count to drop.
Drop the reference actually held -- the stid -- before retrying. The
stateowner stays alive through the reference held by the stid. This mirrors
the open path in nfsd4_process_open1(), where the put balances a reference
that path explicitly holds on the stateowner.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "69ed78b6b947c9257213164678b4edf17533093b",
"status": "affected",
"version": "eec7620800081e27dbf8019ac2e66259f0d5bf6f",
"versionType": "git"
},
{
"lessThan": "00843074d9b84824552c9679d423d29500ca5de0",
"status": "affected",
"version": "eec7620800081e27dbf8019ac2e66259f0d5bf6f",
"versionType": "git"
},
{
"lessThan": "f7cb90ddc021747fc9abfd4cf5252d425fd34eec",
"status": "affected",
"version": "eec7620800081e27dbf8019ac2e66259f0d5bf6f",
"versionType": "git"
},
{
"lessThan": "5e4627d3513e60accfce9d5f4c7fa95251ef93d6",
"status": "affected",
"version": "eec7620800081e27dbf8019ac2e66259f0d5bf6f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: drop the stateid, not the stateowner, on seqid_op replay retry\n\nIn nfs4_preprocess_seqid_op() the stateid is obtained from\nnfsd4_lookup_stateid(), which holds a reference on the nfs4_stid\n(sc_count) but takes no reference on the stateowner. openlockstateid()\nmerely casts that stid and likewise takes no reference.\n\nWhen nfsd4_cstate_assign_replay() returns -EAGAIN (the replay owner is\nbeing torn down, RP_UNHASHED) it has not taken a stateowner reference on\nthat path. The error handling nevertheless called\nnfs4_put_stateowner(stp-\u003est_stateowner), dropping an so_count reference\nthe function never acquired -- risking a stateowner refcount underflow and\nuse-after-free -- while leaking the sc_count reference held on the stid.\nThe leaked stid reference can also stall a concurrent\nnfsd4_close_open_stateid() waiting for sc_count to drop.\n\nDrop the reference actually held -- the stid -- before retrying. The\nstateowner stays alive through the reference held by the stid. This mirrors\nthe open path in nfsd4_process_open1(), where the put balances a reference\nthat path explicitly holds on the stateowner."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd processes NFSv4 COMPOUND ops (CLOSE, OPEN_DOWNGRADE, LOCK, OPEN_CONFIRM) in the in-kernel NFS server on TCP/UDP 2049; those handlers call nfs4_preprocess_seqid_op(), so a remote peer reaches the bug with no local access.\nAC:L - A remote NFSv4.0 client drives both sides by sending concurrent CLOSE and another seqid-mutating op on the same openowner; CLOSE\u0027s move_to_close_lru() sets RP_UNHASHED and waits on sc_count, so the window is attacker-controlled and retryable.\nPR:N - Typical nfsd exports use AUTH_SYS/AUTH_NULL, so RPC uids are self-asserted and not cryptographically verified; any host allowed by the export list can SETCLIENTID, OPEN, then CLOSE/OPEN_DOWNGRADE with no local Linux account.\nUI:N - The attacker issues the NFSv4 COMPOUND requests itself; no victim on the server must mount a filesystem, open a file, or take any other action.\nS:U - The underflow frees an nfsd nfs4_stateowner in the NFS server kernel; impact stays in that kernel and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - nfs4_put_stateowner() drops an so_count the seqid path never took, freeing the stateowner while the stid and retry loop still use it; that UAF enables slab reclaim and kernel memory disclosure.\nI:H - The same UAF exposes so_ops-\u003eso_unhash/so_free function pointers and list writes under cl_lock, yielding a kernel write and control-flow hijack primitive.\nA:H - The UAF oopses or panics nfsd; the leaked stid sc_count also leaves move_to_close_lru() waiting forever for sc_count==2, hanging an nfsd thread, and the -EAGAIN retry can spin while RP_UNHASHED stays set."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:01.558Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/69ed78b6b947c9257213164678b4edf17533093b"
},
{
"url": "https://git.kernel.org/stable/c/00843074d9b84824552c9679d423d29500ca5de0"
},
{
"url": "https://git.kernel.org/stable/c/f7cb90ddc021747fc9abfd4cf5252d425fd34eec"
},
{
"url": "https://git.kernel.org/stable/c/5e4627d3513e60accfce9d5f4c7fa95251ef93d6"
}
],
"title": "nfsd: drop the stateid, not the stateowner, on seqid_op replay retry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89688",
"datePublished": "2026-09-11T19:46:09.322Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-19T08:51:01.558Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97940 (GCVE-0-2026-97940)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-19 09:11
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: fix fib6 walker UAF on seq stop
ipv6_route_iter_active() treats a walker in FWS_U at the table root as
already unlinked. fib6_del_route() can move a still-linked walker into
that same state when the current leaf is the last route at the root,
so ipv6_route_native_seq_stop() skips fib6_walker_unlink(). The seq
private object can then be freed while it remains on
net->ipv6.fib6_walkers. A later route deletion walks the dangling list
and uses the freed walker.
Use the list head as membership state and reinitialize it when
unlinking. Keep the existing w->node check so a never-started iterator
with a zeroed private object is not treated as linked.
The same stop helper is used by /proc/net/ipv6_route and by the BPF
ipv6_route iterator. The BPF show path only widens the race.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 Version: 8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_fib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9a3f73d62c86271614eda4c43315230896a37018",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "63407cddabc5992b5ac03af165559f4a1968a032",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "05b687ee04f816658f4a9cf586f4d2f129157943",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "14fdaba201fdff92a3e45994e02bccda409cb19d",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "0eede1689610e9eeaf729ba86fd1321799eb91a0",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "b89b691dd00bf39b9ba39ab9446f8c62f419fa7b",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "4553cfafa8d05c4ce20b1d18f79d9bb3b303fc02",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
},
{
"lessThan": "19b4ed644d68098cc62ab612727f40d30f43476c",
"status": "affected",
"version": "8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_fib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.13"
},
{
"lessThan": "3.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: fix fib6 walker UAF on seq stop\n\nipv6_route_iter_active() treats a walker in FWS_U at the table root as\nalready unlinked. fib6_del_route() can move a still-linked walker into\nthat same state when the current leaf is the last route at the root,\nso ipv6_route_native_seq_stop() skips fib6_walker_unlink(). The seq\nprivate object can then be freed while it remains on\nnet-\u003eipv6.fib6_walkers. A later route deletion walks the dangling list\nand uses the freed walker.\n\nUse the list head as membership state and reinitialize it when\nunlinking. Keep the existing w-\u003enode check so a never-started iterator\nwith a zeroed private object is not treated as linked.\n\nThe same stop helper is used by /proc/net/ipv6_route and by the BPF\nipv6_route iterator. The BPF show path only widens the race."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached by a local read() of /proc/net/ipv6_route (ipv6_route_native_seq_stop via ipv6_route_seq_ops, or the BPF ipv6_route iterator) racing a local RTM_DELROUTE netlink request that runs fib6_del_route(). No remote protocol supplies data that causes the missed fib6_walker_unlink().\nAC:L - The attacker controls both sides of the race. One thread reads /proc/net/ipv6_route while another repeatedly adds and deletes the last route in the table root (e.g. ::/0), which moves the linked walker to FWS_U at the root so seq_stop skips the unlink. The attempt can be retried freely.\nPR:L - /proc/net/ipv6_route is created with mode 0 (0444, world-readable). Deleting routes needs CAP_NET_ADMIN only over the namespace, which an unprivileged user gets with unshare -Urn, and net-\u003eipv6.fib6_walkers is per-namespace, so the whole attack runs in an attacker-owned netns.\nUI:N - No victim action is needed. The attacker opens, reads and closes the proc file and issues the route deletions themselves.\nS:U - The use-after-free happens in kernel heap memory and gives kernel-level impact within the same security authority. No VM or hardware isolation boundary is crossed.\nC:H - The freed seq_file private object (struct ipv6_route_iter, holding the fib6_walker) stays on net-\u003eipv6.fib6_walkers. Later FOR_WALKERS loops read w-\u003estate, w-\u003eleaf and w-\u003enode from memory the attacker can reallocate with controlled contents, a UAF usable for kernel memory disclosure.\nI:H - fib6_del_route() and fib6_repair_tree() write w-\u003eleaf, w-\u003estate and w-\u003enode into the freed walker, and list_add/list_del on w-\u003elh write pointers into it. That is a write primitive into a reallocated kernel heap object, usable for corruption and privilege escalation.\nA:H - Any later route deletion or tree repair in that namespace walks the dangling fib6_walkers entry, which causes list corruption or a KASAN/oops crash of the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:06.854Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9a3f73d62c86271614eda4c43315230896a37018"
},
{
"url": "https://git.kernel.org/stable/c/63407cddabc5992b5ac03af165559f4a1968a032"
},
{
"url": "https://git.kernel.org/stable/c/05b687ee04f816658f4a9cf586f4d2f129157943"
},
{
"url": "https://git.kernel.org/stable/c/14fdaba201fdff92a3e45994e02bccda409cb19d"
},
{
"url": "https://git.kernel.org/stable/c/0eede1689610e9eeaf729ba86fd1321799eb91a0"
},
{
"url": "https://git.kernel.org/stable/c/b89b691dd00bf39b9ba39ab9446f8c62f419fa7b"
},
{
"url": "https://git.kernel.org/stable/c/4553cfafa8d05c4ce20b1d18f79d9bb3b303fc02"
},
{
"url": "https://git.kernel.org/stable/c/19b4ed644d68098cc62ab612727f40d30f43476c"
}
],
"title": "ipv6: fix fib6 walker UAF on seq stop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97940",
"datePublished": "2026-09-25T10:22:52.936Z",
"dateReserved": "2026-09-25T10:18:58.204Z",
"dateUpdated": "2026-10-19T09:11:06.854Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63887 (GCVE-0-2026-63887)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-10-19 20:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: target: iscsi: Bound iscsi_encode_text_output() appends to rsp_buf
iscsi_encode_text_output() concatenates "key=value\0" records into
login->rsp_buf, an 8192-byte kzalloc(MAX_KEY_VALUE_PAIRS) buffer
allocated in iscsit_alloc_login_setup_buffer(). The three sprintf() call
sites in this function (lines 1398, 1411, 1424 in v7.1-rc2) never check
the remaining buffer capacity:
*length += sprintf(output_buf, "%s=%s", er->key, er->value);
*length += 1;
output_buf = textbuf + *length;
The 8192-byte ceiling at iscsi_target_check_login_request() bounds the
*input* Login PDU payload, but a single PDU can carry up to 2048 minimal
four-byte "a=b\0" pairs, each unknown key expanding to a 16-byte
"a=NotUnderstood\0" output record via iscsi_add_notunderstood_response().
2048 * 16 = 32 KiB of output into an 8 KiB buffer, producing a ~24 KiB
heap overrun in the kmalloc-8k slab.
The fix introduces a static iscsi_encode_text_record() helper that uses
snprintf() with a per-call bounds check against the remaining buffer,
and threads a u32 textbuf_size parameter through
iscsi_encode_text_output(). Both call sites in
iscsi_target_handle_csg_zero() (PHASE_SECURITY) and
iscsi_target_handle_csg_one() (PHASE_OPERATIONAL) pass
MAX_KEY_VALUE_PAIRS. On overflow the encoder logs the condition, calls
iscsi_release_extra_responses() to drop queued records, and returns -1;
both caller sites now emit ISCSI_STATUS_CLS_INITIATOR_ERR /
ISCSI_LOGIN_STATUS_INIT_ERR via iscsit_tx_login_rsp() before returning,
so the initiator sees an explicit failed-login response rather than a
silent connection drop. (Prior to this patch only the PHASE_OPERATIONAL
caller did that; the PHASE_SECURITY caller is converted to the same
shape.)
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 Version: e48354ce078c079996f89d715dfa44814b4eba01 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63887",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:32:57.099055Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-122",
"description": "CWE-122 Heap-based Buffer Overflow",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:17:54.668Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/target/iscsi/iscsi_target_nego.c",
"drivers/target/iscsi/iscsi_target_parameters.c",
"drivers/target/iscsi/iscsi_target_parameters.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cb84e974fb172bc71386289f37b78ea679410b39",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "b19382dfc6e7dee6d3859ba44b6ca29e97a51627",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "efe633e600a0ac68357206fede21b1ac8178f3b8",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "4e9f0c4a645c995bc75c06c7b3644254ffb4c76b",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "30bf335e8fe170322080ee001f05ca29c50680b3",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "594a40360012ce5f94c715d5e3b20fa3af7d525a",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "26e4a304b7e6f1338c675d527608d32549c091db",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "bf33e01f88388c43e285492a63e539df6ffed64c",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/target/iscsi/iscsi_target_nego.c",
"drivers/target/iscsi/iscsi_target_parameters.c",
"drivers/target/iscsi/iscsi_target_parameters.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.1"
},
{
"lessThan": "3.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: target: iscsi: Bound iscsi_encode_text_output() appends to rsp_buf\n\niscsi_encode_text_output() concatenates \"key=value\\0\" records into\nlogin-\u003ersp_buf, an 8192-byte kzalloc(MAX_KEY_VALUE_PAIRS) buffer\nallocated in iscsit_alloc_login_setup_buffer(). The three sprintf() call\nsites in this function (lines 1398, 1411, 1424 in v7.1-rc2) never check\nthe remaining buffer capacity:\n\n\t*length += sprintf(output_buf, \"%s=%s\", er-\u003ekey, er-\u003evalue);\n\t*length += 1;\n\toutput_buf = textbuf + *length;\n\nThe 8192-byte ceiling at iscsi_target_check_login_request() bounds the\n*input* Login PDU payload, but a single PDU can carry up to 2048 minimal\nfour-byte \"a=b\\0\" pairs, each unknown key expanding to a 16-byte\n\"a=NotUnderstood\\0\" output record via iscsi_add_notunderstood_response().\n2048 * 16 = 32 KiB of output into an 8 KiB buffer, producing a ~24 KiB\nheap overrun in the kmalloc-8k slab.\n\nThe fix introduces a static iscsi_encode_text_record() helper that uses\nsnprintf() with a per-call bounds check against the remaining buffer,\nand threads a u32 textbuf_size parameter through\niscsi_encode_text_output(). Both call sites in\niscsi_target_handle_csg_zero() (PHASE_SECURITY) and\niscsi_target_handle_csg_one() (PHASE_OPERATIONAL) pass\nMAX_KEY_VALUE_PAIRS. On overflow the encoder logs the condition, calls\niscsi_release_extra_responses() to drop queued records, and returns -1;\nboth caller sites now emit ISCSI_STATUS_CLS_INITIATOR_ERR /\nISCSI_LOGIN_STATUS_INIT_ERR via iscsit_tx_login_rsp() before returning,\nso the initiator sees an explicit failed-login response rather than a\nsilent connection drop. (Prior to this patch only the PHASE_OPERATIONAL\ncaller did that; the PHASE_SECURITY caller is converted to the same\nshape.)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The Linux iSCSI target (LIO) is an in-kernel SCSI target that accepts remote TCP connections on the iSCSI portal (typically port 3260); crafted Login PDUs reach the vulnerable encoder via the normal network receive and login-negotiation path.\nAC:L - Once an iSCSI target portal is reachable, an attacker can reliably trigger the overflow by sending a single Login PDU packed with unknown key=value pairs; no races or victim-dependent timing are required.\nPR:N - The heap overflow occurs during login negotiation before iSCSI authentication completes; a discovery-session login requires only InitiatorName and SessionType with no credentials, initiator ACL, or local privileges.\nUI:N - Exploitation requires only network packets sent by the attacker; no action from a legitimate user or administrator is needed beyond the target already exposing its iSCSI portal.\nS:U - The corruption is confined to kernel heap memory in the iSCSI target/login context and does not cross a VM, container, or IOMMU security boundary by itself.\nC:H - A ~24 KiB out-of-bounds write into the kmalloc-8k slab can corrupt adjacent kernel objects and be leveraged for arbitrary memory disclosure, not merely a bounded leak.\nI:H - The unbounded sprintf heap overrun is a large out-of-bounds write that can corrupt adjacent heap metadata or objects to achieve arbitrary kernel memory modification and potential code execution.\nA:H - Corrupting kmalloc-8k heap objects during login response encoding can cause kernel oops, BUG, or panic, and the attack can be repeated against an exposed iSCSI target."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:36:56.451Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cb84e974fb172bc71386289f37b78ea679410b39"
},
{
"url": "https://git.kernel.org/stable/c/b19382dfc6e7dee6d3859ba44b6ca29e97a51627"
},
{
"url": "https://git.kernel.org/stable/c/efe633e600a0ac68357206fede21b1ac8178f3b8"
},
{
"url": "https://git.kernel.org/stable/c/4e9f0c4a645c995bc75c06c7b3644254ffb4c76b"
},
{
"url": "https://git.kernel.org/stable/c/30bf335e8fe170322080ee001f05ca29c50680b3"
},
{
"url": "https://git.kernel.org/stable/c/594a40360012ce5f94c715d5e3b20fa3af7d525a"
},
{
"url": "https://git.kernel.org/stable/c/26e4a304b7e6f1338c675d527608d32549c091db"
},
{
"url": "https://git.kernel.org/stable/c/bf33e01f88388c43e285492a63e539df6ffed64c"
}
],
"title": "scsi: target: iscsi: Bound iscsi_encode_text_output() appends to rsp_buf",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63887",
"datePublished": "2026-07-19T14:55:00.114Z",
"dateReserved": "2026-07-19T07:54:57.018Z",
"dateUpdated": "2026-10-19T20:17:54.668Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89631 (GCVE-0-2026-89631)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: reject a tree connect response whose byte count is too small
CIFSTCon() bounds its strnlen() over the byte area with the server's
ByteCount minus two, which for ByteCount 0 or 1 goes negative as an int
and converts to a huge size_t. The later subtraction wraps the __u16
bytes_left, and that is what bounds cifs_strndup_from_utf16(): a bound of
up to 65535 against a ~16 KB cifs_req_poolp object runs off the end of the
slab object, and the bytes reach userspace through tcon->nativeFileSystem
in /proc/fs/cifs/DebugData.
Reject a byte area too small for what the parser consumes. Two bytes is
the least it can consume, and no conformant response carries fewer. The
new trace point is the 129th smb_eio_trace entry, which __mode(byte)
cannot represent, so the attribute goes with it.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89631",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:39.378892Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:45.378Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifssmb.c",
"fs/smb/client/trace.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d837645a719151ed392d4d9cab4571c2753dab12",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
},
{
"lessThan": "2ae219762ebac929bf6ab3473681f10ed566af08",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
},
{
"lessThan": "3be89e8039a85fa3b6cd5f9dcc4c1459eb356c2d",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
},
{
"lessThan": "411e484fe71a7f1028de617447edad9cb6d9d68a",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
},
{
"lessThan": "65deb18359341141d37dc86fc7853511be3c87a7",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifssmb.c",
"fs/smb/client/trace.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.30"
},
{
"lessThan": "2.6.30",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.30",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: reject a tree connect response whose byte count is too small\n\nCIFSTCon() bounds its strnlen() over the byte area with the server\u0027s\nByteCount minus two, which for ByteCount 0 or 1 goes negative as an int\nand converts to a huge size_t. The later subtraction wraps the __u16\nbytes_left, and that is what bounds cifs_strndup_from_utf16(): a bound of\nup to 65535 against a ~16 KB cifs_req_poolp object runs off the end of the\nslab object, and the bytes reach userspace through tcon-\u003enativeFileSystem\nin /proc/fs/cifs/DebugData.\n\nReject a byte area too small for what the parser consumes. Two bytes is\nthe least it can consume, and no conformant response carries fewer. The\nnew trace point is the 129th smb_eio_trace entry, which __mode(byte)\ncannot represent, so the attribute goes with it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - CIFSTCon() parses a TREE_CONNECT_ANDX response received over TCP (typically port 445) from the SMB peer, so a malicious or compromised CIFS server supplies the undersized ByteCount remotely.\nAC:L - A server that returns success with ByteCount 0 or 1 triggers the integer underflow and wrapped 65535-byte bound deterministically; CONFIG_CIFS_ALLOW_INSECURE_LEGACY defaults to y, and no race or uncontrolled memory layout is required.\nPR:N - The attacker is the remote SMB server (or a MITM on unsigned SMB1); the client authenticates to that peer, so no account, capability, or privilege on the victim host is required.\nUI:N - Existing SMB1 mounts, IPC tcons, automounts, fstab, and cifsroot reconnect via cifs_tree_connect() after a server-induced TCP drop, so the crafted TREE_CONNECT response is processed without contemporaneous user action.\nS:U - The out-of-bounds slab read, kernel-memory leak, and possible oops remain inside the client kernel\u0027s security authority and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - ByteCount underflow wraps the __u16 bound to up to 65535 bytes against a ~16KB cifs_request slab, so cifs_strndup_from_utf16() copies adjacent kernel heap into tcon-\u003enativeFileSystem, which is then exposed through /proc/fs/cifs/DebugData.\nI:N - The defect is an out-of-bounds read copied into a newly allocated, correctly sized string; it does not write outside that allocation or provide an arbitrary-write or control-flow primitive.\nA:H - strnlen(), kstrndup(), and cifs_utf16_bytes() walk tens of kilobytes past the cifs_request object into unmapped or guarded pages, causing a kernel oops or panic that a malicious peer can retrigger on reconnect."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:03.355Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d837645a719151ed392d4d9cab4571c2753dab12"
},
{
"url": "https://git.kernel.org/stable/c/2ae219762ebac929bf6ab3473681f10ed566af08"
},
{
"url": "https://git.kernel.org/stable/c/3be89e8039a85fa3b6cd5f9dcc4c1459eb356c2d"
},
{
"url": "https://git.kernel.org/stable/c/411e484fe71a7f1028de617447edad9cb6d9d68a"
},
{
"url": "https://git.kernel.org/stable/c/65deb18359341141d37dc86fc7853511be3c87a7"
}
],
"title": "smb: client: reject a tree connect response whose byte count is too small",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89631",
"datePublished": "2026-09-11T19:45:26.444Z",
"dateReserved": "2026-09-11T19:38:34.738Z",
"dateUpdated": "2026-10-21T12:48:03.355Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90142 (GCVE-0-2026-90142)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
virtio_net: Fix resize of the RX ring
When a AF_XDP socket is attached, the virtnet_rx_resize
should resize the rq->xsk_buffs XSK buffer array. Otherwise,
when the size grows, the virtnet_rx_resume() causes a write
past the end of the array. This is easily reproducable with
ethtool -G ens3 rx 32
./xdpsock -i eth0 -q 0 -r -z &
ethtool -G eth0 rx 256
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/virtio_net.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5c941b5d989a15cdaa987a2c602fb168461c6186",
"status": "affected",
"version": "e9f3962441c0a4d6f16c656e6c8aa02a3ccdd568",
"versionType": "git"
},
{
"lessThan": "5235abdb760bbd7a6fcecf1890b5160b7a75a9ce",
"status": "affected",
"version": "e9f3962441c0a4d6f16c656e6c8aa02a3ccdd568",
"versionType": "git"
},
{
"lessThan": "8344c9233c8f77017174d9e280c5a26034d068b6",
"status": "affected",
"version": "e9f3962441c0a4d6f16c656e6c8aa02a3ccdd568",
"versionType": "git"
},
{
"lessThan": "d09c98a6da215bce2173a292e4b95c8de6ea5d51",
"status": "affected",
"version": "e9f3962441c0a4d6f16c656e6c8aa02a3ccdd568",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/virtio_net.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_net: Fix resize of the RX ring\n\nWhen a AF_XDP socket is attached, the virtnet_rx_resize\nshould resize the rq-\u003exsk_buffs XSK buffer array. Otherwise,\nwhen the size grows, the virtnet_rx_resume() causes a write\npast the end of the array. This is easily reproducable with\n\n ethtool -G ens3 rx 32\n ./xdpsock -i eth0 -q 0 -r -z \u0026\n ethtool -G eth0 rx 256"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The overflow is driven by ring-\u003erx_pending passed to virtnet_set_ringparam() from SIOCETHTOOL ETHTOOL_SRINGPARAM (ethtool_set_ringparam) or ETHTOOL_MSG_RINGS_SET (ethnl_set_rings), after virtnet_xsk_pool_enable() sized rq-\u003exsk_buffs from AF_XDP bind(); received packets never supply the new vring length.\nAC:L - The reporter\u0027s sequence (ethtool -G rx 32, xdpsock -z, ethtool -G rx 256) deterministically grows the vring while leaving xsk_buffs at the old size; virtnet_rx_resume()-\u003etry_fill_recv()-\u003evirtnet_add_recvbuf_xsk() then passes rq-\u003evq-\u003enum_free to xsk_buff_alloc_batch(). The attacker controls both sizes and the UMEM fill ring; there is no race.\nPR:L - ETHTOOL_MSG_RINGS_SET is GENL_UNS_ADMIN_PERM (netlink_ns_capable CAP_NET_ADMIN) and the ioctl path checks ns_capable(net-\u003euser_ns, CAP_NET_ADMIN); AF_XDP socket() checks ns_capable(net-\u003euser_ns, CAP_NET_RAW) in xsk_create(). Both are available in a user-owned netns that holds the virtio_net device, not init-namespace root.\nUI:N - The attacker themselves issues the ethtool ring-resize ioctl/netlink and bind()s the AF_XDP zero-copy socket (xdpsock -z) that calls virtnet_xsk_pool_enable(); no separate victim action such as mounting media is required.\nS:U - virtnet_add_recvbuf_xsk() overflows rq-\u003exsk_buffs in the same kernel that hosts the virtio_net frontend. That is guest-kernel heap corruption, not a KVM/vhost guest-to-host escape or IOMMU bypass.\nC:H - After virtqueue_resize(), xsk_buff_alloc_batch() writes up to the new vring\u0027s num_free xdp_buff* values past the old xsk_buffs kvzalloc, corrupting adjacent heap objects with kernel pointers that can be turned into an arbitrary read.\nI:H - The same out-of-bounds xdp_buff* write, and the virtqueue_add_inbuf_premapped() loop that then consumes xsk_buffs[i] through that overflowed range, is kernel heap corruption usable for an arbitrary write or control-flow hijack.\nA:H - The heap overflow in virtnet_add_recvbuf_xsk() during virtnet_rx_resume() after virtqueue_resize() is a kernel memory-safety violation that oopses or panics even without a full exploit, matching the commit\u0027s write-past-end."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:02.541Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5c941b5d989a15cdaa987a2c602fb168461c6186"
},
{
"url": "https://git.kernel.org/stable/c/5235abdb760bbd7a6fcecf1890b5160b7a75a9ce"
},
{
"url": "https://git.kernel.org/stable/c/8344c9233c8f77017174d9e280c5a26034d068b6"
},
{
"url": "https://git.kernel.org/stable/c/d09c98a6da215bce2173a292e4b95c8de6ea5d51"
}
],
"title": "virtio_net: Fix resize of the RX ring",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90142",
"datePublished": "2026-09-17T16:06:39.122Z",
"dateReserved": "2026-09-11T19:38:34.789Z",
"dateUpdated": "2026-10-21T12:50:02.541Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89665 (GCVE-0-2026-89665)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: reject out-of-range useconds in NFSv2 SETATTR/CREATE
The NFSv2 sattr decoder converts the wire useconds to nanoseconds in
svcxdr_decode_sattr():
iap->ia_atime.tv_nsec = tmp2 * NSEC_PER_USEC;
tmp2 is a u32 and NSEC_PER_USEC is 1000, so the product is computed in
unsigned long. On ILP32 that is 32 bits, and an out-of-range useconds
value such as 4294968 wraps to tv_nsec == 704. The corruption therefore
happens during decode, before any proc function can inspect the value,
and a later range check on tv_nsec would see an in-range result and
accept it. Rejecting in the decoder yields an RPC GARBAGE_ARGS reply.
NFSv2 defines no NFSERR_INVAL, so there is no NFS-level status to return
for a malformed time argument, and the check cannot move to the proc
function the way the v3/v4 nsec range checks do.
Guard the raw useconds before the multiplication and reject values
greater than 1000000. useconds == 1000000 is kept: it is the Sun
convention for "set to the current server time", and the in-tree Linux
NFSv2 client emits it in both the atime and the mtime field for a plain
touch / utimes(file, NULL) (see encode_sattr() and
xdr_encode_current_server_time() in fs/nfs/nfs2xdr.c). Rejecting 1000000
would turn that common operation into a hard decode failure for both
SETATTR and CREATE. 1000000 * NSEC_PER_USEC is 10^9, which does not wrap
on ILP32, so the Sun convention value passes through safely. Only
genuinely out-of-range values (> 1000000) are rejected. The atime and
mtime guards are therefore symmetric.
The decoder only applied the Sun convention in the mtime block, which
clears ATTR_ATIME_SET|ATTR_MTIME_SET when mtime useconds == 1000000. If a
client puts 1000000 in the atime field but not in the mtime field, the
atime block stored an out-of-range tv_nsec (10^9) and left ATTR_ATIME_SET
set, so the bogus value reached the filesystem. Apply the convention in
the atime block as well, clearing ATTR_ATIME_SET so the server uses its
current time and ignores the value. Only ATTR_ATIME_SET is cleared there.
The mtime block keeps its existing behavior, where 1000000 means "set
both atime and mtime to now".
[ cel: various tweaks, addenda, and clean-ups ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89665",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:25:40.808424Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:47.904Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cdc3299f7072777b09c9582a3b8b65bb163ddcf3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "09a79d9ab35a39603c834e8f6333603292f9c816",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5296a2442d12d45d6eea7b4d3ec3ffecc1821cac",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1db456ffc22e045f49f7b9e62415a26b3f33f200",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a937dd1aa2d92291fe0a1860d17e90d8f206cd22",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ad02d095439f89cbd6629420c7e3ba476457b83b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1195483965a5f63d2dde18054ec7e50a23b9071c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "26709c8ffe73772eb69e68d553ac71d91228dccc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: reject out-of-range useconds in NFSv2 SETATTR/CREATE\n\nThe NFSv2 sattr decoder converts the wire useconds to nanoseconds in\nsvcxdr_decode_sattr():\n\n\tiap-\u003eia_atime.tv_nsec = tmp2 * NSEC_PER_USEC;\n\ntmp2 is a u32 and NSEC_PER_USEC is 1000, so the product is computed in\nunsigned long. On ILP32 that is 32 bits, and an out-of-range useconds\nvalue such as 4294968 wraps to tv_nsec == 704. The corruption therefore\nhappens during decode, before any proc function can inspect the value,\nand a later range check on tv_nsec would see an in-range result and\naccept it. Rejecting in the decoder yields an RPC GARBAGE_ARGS reply.\nNFSv2 defines no NFSERR_INVAL, so there is no NFS-level status to return\nfor a malformed time argument, and the check cannot move to the proc\nfunction the way the v3/v4 nsec range checks do.\n\nGuard the raw useconds before the multiplication and reject values\ngreater than 1000000. useconds == 1000000 is kept: it is the Sun\nconvention for \"set to the current server time\", and the in-tree Linux\nNFSv2 client emits it in both the atime and the mtime field for a plain\ntouch / utimes(file, NULL) (see encode_sattr() and\nxdr_encode_current_server_time() in fs/nfs/nfs2xdr.c). Rejecting 1000000\nwould turn that common operation into a hard decode failure for both\nSETATTR and CREATE. 1000000 * NSEC_PER_USEC is 10^9, which does not wrap\non ILP32, so the Sun convention value passes through safely. Only\ngenuinely out-of-range values (\u003e 1000000) are rejected. The atime and\nmtime guards are therefore symmetric.\n\nThe decoder only applied the Sun convention in the mtime block, which\nclears ATTR_ATIME_SET|ATTR_MTIME_SET when mtime useconds == 1000000. If a\nclient puts 1000000 in the atime field but not in the mtime field, the\natime block stored an out-of-range tv_nsec (10^9) and left ATTR_ATIME_SET\nset, so the bogus value reached the filesystem. Apply the convention in\nthe atime block as well, clearing ATTR_ATIME_SET so the server uses its\ncurrent time and ignores the value. Only ATTR_ATIME_SET is cleared there.\nThe mtime block keeps its existing behavior, where 1000000 means \"set\nboth atime and mtime to now\".\n\n[ cel: various tweaks, addenda, and clean-ups ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd\u0027s NFSv2 XDR decoder svcxdr_decode_sattr(), used by SETATTR, CREATE, and SYMLINK on the in-kernel NFS server (TCP/UDP 2049); a remote client triggers it by sending those procedures with an out-of-range sattr useconds field.\nAC:L - The attacker fully controls the sattr atime/mtime useconds fields and can deterministically supply a value greater than 1000000, or 1000000 in atime only; the ILP32 multiply wrap and the LP64 out-of-range nsec store need no race or other condition the attacker cannot influence.\nPR:N - Typical nfsd deployments accept AUTH_SYS/AUTH_NULL on reachable exports, so a network peer can obtain a filehandle and assert an owner UID without verified credentials; NFSv2 SETATTR/CREATE then applies the decoded timestamps under those unauthenticated credentials.\nUI:N - The attacker alone looks up a filehandle and issues SETATTR or CREATE with a crafted useconds value; no victim user action is required beyond nfsd already exporting a writable filesystem with NFSv2 enabled.\nS:U - Impact is confined to the NFS server\u0027s own kernel and filesystem inode timestamp metadata under the same OS security authority; there is no VM escape, IOMMU bypass, or other cross-boundary effect.\nC:N - The decoder only converts a client useconds field into ia_atime/ia_mtime.tv_nsec and later writes it via setattr; there is no out-of-bounds read, use-after-free, or other kernel-memory disclosure primitive.\nI:H - Out-of-range nsec is not rejected and notify_change()/timestamp_truncate() store it verbatim on nanosecond filesystems, so ext4_encode_extra_time() overflows the extra field and clobbers epoch bits and XFS mis-stores the timestamp, persistently corrupting on-disk inode metadata; when uncertain versus Low, High is required.\nA:L - Corrupted on-disk timestamps can cause xfs scrub to flag inodes corrupt and can break mtime-based tools on the exported file, degrading service around that inode. No oops, panic, hang, or other kernel crash was found on this path, so availability loss is partial rather than total."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:36.772Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cdc3299f7072777b09c9582a3b8b65bb163ddcf3"
},
{
"url": "https://git.kernel.org/stable/c/09a79d9ab35a39603c834e8f6333603292f9c816"
},
{
"url": "https://git.kernel.org/stable/c/5296a2442d12d45d6eea7b4d3ec3ffecc1821cac"
},
{
"url": "https://git.kernel.org/stable/c/1db456ffc22e045f49f7b9e62415a26b3f33f200"
},
{
"url": "https://git.kernel.org/stable/c/a937dd1aa2d92291fe0a1860d17e90d8f206cd22"
},
{
"url": "https://git.kernel.org/stable/c/ad02d095439f89cbd6629420c7e3ba476457b83b"
},
{
"url": "https://git.kernel.org/stable/c/1195483965a5f63d2dde18054ec7e50a23b9071c"
},
{
"url": "https://git.kernel.org/stable/c/26709c8ffe73772eb69e68d553ac71d91228dccc"
}
],
"title": "nfsd: reject out-of-range useconds in NFSv2 SETATTR/CREATE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89665",
"datePublished": "2026-09-11T19:45:52.102Z",
"dateReserved": "2026-09-11T19:38:34.745Z",
"dateUpdated": "2026-10-19T08:50:36.772Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64283 (GCVE-0-2026-64283)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: guest_memfd: Treat memslot binding offset+size as unsigned values
When binding a memslot to a guest_memfd file, treat the offset and size as
unsigned values to fix a bug where the sum of the two can result in a false
negative when checking for overflow against the size of the file. Passing
unsigned values also avoids relying on somewhat obscure checks in other
flows for safety, and tracks the offset and size as they are intended to be
tracked, as unsigned values.
On 64-bit kernels, the number of pages a memslot contains and thus the size
(and offset) of its guest_memfd binding are unsigned 64-bit values. Taking
the offset+size as an loff_t instead of a uoff_t inadvertently converts
the unsigned value to a signed value if the offset and/or size is massive.
Locally storing the offset and size as signed values is benign in and of
itself (though even that is *extremely* difficult to discern), but
operating on their sum is not.
For the offset, KVM explicitly checks against a negative value, which might
seem like a bug as KVM could incorrectly reject a legitimate binding, but
that's not actually the case as KVM_CREATE_GUEST_MEMFD takes a signed value
for its size, i.e. a would-be-negative offset is also greater than the
maximum possible size of any guest_memfd file.
Regarding the size, while KVM lacks an explicit check for a negative value,
i.e. seemingly has a flawed overflow check, KVM restricts the number of
pages in a single memslot to the largest positive signed 32-bit value:
if (id < KVM_USER_MEM_SLOTS &&
(mem->memory_size >> PAGE_SHIFT) > KVM_MEM_MAX_NR_PAGES)
return -EINVAL;
and so that maximum "size" will ever be is 0x7fffffff000.
The sum of the two is, however, problematic. While the size is restricted
by KVM's memslot logic, the offset is not, i.e. the offset is completely
unchecked until the "offset + size > i_size_read(inode)" check. If the
offset is the (nearly) largest possible _positive_ value, then adding size
to the offset can result in a signed, negative 64-bit value. When compared
against the size of the file (guaranteed to be positive), the negative sum
is always smaller, and KVM incorrectly allows the absurd offset.
Opportunistically add missing includes in kvm_mm.h (instead of relying on
its parents).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"virt/kvm/guest_memfd.c",
"virt/kvm/kvm_mm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e4683654881f3303ab286e45df6f91c0675d867c",
"status": "affected",
"version": "a7800aa80ea4d5356b8474c2302812e9d4926fa6",
"versionType": "git"
},
{
"lessThan": "3f9c0fdefa0431ad7a5528d76b9cdad912500bdf",
"status": "affected",
"version": "a7800aa80ea4d5356b8474c2302812e9d4926fa6",
"versionType": "git"
},
{
"lessThan": "f3a98d5881b9bd4807f49156143565f6aabcef1e",
"status": "affected",
"version": "a7800aa80ea4d5356b8474c2302812e9d4926fa6",
"versionType": "git"
},
{
"lessThan": "eba85fee7fc6cf28fec38a5bf3c378bef9a79ca6",
"status": "affected",
"version": "a7800aa80ea4d5356b8474c2302812e9d4926fa6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"virt/kvm/guest_memfd.c",
"virt/kvm/kvm_mm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: guest_memfd: Treat memslot binding offset+size as unsigned values\n\nWhen binding a memslot to a guest_memfd file, treat the offset and size as\nunsigned values to fix a bug where the sum of the two can result in a false\nnegative when checking for overflow against the size of the file. Passing\nunsigned values also avoids relying on somewhat obscure checks in other\nflows for safety, and tracks the offset and size as they are intended to be\ntracked, as unsigned values.\n\nOn 64-bit kernels, the number of pages a memslot contains and thus the size\n(and offset) of its guest_memfd binding are unsigned 64-bit values. Taking\nthe offset+size as an loff_t instead of a uoff_t inadvertently converts\nthe unsigned value to a signed value if the offset and/or size is massive.\n\nLocally storing the offset and size as signed values is benign in and of\nitself (though even that is *extremely* difficult to discern), but\noperating on their sum is not.\n\nFor the offset, KVM explicitly checks against a negative value, which might\nseem like a bug as KVM could incorrectly reject a legitimate binding, but\nthat\u0027s not actually the case as KVM_CREATE_GUEST_MEMFD takes a signed value\nfor its size, i.e. a would-be-negative offset is also greater than the\nmaximum possible size of any guest_memfd file.\n\nRegarding the size, while KVM lacks an explicit check for a negative value,\ni.e. seemingly has a flawed overflow check, KVM restricts the number of\npages in a single memslot to the largest positive signed 32-bit value:\n\n if (id \u003c KVM_USER_MEM_SLOTS \u0026\u0026\n (mem-\u003ememory_size \u003e\u003e PAGE_SHIFT) \u003e KVM_MEM_MAX_NR_PAGES)\n return -EINVAL;\n\nand so that maximum \"size\" will ever be is 0x7fffffff000.\n\nThe sum of the two is, however, problematic. While the size is restricted\nby KVM\u0027s memslot logic, the offset is not, i.e. the offset is completely\nunchecked until the \"offset + size \u003e i_size_read(inode)\" check. If the\noffset is the (nearly) largest possible _positive_ value, then adding size\nto the offset can result in a signed, negative 64-bit value. When compared\nagainst the size of the file (guaranteed to be positive), the negative sum\nis always smaller, and KVM incorrectly allows the absurd offset.\n\nOpportunistically add missing includes in kvm_mm.h (instead of relying on\nits parents)."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:13.426Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e4683654881f3303ab286e45df6f91c0675d867c"
},
{
"url": "https://git.kernel.org/stable/c/3f9c0fdefa0431ad7a5528d76b9cdad912500bdf"
},
{
"url": "https://git.kernel.org/stable/c/f3a98d5881b9bd4807f49156143565f6aabcef1e"
},
{
"url": "https://git.kernel.org/stable/c/eba85fee7fc6cf28fec38a5bf3c378bef9a79ca6"
}
],
"title": "KVM: guest_memfd: Treat memslot binding offset+size as unsigned values",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64283",
"datePublished": "2026-07-25T08:49:25.642Z",
"dateReserved": "2026-07-19T15:36:31.777Z",
"dateUpdated": "2026-10-21T12:43:13.426Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72107 (GCVE-0-2026-72107)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm era: fix out-of-bounds memory access for non-zero start sector
dm-era tracks writes in target-relative blocks, but era_map() calculates
the writeset block before applying the target offset. Tables with a
non-zero start sector can therefore pass an absolute mapped-device block
to metadata_current_marked().
If the absolute block is beyond the current writeset size,
writeset_marked() tests past the end of the in-core bitset. KASAN reports
this as a vmalloc-out-of-bounds access.
Apply the target offset before calculating the era block so writeset
lookups use the target-relative block number.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 Version: eec40579d84873dfb7021eb24c50360f073237c5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72107",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:52:12.284460Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:28.417Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-era-target.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fe94a0b14010a3c267ff9a2508afb4f27ff1c5bf",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "e3ffa8e492e5cdee62d916ee3e9244ccce2b73c5",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "9946a7176bd8c25ddd6e5f1799c54e572ee6bf0f",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "7e1822f83c5a1ee7b4a19e98edde8770a10b4c71",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "db5f9b4601f0012038e5a2628aedec2f47933380",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "1fcb5e29dd7a5b85adb9d8b539911741d878e829",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "bafe3e720cdac38cd7ea4eb7852a8f2dbe1bbfe6",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
},
{
"lessThan": "a868196f03c2b19418ae3d2b69e195d668a271e5",
"status": "affected",
"version": "eec40579d84873dfb7021eb24c50360f073237c5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-era-target.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.15"
},
{
"lessThan": "3.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm era: fix out-of-bounds memory access for non-zero start sector\n\ndm-era tracks writes in target-relative blocks, but era_map() calculates\nthe writeset block before applying the target offset. Tables with a\nnon-zero start sector can therefore pass an absolute mapped-device block\nto metadata_current_marked().\n\nIf the absolute block is beyond the current writeset size,\nwriteset_marked() tests past the end of the in-core bitset. KASAN reports\nthis as a vmalloc-out-of-bounds access.\n\nApply the target offset before calculating the era block so writeset\nlookups use the target-relative block number."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is hit in era_map() on write bios submitted to a dm-era device; on storage servers that expose dm-era-backed LUNs via iSCSI or NVMe-oF, a remote initiator\u0027s SCSI/NVMe writes traverse the network stack into dm_submit_bio() and reach the flawed writeset lookup without local shell access.\nAC:L - Once a dm-era table uses a non-zero start sector (common when mapping a partition offset), any single write I/O deterministically passes an out-of-range block index to writeset_marked()/test_bit(); no race, special heap layout, or victim state beyond that configuration is required.\nPR:L - Exploitation requires only write access to the dm-era-backed block device (filesystem, raw /dev/dm-* node, or authenticated iSCSI/NVMe-oF initiator credentials); loading the dm table needs CAP_SYS_ADMIN, but triggering the OOB read does not\u2014unprivileged local users or remote storage clients with write permission suffice.\nUI:N - Triggering the flaw requires only the attacker\u0027s own write I/O to the dm-era volume; no victim must mount a filesystem, open a file, click a link, or perform any separate interactive action beyond routine storage writes.\nS:U - The vmalloc out-of-bounds read and any resulting kernel oops or privilege escalation occur entirely within the host kernel\u0027s device-mapper/storage subsystem on the same machine; this is not a VM escape, IOMMU bypass, or other cross-security-authority boundary violation.\nC:H - writeset_marked() calls test_bit() with an attacker-influenced block index derived from the write offset; when the absolute block exceeds the writeset size this is a vmalloc out-of-bounds read that can disclose adjacent kernel heap memory, matching CNA guidance for OOB reads.\nI:H - Kernel vmalloc out-of-bounds access via test_bit() is memory corruption in a privileged context; disclosed adjacent heap contents can be used to craft follow-on arbitrary-write or control-flow hijack primitives, so integrity impact is rated High when uncertain between Low and High.\nA:H - KASAN reports this as vmalloc-out-of-bounds, and reading past the vzalloc\u0027d bitset can fault on unmapped pages or provoke a kernel oops/panic, causing immediate denial of service on storage nodes processing writes through dm-era."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:20.098Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fe94a0b14010a3c267ff9a2508afb4f27ff1c5bf"
},
{
"url": "https://git.kernel.org/stable/c/e3ffa8e492e5cdee62d916ee3e9244ccce2b73c5"
},
{
"url": "https://git.kernel.org/stable/c/9946a7176bd8c25ddd6e5f1799c54e572ee6bf0f"
},
{
"url": "https://git.kernel.org/stable/c/7e1822f83c5a1ee7b4a19e98edde8770a10b4c71"
},
{
"url": "https://git.kernel.org/stable/c/db5f9b4601f0012038e5a2628aedec2f47933380"
},
{
"url": "https://git.kernel.org/stable/c/1fcb5e29dd7a5b85adb9d8b539911741d878e829"
},
{
"url": "https://git.kernel.org/stable/c/bafe3e720cdac38cd7ea4eb7852a8f2dbe1bbfe6"
},
{
"url": "https://git.kernel.org/stable/c/a868196f03c2b19418ae3d2b69e195d668a271e5"
}
],
"title": "dm era: fix out-of-bounds memory access for non-zero start sector",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72107",
"datePublished": "2026-08-15T05:52:49.581Z",
"dateReserved": "2026-08-09T03:40:39.906Z",
"dateUpdated": "2026-10-19T21:19:28.417Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80932 (GCVE-0-2026-80932)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vsock/virtio: flush works in dependency order
virtio_vsock_remove() stops the virtqueues and then flushes each work
item before freeing the enclosing virtio_vsock. The current order does
not account for dependencies between those items: tx_work may queue
send_pkt_work, and send_pkt_work may queue rx_work.
In particular, send_pkt_work can set restart_rx and release tx_lock.
The remove path can then stop the queues and flush rx_work before
send_pkt_work queues it. Although the later send_pkt_work flush waits
for that producer to finish, nothing waits for the newly queued rx_work,
so kfree(vsock) can race with it.
KASAN reported:
BUG: KASAN: slab-use-after-free in
virtio_transport_rx_work+0x487/0x4b0
Read of size 8 at addr ffff888114c2b008 by task kworker/1:1/47
Workqueue: virtio_vsock virtio_transport_rx_work
Call Trace:
virtio_transport_rx_work+0x487/0x4b0
process_one_work+0x688/0x1120
worker_thread+0x45b/0xd10
Allocated by task 1:
virtio_vsock_probe+0xef/0x6b0
Freed by task 84:
kfree+0x131/0x3c0
virtio_vsock_remove+0xd1/0x100
Flush the works in producer-to-consumer order. virtio_vsock_vqs_del()
has already disabled the queue callbacks and cleared the run flags, so
after tx_work and send_pkt_work are drained, no source remains that can
queue rx_work after its flush.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 Version: 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80932",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:23.480878Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:36.468Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/vmw_vsock/virtio_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e059a14c1067bcc4f7b1947cd09f2baab98e340f",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "531e2ac2dab1ab90a16427c4f9c86663633e9487",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "f3313d952fc380cff53db9a28451a8807aa67b43",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "b9cb4e8ba71c9fbd935d66baa71bbb0b87192c94",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "2187a56f2fd1715d54daed6392809223c60544f3",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "165a330a68b5f299d8735f0194c314cb2e571269",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "da5e9f08714c19ba04e6863aca69d40f042f2e04",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
},
{
"lessThan": "728836ebca239810f164262b10211ef59182f811",
"status": "affected",
"version": "0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/vmw_vsock/virtio_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvsock/virtio: flush works in dependency order\n\nvirtio_vsock_remove() stops the virtqueues and then flushes each work\nitem before freeing the enclosing virtio_vsock. The current order does\nnot account for dependencies between those items: tx_work may queue\nsend_pkt_work, and send_pkt_work may queue rx_work.\n\nIn particular, send_pkt_work can set restart_rx and release tx_lock.\nThe remove path can then stop the queues and flush rx_work before\nsend_pkt_work queues it. Although the later send_pkt_work flush waits\nfor that producer to finish, nothing waits for the newly queued rx_work,\nso kfree(vsock) can race with it.\n\nKASAN reported:\n\n BUG: KASAN: slab-use-after-free in\n virtio_transport_rx_work+0x487/0x4b0\n Read of size 8 at addr ffff888114c2b008 by task kworker/1:1/47\n Workqueue: virtio_vsock virtio_transport_rx_work\n Call Trace:\n virtio_transport_rx_work+0x487/0x4b0\n process_one_work+0x688/0x1120\n worker_thread+0x45b/0xd10\n Allocated by task 1:\n virtio_vsock_probe+0xef/0x6b0\n Freed by task 84:\n kfree+0x131/0x3c0\n virtio_vsock_remove+0xd1/0x100\n\nFlush the works in producer-to-consumer order. virtio_vsock_vqs_del()\nhas already disabled the queue callbacks and cleared the run flags, so\nafter tx_work and send_pkt_work are drained, no source remains that can\nqueue rx_work after its flush."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in the guest virtio-vsock driver during virtio_vsock_remove(), reached via virtio device unplug and AF_VSOCK virtqueue completions rather than routed packets; kernel CNA guidance scores vsock and virtio guest-driver bugs as Local.\nAC:L - A malicious hypervisor controls both sides of the race by injecting vsock packets that generate RST replies so send_pkt_work sets restart_rx and queues rx_work, while concurrently hot-unplugging the device so remove() flushes rx_work too early; the attacker can retry and pause guest vCPUs, so success is not an uncontrolled condition.\nPR:N - No guest privileges are required: a malicious hypervisor or deprivileged VMM (Firecracker, crosvm, TDX/SEV-SNP) triggers device removal and virtqueue traffic with no guest credentials; host-sent packets to unbound ports generate reply skbs in kernel workqueues without any guest socket, user, or capability.\nUI:N - virtio_vsock_remove() and the racing send_pkt_work/rx_work items run from driver teardown and virtqueue IRQ workqueues; no guest user must mount a filesystem, open a device, or take any other action.\nS:U - The use-after-free corrupts the guest kernel virtio_vsock object and remains within the guest OS security authority; a guest-to-host escape would require a host vhost-vsock bug, not this guest-side remove path.\nC:H - KASAN reports a slab use-after-free read in virtio_transport_rx_work of the kfree\u0027d virtio_vsock; a workqueue callback running on a freed slab object enables attacker-controlled reuse and arbitrary kernel memory disclosure.\nI:H - After kfree(vsock), pending rx_work still runs against the freed object (rx_lock, vqs, flags); slab reuse of that work_struct yields arbitrary writes and control-flow hijack typical of kernel workqueue UAFs, not merely a crash.\nA:H - The reported KASAN bug is a kernel slab-use-after-free in virtio_transport_rx_work during device removal, causing oops or panic and fully denying guest availability even without completing a privilege-escalation exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:45:16.044Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e059a14c1067bcc4f7b1947cd09f2baab98e340f"
},
{
"url": "https://git.kernel.org/stable/c/531e2ac2dab1ab90a16427c4f9c86663633e9487"
},
{
"url": "https://git.kernel.org/stable/c/f3313d952fc380cff53db9a28451a8807aa67b43"
},
{
"url": "https://git.kernel.org/stable/c/b9cb4e8ba71c9fbd935d66baa71bbb0b87192c94"
},
{
"url": "https://git.kernel.org/stable/c/2187a56f2fd1715d54daed6392809223c60544f3"
},
{
"url": "https://git.kernel.org/stable/c/165a330a68b5f299d8735f0194c314cb2e571269"
},
{
"url": "https://git.kernel.org/stable/c/da5e9f08714c19ba04e6863aca69d40f042f2e04"
},
{
"url": "https://git.kernel.org/stable/c/728836ebca239810f164262b10211ef59182f811"
}
],
"title": "vsock/virtio: flush works in dependency order",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80932",
"datePublished": "2026-09-11T19:42:07.012Z",
"dateReserved": "2026-08-26T14:34:25.802Z",
"dateUpdated": "2026-10-19T08:45:16.044Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72440 (GCVE-0-2026-72440)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid1: fix writes_pending and barrier reference leaks on write failures
raid1_make_request() acquires a writes_pending reference with
md_write_start() before calling raid1_write_request(). Several failure
paths in raid1_write_request() complete the bio and return without
reaching the normal write completion path, causing the corresponding
md_write_end() to be skipped.
Make raid1_write_request() return a status indicating whether the write
request was successfully queued. This allows raid1_make_request() to
call md_write_end() when raid1_write_request() fails.
Additionally, if wait_blocked_rdev() fails after wait_barrier()
succeeds, the associated barrier reference is not released.
Call allow_barrier() before returning from that path to keep the barrier
accounting balanced.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72440",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:04.662710Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.375Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/raid1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "921e2baa626d1504bf30295816aaeb90ac8c82f4",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "a846affa813013204d0cce0cfdaeb99e8fcce188",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "7a450460687919e79b5f8503bdeb13ecf4cca311",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "bffbbfcbd9393e315a7a4286dcd70e875265db9a",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
},
{
"lessThan": "8e065a1602511282fc0da2dc89445e0eb71a681c",
"status": "affected",
"version": "5aa705039c4fca84575539bfa2b8a28454a3d2ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/raid1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid1: fix writes_pending and barrier reference leaks on write failures\n\nraid1_make_request() acquires a writes_pending reference with\nmd_write_start() before calling raid1_write_request(). Several failure\npaths in raid1_write_request() complete the bio and return without\nreaching the normal write completion path, causing the corresponding\nmd_write_end() to be skipped.\n\nMake raid1_write_request() return a status indicating whether the write\nrequest was successfully queued. This allows raid1_make_request() to\ncall md_write_end() when raid1_write_request() fails.\n\nAdditionally, if wait_blocked_rdev() fails after wait_barrier()\nsucceeds, the associated barrier reference is not released.\n\nCall allow_barrier() before returning from that path to keep the barrier\naccounting balanced."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in md/raid1 write handling reached via block-layer writes to RAID1-backed volumes; on storage servers and appliances, remote NFS, SMB (ksmbd), iSCSI, and NVMe-oF clients submit those writes through md_submit_bio() to raid1_make_request() the same as local I/O.\nAC:L - An attacker with write access can reliably trigger the leaks using RWF_NOWAIT during active resync/barriers, against mirrors in BlockedBadBlocks state after prior write errors, or via bio_submit_split_bioset() failure paths; they control I/O timing and concurrency without uncontrollable races.\nPR:L - Exploitation requires only the ability to issue writes to the RAID1 array\u2014via a mounted filesystem, O_RDWR on /dev/mdX, or an authenticated network storage client\u2014not CAP_SYS_ADMIN or other privileges needed to create or reconfigure the md array.\nUI:N - No victim interaction is required; the attacker or their storage client issues the triggering RWF_NOWAIT or failing write requests directly, with no separate mount, file open, or administrator action needed at exploitation time.\nS:U - Impact is confined to kernel md RAID1 write/barrier accounting and array lifecycle state within the same host kernel; it does not cross VM, container, or IOMMU security boundaries.\nC:N - Leaked writes_pending and nr_pending reference counters do not corrupt memory, read out of bounds, or use-after-free; there is no kernel pointer leak or arbitrary memory disclosure primitive.\nI:L - Skipped md_write_end() on failure paths leaves writes_pending inflated and prevents set_in_sync()/clean sysfs transitions, causing persistent incorrect RAID1 dirty/clean metadata state that cannot be corrected until reboot.\nA:H - Leaked conf-\u003enr_pending from the wait_blocked_rdev()+REQ_NOWAIT path inflates get_unqueued_pending() so freeze_array() wait_event never completes, deadlocking array quiesce, reshape, removal, and read-error recovery while array_frozen blocks new I/O."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:57.263Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/921e2baa626d1504bf30295816aaeb90ac8c82f4"
},
{
"url": "https://git.kernel.org/stable/c/a846affa813013204d0cce0cfdaeb99e8fcce188"
},
{
"url": "https://git.kernel.org/stable/c/7a450460687919e79b5f8503bdeb13ecf4cca311"
},
{
"url": "https://git.kernel.org/stable/c/bffbbfcbd9393e315a7a4286dcd70e875265db9a"
},
{
"url": "https://git.kernel.org/stable/c/8e065a1602511282fc0da2dc89445e0eb71a681c"
}
],
"title": "md/raid1: fix writes_pending and barrier reference leaks on write failures",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72440",
"datePublished": "2026-08-15T05:56:52.662Z",
"dateReserved": "2026-08-09T03:40:39.930Z",
"dateUpdated": "2026-10-21T12:44:57.263Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89702 (GCVE-0-2026-89702)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: size fh_verify server sockaddr slot by xpt_locallen
The nfsd_fh_verify and nfsd_fh_verify_err tracepoints declare the
server sockaddr slot sized by xpt_remotelen but fill it from
xpt_local using xpt_locallen:
TP_STRUCT__entry(
...
__sockaddr(server, rqstp->rq_xprt->xpt_remotelen)
...
)
TP_fast_assign(
...
__assign_sockaddr(server, &rqstp->rq_xprt->xpt_local,
rqstp->rq_xprt->xpt_locallen);
...
)
When xpt_locallen exceeds xpt_remotelen, __assign_sockaddr's memcpy
writes past the reserved ring-buffer slot. In the reverse direction
(xpt_locallen < xpt_remotelen) the slot is oversized and the
unwritten tail leaks prior ring-buffer contents to trace consumers.
The write-past-end case is reachable on NFS/UDP. svc_xprt_set_remote()
is only called from svc_tcp_accept() (net/sunrpc/svcsock.c) and from
the RDMA connect path; svc_create_socket() for UDP calls only
svc_xprt_set_local(), so xpt_remotelen stays 0 for the xprt's
lifetime. Every fh_verify trace for an NFSv2/v3-over-UDP request
then copies 16 or 28 bytes from xpt_local into a zero-byte slot.
The other NFSD tracepoints that record the server address
(NFSD_TRACE_PROC_CALL_FIELDS, NFSD_TRACE_PROC_RES_FIELDS,
SVC_RQST_ENDPOINT_FIELDS) already size the server slot by
xpt_locallen; nfsd_fh_verify and nfsd_fh_verify_err were the only
exceptions.
Fix by sizing the server slot with xpt_locallen so the declared slot
matches the copy length. The client slot and its assignment already
agree on xpt_remotelen and are left untouched.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 051382885552e12541cc0ebf82092be374a9ed2a Version: 051382885552e12541cc0ebf82092be374a9ed2a Version: 051382885552e12541cc0ebf82092be374a9ed2a Version: 051382885552e12541cc0ebf82092be374a9ed2a Version: 051382885552e12541cc0ebf82092be374a9ed2a Version: dcbebc86850324fbe0a993ce352f0539cd98038a Version: 62980365d6e894234b29f44fb2bfad4f7f8bb824 Version: 5.15.154 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/trace.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1c6a4d6c20fd42552ffc2c3dfaed2139c9477ee5",
"status": "affected",
"version": "051382885552e12541cc0ebf82092be374a9ed2a",
"versionType": "git"
},
{
"lessThan": "95d064f9828a20ccca5ae90a17be3e2076f25272",
"status": "affected",
"version": "051382885552e12541cc0ebf82092be374a9ed2a",
"versionType": "git"
},
{
"lessThan": "7ff8d6363cffff45654ea85e319f7c0c54226012",
"status": "affected",
"version": "051382885552e12541cc0ebf82092be374a9ed2a",
"versionType": "git"
},
{
"lessThan": "719a10e3f5f868c3c4ac3cf3648c5775d12034bd",
"status": "affected",
"version": "051382885552e12541cc0ebf82092be374a9ed2a",
"versionType": "git"
},
{
"lessThan": "71d068490098b1d23c63b2345e40675d3a1ca763",
"status": "affected",
"version": "051382885552e12541cc0ebf82092be374a9ed2a",
"versionType": "git"
},
{
"status": "affected",
"version": "dcbebc86850324fbe0a993ce352f0539cd98038a",
"versionType": "git"
},
{
"status": "affected",
"version": "62980365d6e894234b29f44fb2bfad4f7f8bb824",
"versionType": "git"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.154",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/trace.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.154",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.154",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: size fh_verify server sockaddr slot by xpt_locallen\n\nThe nfsd_fh_verify and nfsd_fh_verify_err tracepoints declare the\nserver sockaddr slot sized by xpt_remotelen but fill it from\nxpt_local using xpt_locallen:\n\n TP_STRUCT__entry(\n ...\n __sockaddr(server, rqstp-\u003erq_xprt-\u003expt_remotelen)\n ...\n )\n TP_fast_assign(\n ...\n __assign_sockaddr(server, \u0026rqstp-\u003erq_xprt-\u003expt_local,\n rqstp-\u003erq_xprt-\u003expt_locallen);\n ...\n )\n\nWhen xpt_locallen exceeds xpt_remotelen, __assign_sockaddr\u0027s memcpy\nwrites past the reserved ring-buffer slot. In the reverse direction\n(xpt_locallen \u003c xpt_remotelen) the slot is oversized and the\nunwritten tail leaks prior ring-buffer contents to trace consumers.\n\nThe write-past-end case is reachable on NFS/UDP. svc_xprt_set_remote()\nis only called from svc_tcp_accept() (net/sunrpc/svcsock.c) and from\nthe RDMA connect path; svc_create_socket() for UDP calls only\nsvc_xprt_set_local(), so xpt_remotelen stays 0 for the xprt\u0027s\nlifetime. Every fh_verify trace for an NFSv2/v3-over-UDP request\nthen copies 16 or 28 bytes from xpt_local into a zero-byte slot.\n\nThe other NFSD tracepoints that record the server address\n(NFSD_TRACE_PROC_CALL_FIELDS, NFSD_TRACE_PROC_RES_FIELDS,\nSVC_RQST_ENDPOINT_FIELDS) already size the server slot by\nxpt_locallen; nfsd_fh_verify and nfsd_fh_verify_err were the only\nexceptions.\n\nFix by sizing the server slot with xpt_locallen so the declared slot\nmatches the copy length. The client slot and its assignment already\nagree on xpt_remotelen and are left untouched."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The nfsd_fh_verify and nfsd_fh_verify_err tracepoints run in the in-kernel NFS server while handling NFSv2/v3 RPCs on UDP/2049; a remote packet reaches svc_udp_recvfrom, svc_process, nfsd_proc_getattr/nfsd3_proc_getattr, then fh_verify.\nAC:L - With the nfsd_fh_verify events enabled (a realistic nfsd tracing/perf deployment), every UDP fh_verify deterministically memcpy\u0027s 16 or 28 bytes of xpt_local into a 0-byte slot; no race, layout guess, or attacker-uncontrollable condition is required.\nPR:N - AUTH_NULL and AUTH_SYS verify no credentials, and GETATTR uses NFSD_MAY_NOP so a dummy filehandle still hits fh_verify (and nfsd_fh_verify_err on lookup failure); a UDP source-IP spoof or wildcard export satisfies the IP map without an authenticated principal.\nUI:N - The attacker sends crafted NFS/UDP RPCs unilaterally; no administrator or victim-client action is required at exploitation time, and tracing already being enabled is the scored configuration rather than user interaction.\nS:U - The overflow corrupts the host kernel\u0027s ftrace/perf ring buffer inside the NFS server\u0027s own kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - When the reserved sockaddr slot is larger than xpt_locallen, leftover prior ring-buffer contents including kernel pointers from other events leak to trace consumers; the UDP out-of-bounds write can also corrupt adjacent event headers so later parses treat neighbouring kernel memory as payload.\nI:H - On NFS/UDP, xpt_remotelen stays 0 so __assign_sockaddr copies 16 or 28 bytes of xpt_local past the reserved dynamic array into subsequent ring-buffer bytes and potentially the next sub-buffer page header, which is an out-of-bounds kernel write.\nA:H - Corrupting ring-buffer event headers or the next sub-buffer page metadata can oops or panic the tracer or hang consumers, and a remote peer can repeat the UDP request to force the overflow until the kernel faults."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:23.372Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1c6a4d6c20fd42552ffc2c3dfaed2139c9477ee5"
},
{
"url": "https://git.kernel.org/stable/c/95d064f9828a20ccca5ae90a17be3e2076f25272"
},
{
"url": "https://git.kernel.org/stable/c/7ff8d6363cffff45654ea85e319f7c0c54226012"
},
{
"url": "https://git.kernel.org/stable/c/719a10e3f5f868c3c4ac3cf3648c5775d12034bd"
},
{
"url": "https://git.kernel.org/stable/c/71d068490098b1d23c63b2345e40675d3a1ca763"
}
],
"title": "nfsd: size fh_verify server sockaddr slot by xpt_locallen",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89702",
"datePublished": "2026-09-11T19:46:19.537Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-21T12:48:23.372Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74660 (GCVE-0-2026-74660)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ebt_nflog: pin the NFLOG backend
nf_log_unregister() runs after the per-net teardown so its final RCU
grace period also drains readers that obtained the logger from a per-net
binding. However, ebt_nflog passes an explicit ULOG log type to
nf_log_packet() without holding a reference on the selected logger module,
unlike the xt_NFLOG and nft_log frontends.
An ebtables nflog rule can therefore remain callable while nfnetlink_log
is unloaded. The resulting interleaving is:
CPU 0 CPU 1
nfnetlink_log_fini()
unregister_pernet_subsys()
kfree(nfnl_log_pernet(net))
ebt_nflog_tg()
nf_log_packet()
nfulnl_log_packet()
instance_lookup_get_rcu()
The global ULOG logger is still registered at this point, so CPU 1
dereferences the per-net state after CPU 0 has freed it. KASAN reported:
BUG: KASAN: slab-use-after-free in instance_lookup_get_rcu
Read of size 8 at addr ff110001052e6210 by task poc/92
Call Trace:
instance_lookup_get_rcu+0x1ce/0x1f0 [nfnetlink_log]
nfulnl_log_packet+0x248/0x2fb0 [nfnetlink_log]
nf_log_packet+0x204/0x300
ebt_nflog_tg+0x351/0x550
ebt_do_table+0xedf/0x22b0
Allocated by task 90:
__kmalloc_noprof+0x186/0x470
ops_init+0x6d/0x420
register_pernet_operations+0x2f6/0x670
register_pernet_subsys+0x23/0x40
Freed by task 93:
kfree+0x131/0x3c0
ops_undo_list+0x3e3/0x700
unregister_pernet_operations+0x232/0x490
unregister_pernet_subsys+0x1c/0x30
nfnetlink_log_fini+0x34/0x450 [nfnetlink_log]
Acquire the ULOG logger module reference when an ebt_nflog rule is
validated and release it when the rule is destroyed. Request the NFLOG
backend for legacy callers when needed, matching xt_NFLOG. This prevents
module teardown until all ebt_nflog rules have stopped using the logger.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee Version: c83fa19603bdaeef17b815713dbbe3230c8a34ee |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74660",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:02.258811Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:07.659Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/ebt_nflog.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3bcce49d617c593c7606083bfdb464a1761fa68d",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "394d7939c6b2b9e6bea0844c89efb5913168d898",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "2cac4294f184c9bc19ff82552c62b80498694c39",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "9d8a94b48b393885e7f876c8ef68ed4da5012078",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "6809379a860b9fccbb5435bf08343f6d081ac68d",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "47a119ec8a7e2d5c8c4e86fb1a56c4e696e500fb",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "e2ab7e878bdbe80104c879c31fd2d82a476703b8",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
},
{
"lessThan": "30825970339c107bacaf7f61af90fcdb1f597ca1",
"status": "affected",
"version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/ebt_nflog.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ebt_nflog: pin the NFLOG backend\n\nnf_log_unregister() runs after the per-net teardown so its final RCU\ngrace period also drains readers that obtained the logger from a per-net\nbinding. However, ebt_nflog passes an explicit ULOG log type to\nnf_log_packet() without holding a reference on the selected logger module,\nunlike the xt_NFLOG and nft_log frontends.\n\nAn ebtables nflog rule can therefore remain callable while nfnetlink_log\nis unloaded. The resulting interleaving is:\n\n CPU 0 CPU 1\n nfnetlink_log_fini()\n unregister_pernet_subsys()\n kfree(nfnl_log_pernet(net))\n ebt_nflog_tg()\n nf_log_packet()\n nfulnl_log_packet()\n instance_lookup_get_rcu()\n\nThe global ULOG logger is still registered at this point, so CPU 1\ndereferences the per-net state after CPU 0 has freed it. KASAN reported:\n\n BUG: KASAN: slab-use-after-free in instance_lookup_get_rcu\n Read of size 8 at addr ff110001052e6210 by task poc/92\n Call Trace:\n instance_lookup_get_rcu+0x1ce/0x1f0 [nfnetlink_log]\n nfulnl_log_packet+0x248/0x2fb0 [nfnetlink_log]\n nf_log_packet+0x204/0x300\n ebt_nflog_tg+0x351/0x550\n ebt_do_table+0xedf/0x22b0\n Allocated by task 90:\n __kmalloc_noprof+0x186/0x470\n ops_init+0x6d/0x420\n register_pernet_operations+0x2f6/0x670\n register_pernet_subsys+0x23/0x40\n Freed by task 93:\n kfree+0x131/0x3c0\n ops_undo_list+0x3e3/0x700\n unregister_pernet_operations+0x232/0x490\n unregister_pernet_subsys+0x1c/0x30\n nfnetlink_log_fini+0x34/0x450 [nfnetlink_log]\n\nAcquire the ULOG logger module reference when an ebt_nflog rule is\nvalidated and release it when the rule is destroyed. Request the NFLOG\nbackend for legacy callers when needed, matching xt_NFLOG. This prevents\nmodule teardown until all ebt_nflog rules have stopped using the logger."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached through ebtables setsockopt rule installation and nfnetlink_log module teardown (local administrative paths); per kernel CNA guidance, netfilter/ebtables bugs are scored Local even when bridge hook evaluation can be driven by forwarded frames.\nAC:L - The KASAN reproducer uses a deterministic two-thread race between nfnetlink_log_fini() module removal and concurrent bridge traffic through an active ebt_nflog rule; the attacker controls both the unload timing and packet generation without depending on uncontrollable victim state.\nPR:L - Installing an ebt_nflog rule requires CAP_NET_ADMIN in the socket network namespace, obtainable by unprivileged users via user+network namespaces (unshare -Urn); the documented PoC races module teardown concurrently with rule-driven traffic, matching standard CNA treatment for ebtables/netfilter paths.\nUI:N - No victim interaction is required beyond the attacker\u0027s own ebtables configuration, module unload coordination, and bridge traffic generation to hit the active nflog target during the teardown window.\nS:U - The slab use-after-free corrupts host kernel memory within the same security authority; this is not a VM escape, container breakout across an IOMMU boundary, or other cross-scope privilege transition.\nC:H - KASAN confirmed a slab use-after-free read in instance_lookup_get_rcu() against freed nfnl_log_pernet state; UAF on the per-net instance hash table enables attacker-influenced heap reads and disclosure of adjacent kernel memory contents.\nI:H - Use-after-free on the nfnl_log_pernet structure and nfulnl_instance objects provides standard heap grooming primitives; freed slab reuse can redirect subsequent logging operations into attacker-controlled data for arbitrary kernel writes or control-flow hijack.\nA:H - The UAF read on freed per-net logging state can immediately trigger a kernel BUG/oops (as reported by KASAN) and reliably causes denial of service; repeated bridge traffic during module teardown can panic the affected host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:14.285Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3bcce49d617c593c7606083bfdb464a1761fa68d"
},
{
"url": "https://git.kernel.org/stable/c/394d7939c6b2b9e6bea0844c89efb5913168d898"
},
{
"url": "https://git.kernel.org/stable/c/2cac4294f184c9bc19ff82552c62b80498694c39"
},
{
"url": "https://git.kernel.org/stable/c/9d8a94b48b393885e7f876c8ef68ed4da5012078"
},
{
"url": "https://git.kernel.org/stable/c/6809379a860b9fccbb5435bf08343f6d081ac68d"
},
{
"url": "https://git.kernel.org/stable/c/47a119ec8a7e2d5c8c4e86fb1a56c4e696e500fb"
},
{
"url": "https://git.kernel.org/stable/c/e2ab7e878bdbe80104c879c31fd2d82a476703b8"
},
{
"url": "https://git.kernel.org/stable/c/30825970339c107bacaf7f61af90fcdb1f597ca1"
}
],
"title": "netfilter: ebt_nflog: pin the NFLOG backend",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74660",
"datePublished": "2026-08-22T15:32:33.677Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-10-16T19:16:07.659Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64213 (GCVE-0-2026-64213)
Vulnerability from cvelistv5
Published
2026-07-24 15:23
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (lm90) Add lock protection to lm90_alert
Sashiko reports:
lm90_alert() executes in the smbus alert context and calls
lm90_update_confreg() to disable the hardware alert line, without
acquiring hwmon_lock.
Concurrently, sysfs write operations (such as lm90_write_convrate) hold
the hwmon_lock, temporarily modify data->config, and then restore it.
If an alert interrupt occurs concurrently with a sysfs write, the sysfs
path will overwrite the alert handler's modifications to data->config
and the hardware register.
This unintentionally re-enables the hardware alert line while the alarm is
still active, causing an interrupt storm.
Add the missing lock to lm90_alert() to solve the problem.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/lm90.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "02b88fa993582b4fe228b4143b330b0bb9f28353",
"status": "affected",
"version": "7a1d220ccb0cc2b808eb176fb05bf55a38179f3f",
"versionType": "git"
},
{
"lessThan": "165ef777ec6f634a5e4b8d9b0dadca8ef91fa90e",
"status": "affected",
"version": "7a1d220ccb0cc2b808eb176fb05bf55a38179f3f",
"versionType": "git"
},
{
"lessThan": "bed1fc32e0eb653806fa98afcf55f9a311fc4ce2",
"status": "affected",
"version": "7a1d220ccb0cc2b808eb176fb05bf55a38179f3f",
"versionType": "git"
},
{
"lessThan": "b0b66aae8a94c3663d47e4000b0e81b89ce32186",
"status": "affected",
"version": "7a1d220ccb0cc2b808eb176fb05bf55a38179f3f",
"versionType": "git"
},
{
"lessThan": "873e919e3101063a7a75989510ccfc125a4391cf",
"status": "affected",
"version": "7a1d220ccb0cc2b808eb176fb05bf55a38179f3f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/lm90.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (lm90) Add lock protection to lm90_alert\n\nSashiko reports:\n\nlm90_alert() executes in the smbus alert context and calls\nlm90_update_confreg() to disable the hardware alert line, without\nacquiring hwmon_lock.\n\nConcurrently, sysfs write operations (such as lm90_write_convrate) hold\nthe hwmon_lock, temporarily modify data-\u003econfig, and then restore it.\n\nIf an alert interrupt occurs concurrently with a sysfs write, the sysfs\npath will overwrite the alert handler\u0027s modifications to data-\u003econfig\nand the hardware register.\n\nThis unintentionally re-enables the hardware alert line while the alarm is\nstill active, causing an interrupt storm.\n\nAdd the missing lock to lm90_alert() to solve the problem."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:11.235Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/02b88fa993582b4fe228b4143b330b0bb9f28353"
},
{
"url": "https://git.kernel.org/stable/c/165ef777ec6f634a5e4b8d9b0dadca8ef91fa90e"
},
{
"url": "https://git.kernel.org/stable/c/bed1fc32e0eb653806fa98afcf55f9a311fc4ce2"
},
{
"url": "https://git.kernel.org/stable/c/b0b66aae8a94c3663d47e4000b0e81b89ce32186"
},
{
"url": "https://git.kernel.org/stable/c/873e919e3101063a7a75989510ccfc125a4391cf"
}
],
"title": "hwmon: (lm90) Add lock protection to lm90_alert",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64213",
"datePublished": "2026-07-24T15:23:02.987Z",
"dateReserved": "2026-07-19T15:36:31.770Z",
"dateUpdated": "2026-10-21T12:43:11.235Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74515 (GCVE-0-2026-74515)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: s390: pci: Reject adapter interrupt forwarding if already enabled
The MPCIFC instruction doesn't allow registering adapter interrupts without
first unregistering. So reject any request to enable interrupt forwarding
if its already enabled for the zPCI device. This also fixes overwriting and
thus leaking resources when the ioctl is called multiple times for the same
device.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc Version: 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74515",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:58:46.342564Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:51.934Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/s390/kvm/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "642d2d1067f7c4d753ae0e3ba5bc98b43cfe3c70",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "78d9648e7e960546d5b72504a0b0358cd8bb1e9d",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "6be1ff49ba81f96a6fa55915e6d920be43ac57cc",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "6837f0ae85fd54cf64c8a0c7c530bba2fae0a207",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "591952b63a9f976da7d49f719f36ec826ee2a575",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
},
{
"lessThan": "8fa01be5a6149404adb82c0979a78f6347edd3ef",
"status": "affected",
"version": "3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/s390/kvm/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: s390: pci: Reject adapter interrupt forwarding if already enabled\n\nThe MPCIFC instruction doesn\u0027t allow registering adapter interrupts without\nfirst unregistering. So reject any request to enable interrupt forwarding\nif its already enabled for the zPCI device. This also fixes overwriting and\nthus leaking resources when the ioctl is called multiple times for the same\ndevice."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through the KVM_S390_ZPCI_OP VM ioctl in arch/s390/kvm/kvm-s390.c; on IBM Z with zPCI passthrough, QEMU forwards guest mpcifc adapter-interrupt registration to this local ioctl path, not over the network.\nAC:L - An attacker with an assigned zPCI device can call KVM_S390_ZPCIOP_REG_AEN twice in a row without racing or special memory layout; each duplicate call deterministically re-enters kvm_s390_pci_aif_enable() and overwrites host bookkeeping.\nPR:L - Exploitation requires a KVM VM file descriptor and a VFIO-assigned zPCI device, i.e. control of the guest/VMM process (typical cloud tenant or qemu user), not init-namespace root; this cannot be reached from an unprivileged user namespace alone.\nUI:N - Once zPCI passthrough is configured, the guest or its VMM can issue duplicate registration on its own; no additional host administrator or victim user action is needed beyond normal device setup.\nS:C - A guest-triggered ioctl corrupts host-owned AIFT/GAITE state outside the VM security boundary, leaving orphaned summary-index entries that the host interrupt path later dereferences in hypervisor context.\nC:H - Duplicate enable overwrites zdev-\u003eaisb and leaks earlier GAITE/AIBV resources; on teardown aift-\u003ekzdev[orphaned_si] still points at freed kvm_zdev/kvm, so aen_host_forward() performs UAF reads of host hypervisor memory.\nI:H - Stale orphaned GAITE entries retain guest-chosen physical addresses and dangling kzdev pointers; aen_host_forward() can execute set_bit_inv() and further host-side writes through those corrupted structures during adapter-event delivery.\nA:H - Each duplicate REG_AEN leaks pinned guest pages, AIBV allocations, and summary bits without rollback when MPCIFC re-registration fails, enabling repeatable host memory exhaustion and kernel oops/panic via IRQ-time UAF dereferences."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:14.487Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/642d2d1067f7c4d753ae0e3ba5bc98b43cfe3c70"
},
{
"url": "https://git.kernel.org/stable/c/78d9648e7e960546d5b72504a0b0358cd8bb1e9d"
},
{
"url": "https://git.kernel.org/stable/c/6be1ff49ba81f96a6fa55915e6d920be43ac57cc"
},
{
"url": "https://git.kernel.org/stable/c/6837f0ae85fd54cf64c8a0c7c530bba2fae0a207"
},
{
"url": "https://git.kernel.org/stable/c/591952b63a9f976da7d49f719f36ec826ee2a575"
},
{
"url": "https://git.kernel.org/stable/c/8fa01be5a6149404adb82c0979a78f6347edd3ef"
}
],
"title": "KVM: s390: pci: Reject adapter interrupt forwarding if already enabled",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74515",
"datePublished": "2026-08-15T12:27:35.567Z",
"dateReserved": "2026-08-15T05:44:03.910Z",
"dateUpdated": "2026-10-16T19:05:51.934Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89691 (GCVE-0-2026-89691)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: clear opcnt on compound arg release to prevent OOB read
nfsd4_release_compoundargs() resets args->ops to the inline iops[8]
array when the dynamically-allocated ops buffer is freed, but leaves
args->opcnt at its original value (which can be up to 200 for NFSv4.1+
compounds).
If rq_status_counter is stuck at an odd value (which can happen when
nfsd_dispatch() hits an error path after setting it odd), the RPC
status dumpit handler reads min(opcnt, 16) entries from args->ops[].
Since iops only has 8 elements and is the last field in struct
nfsd4_compoundargs, reading indices 8-15 accesses adjacent slab memory
and leaks it to userspace via netlink.
Zero opcnt unconditionally in nfsd4_release_compoundargs() so stale
compound metadata is never exposed through the status interface.
[ cel: Remove the kvfree_rcu_mightsleep() sleep from the exposure window ]
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "58bcdfb2b2e412088839ae740b1a95154dc0b8d0",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "e879148867bd4c4cac42e063ffaffa187dddc6fe",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "c1a4f7b1848f95302df598217e1c7a1410c2d0c5",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "ae4c38555e81563b8dc5eae55ffd70f0ea97aa5a",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: clear opcnt on compound arg release to prevent OOB read\n\nnfsd4_release_compoundargs() resets args-\u003eops to the inline iops[8]\narray when the dynamically-allocated ops buffer is freed, but leaves\nargs-\u003eopcnt at its original value (which can be up to 200 for NFSv4.1+\ncompounds).\n\nIf rq_status_counter is stuck at an odd value (which can happen when\nnfsd_dispatch() hits an error path after setting it odd), the RPC\nstatus dumpit handler reads min(opcnt, 16) entries from args-\u003eops[].\nSince iops only has 8 elements and is the last field in struct\nnfsd4_compoundargs, reading indices 8-15 accesses adjacent slab memory\nand leaks it to userspace via netlink.\n\nZero opcnt unconditionally in nfsd4_release_compoundargs() so stale\ncompound metadata is never exposed through the status interface.\n\n[ cel: Remove the kvfree_rcu_mightsleep() sleep from the exposure window ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The out-of-bounds read is in nfsd_nl_rpc_status_get_dumpit(), reached only via NFSD_CMD_RPC_STATUS_GET over AF_NETLINK. Remote NFSv4 compounds can leave stale opcnt after nfsd4_release_compoundargs() but never enter dumpit, so exploitation requires local netlink access.\nAC:L - The attacker can send an NFSv4.0 COMPOUND with more than eight ops including OP_CACHEME SETCLIENTID, then a duplicate in-flight RPC so nfsd_cache_lookup() returns RC_DROPIT and leaves rq_status_counter odd. Dumpit then deterministically reads min(opcnt,16) slots from the eight-element iops array; both sides are attacker-controlled.\nPR:L - NFSD_CMD_RPC_STATUS_GET is registered with GENL_CMD_CAP_DUMP and no GENL_ADMIN_PERM, so any unprivileged process in the nfsd network namespace can invoke the dump. Exploitation does not require CAP_NET_ADMIN or init-namespace root.\nUI:N - The attacker issues the netlink dump and the NFSv4 compounds themselves. No separate victim action such as mounting a filesystem or opening a device is required.\nS:U - The slab over-read and netlink leak occur in host-kernel nfsd on the local machine. Impact stays inside one security authority and is not a VM escape, IOMMU bypass, or other cross-boundary breakout.\nC:H - After release, dumpit reads args-\u003eops[8..15].opnum past the trailing iops[8] array in nfsd4_compoundargs and returns those eight u32s via NFSD_A_RPC_STATUS_COMPOUND_OPS. That adjacent-slab out-of-bounds read is Confidentiality High unless limited to a few bytes.\nI:N - dumpit only loads opnum into a stack nfsd_genl_rqstp for netlink. There is no out-of-bounds write, use-after-free, or control-flow hijack primitive.\nA:H - Slots 8-15 are sampled at sizeof(struct nfsd4_op) stride past the kmalloc\u0027d nfsd4_compoundargs object into adjacent or unmapped slab pages, which can oops the dumpit path even if the leak is not turned into a stable read."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:04.497Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/58bcdfb2b2e412088839ae740b1a95154dc0b8d0"
},
{
"url": "https://git.kernel.org/stable/c/e879148867bd4c4cac42e063ffaffa187dddc6fe"
},
{
"url": "https://git.kernel.org/stable/c/c1a4f7b1848f95302df598217e1c7a1410c2d0c5"
},
{
"url": "https://git.kernel.org/stable/c/ae4c38555e81563b8dc5eae55ffd70f0ea97aa5a"
}
],
"title": "nfsd: clear opcnt on compound arg release to prevent OOB read",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89691",
"datePublished": "2026-09-11T19:46:11.284Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-19T08:51:04.497Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72063 (GCVE-0-2026-72063)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gpio: tegra: do not call pinctrl for GPIO direction
tegra_gpio_direction_input() and tegra_gpio_direction_output() already
program the GPIO controller direction registers directly. The additional
pinctrl_gpio_direction_input/output() calls do not add a Tegra pinctrl
operation, because the Tegra pinmux ops provide GPIO request/free
handling but no gpio_set_direction hook.
The extra call still enters the pinctrl core and takes pctldev->mutex.
Shared GPIO users can call the direction path while holding their
per-line spinlock, so this otherwise redundant pinctrl direction call can
sleep in an atomic context.
This was found by our static analysis tool and then confirmed by manual
review of tegra_gpio_probe(), the Tegra GPIO direction callbacks and the
Tegra pinctrl ops. The reviewed path has a default non-sleeping
struct gpio_chip while the direction callback still enters the pinctrl
mutex path.
A directed runtime validation kept the same non-sleeping chip registration
and drove:
gpio_shared_proxy_direction_output()
gpiod_direction_output_raw_commit()
tegra_gpio_direction_output()
pinctrl_gpio_direction_output()
Lockdep reported a sleep-in-atomic warning with the shared GPIO spinlock
held and pinctrl_get_device_gpio_range() plus tegra_gpio_direction_output()
on the stack.
Do not mark the whole chip as can_sleep to paper over this: can_sleep
describes whether get()/set() may sleep, and Tegra value access is MMIO.
Remove the redundant pinctrl direction calls and keep pinctrl involvement
in the existing request/free path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc Version: 11da905412833d9b369a6a09a401f87149d674dc |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpio/gpio-tegra.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "89904b4f1dc0f9550c3f206dcdfceed0b7ce7c49",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "d3b92d16e1c4debec7526b6dbb2d98d0aeed796b",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "616188becd4a208afbae1653fc5241e1748bae80",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "e57a4845b0da60a7b9f052160878097826320954",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "cd17c5a1d9f186b57e9e2949be427803b7110a5c",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "ac761e66708d51dac35c4c7f1891ea991dc788f0",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "628c63f96f4564fa145f602af2d41daf9532201f",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
},
{
"lessThan": "d3e91a95b2b0fc6336dbf3ec90d831a1654d2720",
"status": "affected",
"version": "11da905412833d9b369a6a09a401f87149d674dc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpio/gpio-tegra.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: tegra: do not call pinctrl for GPIO direction\n\ntegra_gpio_direction_input() and tegra_gpio_direction_output() already\nprogram the GPIO controller direction registers directly. The additional\npinctrl_gpio_direction_input/output() calls do not add a Tegra pinctrl\noperation, because the Tegra pinmux ops provide GPIO request/free\nhandling but no gpio_set_direction hook.\n\nThe extra call still enters the pinctrl core and takes pctldev-\u003emutex.\nShared GPIO users can call the direction path while holding their\nper-line spinlock, so this otherwise redundant pinctrl direction call can\nsleep in an atomic context.\n\nThis was found by our static analysis tool and then confirmed by manual\nreview of tegra_gpio_probe(), the Tegra GPIO direction callbacks and the\nTegra pinctrl ops. The reviewed path has a default non-sleeping\nstruct gpio_chip while the direction callback still enters the pinctrl\nmutex path.\n\nA directed runtime validation kept the same non-sleeping chip registration\nand drove:\n\n gpio_shared_proxy_direction_output()\n gpiod_direction_output_raw_commit()\n tegra_gpio_direction_output()\n pinctrl_gpio_direction_output()\n\nLockdep reported a sleep-in-atomic warning with the shared GPIO spinlock\nheld and pinctrl_get_device_gpio_range() plus tegra_gpio_direction_output()\non the stack.\n\nDo not mark the whole chip as can_sleep to paper over this: can_sleep\ndescribes whether get()/set() may sleep, and Tegra value access is MMIO.\nRemove the redundant pinctrl direction calls and keep pinctrl involvement\nin the existing request/free path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:39.651Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/89904b4f1dc0f9550c3f206dcdfceed0b7ce7c49"
},
{
"url": "https://git.kernel.org/stable/c/d3b92d16e1c4debec7526b6dbb2d98d0aeed796b"
},
{
"url": "https://git.kernel.org/stable/c/616188becd4a208afbae1653fc5241e1748bae80"
},
{
"url": "https://git.kernel.org/stable/c/e57a4845b0da60a7b9f052160878097826320954"
},
{
"url": "https://git.kernel.org/stable/c/cd17c5a1d9f186b57e9e2949be427803b7110a5c"
},
{
"url": "https://git.kernel.org/stable/c/ac761e66708d51dac35c4c7f1891ea991dc788f0"
},
{
"url": "https://git.kernel.org/stable/c/628c63f96f4564fa145f602af2d41daf9532201f"
},
{
"url": "https://git.kernel.org/stable/c/d3e91a95b2b0fc6336dbf3ec90d831a1654d2720"
}
],
"title": "gpio: tegra: do not call pinctrl for GPIO direction",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72063",
"datePublished": "2026-08-15T05:52:17.315Z",
"dateReserved": "2026-08-09T03:40:39.903Z",
"dateUpdated": "2026-08-23T12:46:39.651Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64598 (GCVE-0-2026-64598)
Vulnerability from cvelistv5
Published
2026-08-06 07:13
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: Fix error code in smb2_aead_req_alloc()
The "*num_sgs" variable is a u32 so "ERR_PTR(*num_sgs)" doesn't work.
We would have to do something similar to the previous line where it's
cast to int and then long. However, it's simpler to store the return in
an int ret variable.
This bug would eventually result in a crash when dereference the invalid
error pointer.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64598",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:26.477617Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-190",
"description": "CWE-190 Integer Overflow or Wraparound",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:43.611Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "aa37f5fef78dd11cbf983269da2031e12625c56d",
"status": "affected",
"version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
"versionType": "git"
},
{
"lessThan": "cad756733dc3985188983f3e2eb77e2927209099",
"status": "affected",
"version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
"versionType": "git"
},
{
"lessThan": "a187883cc1dc784a4d32537f5d316f1b7b9ad76f",
"status": "affected",
"version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
"versionType": "git"
},
{
"lessThan": "a1cc432cb0b0a1f74f98a0db3b94ca880c7947ac",
"status": "affected",
"version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
"versionType": "git"
},
{
"lessThan": "61f28012e5650c619223decdb7970e0d3162e949",
"status": "affected",
"version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: Fix error code in smb2_aead_req_alloc()\n\nThe \"*num_sgs\" variable is a u32 so \"ERR_PTR(*num_sgs)\" doesn\u0027t work.\nWe would have to do something similar to the previous line where it\u0027s\ncast to int and then long. However, it\u0027s simpler to store the return in\nan int ret variable.\n\nThis bug would eventually result in a crash when dereference the invalid\nerror pointer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The buggy smb2_aead_req_alloc()/crypt_message() path runs in the in-kernel SMB3 client during encrypted transform processing over an SMB network session; the highest-severity scenario is a client mounting and using an untrusted or malicious SMB3 encrypted share.\nAC:L - When cifs_get_num_sgs() returns a negative errno, the u32 truncation makes ERR_PTR() bypass IS_ERR() deterministically on 64-bit, and the subsequent sg_init_marker()/pointer use crashes without requiring an attacker-uncontrollable race or memory layout.\nPR:N - The attacking SMB endpoint or network adversary needs no privileges or account on the victim client; client-side credentials used to mount the share are a victim condition, not attacker privileges.\nUI:R - A victim must mount or otherwise use an SMB3 share with encryption so the client encrypt/decrypt AEAD allocation path runs; per CVSS guidance, mounting a filesystem is user interaction.\nS:U - The invalid error-pointer dereference and resulting kernel memory access remain within the client kernel\u0027s security authority and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - IS_ERR() failure leads to wild pointer use (uninitialized AEAD/sg state and invalid creq), which under the required uncertainty rule is treated as a high-impact kernel memory disclosure primitive rather than a pure non-leaking crash.\nI:H - The same path performs a wild write via sg_mark_end() on a bogus scatterlist address and may later kfree_sensitive() an invalid pointer, yielding kernel memory corruption; under uncertainty this is scored as high integrity impact.\nA:H - The commit-documented result is a kernel crash from dereferencing the invalid error pointer; sg_init_marker() on a NULL sgl with a huge truncated nents count causes a reliable oops/panic DoS."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:20.851Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/aa37f5fef78dd11cbf983269da2031e12625c56d"
},
{
"url": "https://git.kernel.org/stable/c/cad756733dc3985188983f3e2eb77e2927209099"
},
{
"url": "https://git.kernel.org/stable/c/a187883cc1dc784a4d32537f5d316f1b7b9ad76f"
},
{
"url": "https://git.kernel.org/stable/c/a1cc432cb0b0a1f74f98a0db3b94ca880c7947ac"
},
{
"url": "https://git.kernel.org/stable/c/61f28012e5650c619223decdb7970e0d3162e949"
}
],
"title": "smb/client: Fix error code in smb2_aead_req_alloc()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64598",
"datePublished": "2026-08-06T07:13:52.716Z",
"dateReserved": "2026-07-19T15:36:31.799Z",
"dateUpdated": "2026-10-19T20:48:43.611Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53131 (GCVE-0-2026-53131)
Vulnerability from cvelistv5
Published
2026-06-25 08:38
Modified
2026-10-19 19:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: require Ethernet MAC header before using eth_hdr()
`ip6t_eui64`, `xt_mac`, the `bitmap:ip,mac`, `hash:ip,mac`, and
`hash:mac` ipset types, and `nf_log_syslog` access `eth_hdr(skb)`
after either assuming that the skb is associated with an Ethernet
device or checking only that the `ETH_HLEN` bytes at
`skb_mac_header(skb)` lie between `skb->head` and `skb->data`.
Make these paths first verify that the skb is associated with an
Ethernet device, that the MAC header was set, and that it spans at
least a full Ethernet header before accessing `eth_hdr(skb)`.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:22:22.481Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-53131",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:25:47.768327Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T19:57:25.041Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/ip6t_eui64.c",
"net/netfilter/ipset/ip_set_bitmap_ipmac.c",
"net/netfilter/ipset/ip_set_hash_ipmac.c",
"net/netfilter/ipset/ip_set_hash_mac.c",
"net/netfilter/nf_log_syslog.c",
"net/netfilter/xt_mac.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4435888e1bf139d2bfe5911643d4217382136743",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "063f43361e884acd7300790e90194430275d0d0c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "726abf97566867f808fec9d8a408eb9698bd570a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "367abcacc13a8e2e7624408b7f593bd1e60e49d9",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5d634afb8b83b49de562792fd0d047416a43bd4d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cea435ea7e868ea6fdf039bc4f2090c1d829b556",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "62443dc21114c0bbc476fa62973db89743f2f137",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/ip6t_eui64.c",
"net/netfilter/ipset/ip_set_bitmap_ipmac.c",
"net/netfilter/ipset/ip_set_hash_ipmac.c",
"net/netfilter/ipset/ip_set_hash_mac.c",
"net/netfilter/nf_log_syslog.c",
"net/netfilter/xt_mac.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.94",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.36",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.94",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.36",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.13",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: require Ethernet MAC header before using eth_hdr()\n\n`ip6t_eui64`, `xt_mac`, the `bitmap:ip,mac`, `hash:ip,mac`, and\n`hash:mac` ipset types, and `nf_log_syslog` access `eth_hdr(skb)`\nafter either assuming that the skb is associated with an Ethernet\ndevice or checking only that the `ETH_HLEN` bytes at\n`skb_mac_header(skb)` lie between `skb-\u003ehead` and `skb-\u003edata`.\n\nMake these paths first verify that the skb is associated with an\nEthernet device, that the MAC header was set, and that it spans at\nleast a full Ethernet header before accessing `eth_hdr(skb)`."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.4,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable netfilter match, ipset, and logging paths run while processing packets in receive/netdev hooks. In a reasonable firewall, router, VPN, or tunnel deployment with these rules installed, unauthenticated remote packets can reach the vulnerable code.\nAC:L - No race or difficult timing is required; a packet reaching a vulnerable rule with an invalid, unset, non-Ethernet, or too-short MAC header deterministically drives the bad eth_hdr(skb) access. The needed rule/interface setup is a plausible deployment condition, not an exploit race.\nPR:N - The remote packet sender does not need credentials or local privileges once the affected rule or logger is configured. Although rule installation requires CAP_NET_ADMIN, that is not required for the runtime remote-trigger scenario.\nUI:N - Exploitation is triggered by packet processing and does not require a victim user to open a file, mount anything, or perform another action.\nS:U - The impact remains within the kernel/network stack security authority. There is no VM, IOMMU, or separate sandbox boundary crossing.\nC:H - The flaw causes invalid or out-of-bounds reads from the skb MAC header, and those bytes can be copied into logs/ipset state or influence observable match behavior. Per the required guidance, out-of-bounds reads are scored High when not proven strictly harmless.\nI:L - The primitive is a read rather than an arbitrary write or control-flow hijack. However, the wrongly read MAC bytes can influence firewall matches and ipset add/delete/test behavior, giving limited integrity impact.\nA:H - Invalid eth_hdr(skb) access can produce slab out-of-bounds/KASAN reports or kernel oops/panic conditions, and packets can be sent repeatedly. Kernel crashes are High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:33:25.251Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4435888e1bf139d2bfe5911643d4217382136743"
},
{
"url": "https://git.kernel.org/stable/c/063f43361e884acd7300790e90194430275d0d0c"
},
{
"url": "https://git.kernel.org/stable/c/726abf97566867f808fec9d8a408eb9698bd570a"
},
{
"url": "https://git.kernel.org/stable/c/367abcacc13a8e2e7624408b7f593bd1e60e49d9"
},
{
"url": "https://git.kernel.org/stable/c/5d634afb8b83b49de562792fd0d047416a43bd4d"
},
{
"url": "https://git.kernel.org/stable/c/cea435ea7e868ea6fdf039bc4f2090c1d829b556"
},
{
"url": "https://git.kernel.org/stable/c/62443dc21114c0bbc476fa62973db89743f2f137"
}
],
"title": "netfilter: require Ethernet MAC header before using eth_hdr()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53131",
"datePublished": "2026-06-25T08:38:20.489Z",
"dateReserved": "2026-06-09T07:44:35.386Z",
"dateUpdated": "2026-10-19T19:57:25.041Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74313 (GCVE-0-2026-74313)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vduse: hold vduse_lock across IDR lookup in open path
vduse_dev_open() looks up struct vduse_dev through the IDR and then
acquires dev->lock only after vduse_lock has been dropped.
This leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the
same object from the IDR and free it before the open path locks the
device, leading to a use-after-free.
Close this race by keeping vduse_lock held until dev->lock has been
acquired in the open path, matching the lock ordering already used by
the destroy path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e Version: c8a6153b6c59d95c0e091f053f6f180952ade91e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74313",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:53:05.168424Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:32.347Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/vduse_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "35483c5306e09b3190ff937089d404a78012695c",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "5c1560be8aa6849356455af67518d35c551cbd95",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "93ed4692f2299a40346025979f40e4a9b7b33af7",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "d94e2947203aead590fd63f667d316d4475d65af",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "79e12c891940b0c4c75881b7fd82a8cbb8ac97be",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
},
{
"lessThan": "e440e077748939839d9f76e24383b76b785f80ce",
"status": "affected",
"version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/vduse_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvduse: hold vduse_lock across IDR lookup in open path\n\nvduse_dev_open() looks up struct vduse_dev through the IDR and then\nacquires dev-\u003elock only after vduse_lock has been dropped.\n\nThis leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the\nsame object from the IDR and free it before the open path locks the\ndevice, leading to a use-after-free.\n\nClose this race by keeping vduse_lock held until dev-\u003elock has been\nacquired in the open path, matching the lock ordering already used by\nthe destroy path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerability is only reachable via local syscalls on VDUSE character devices: open(2) on /dev/vduse/$NAME racing with ioctl(VDUSE_DESTROY_DEV) on /dev/vduse/control. It is not triggered by remote network traffic, adjacent wireless protocols, or physical device attachment.\nAC:L - The attacker fully controls both sides of the race by creating a VDUSE device, then concurrently calling open() and VDUSE_DESTROY_DEV from their own threads. No timing or layout conditions outside attacker control are required beyond standard thread scheduling.\nPR:L - Neither the open nor destroy paths enforce capabilities beyond device-node access; only VIRTIO_ID_NET creation requires CAP_NET_ADMIN. VDUSE is designed so userspace dataplane operators with access to /dev/vduse nodes can create, open, and destroy block devices without full host admin rights.\nUI:N - Exploitation requires no victim interaction. The attacker creates their own VDUSE instance and triggers the open/destroy race from their process; no separate user must mount, configure, or open the device.\nS:C - On cloud and virtualization hosts where VDUSE is delegated to containers or NFV tenant workloads, kernel UAF exploitation crosses from the tenant/container security boundary to full host kernel compromise, comparable to a VM or sandbox escape.\nC:H - The race produces a use-after-free of kmalloc\u0027d struct vduse_dev. Locking and dereferencing the freed object, plus subsequent ioctl/read/write using dangling file-\u003eprivate_data, enables slab reuse and arbitrary kernel memory disclosure.\nI:H - UAF of vduse_dev allows heap grooming over mutexes, virtqueue pointers, and config buffers. Follow-on VDUSE ioctls (SET_CONFIG, VQ_SETUP, IOTLB) on the dangling fd provide exploitable arbitrary-write and control-flow hijack primitives.\nA:H - Use-after-free during mutex_lock on the freed device or later VDUSE operations can immediately corrupt kernel memory and trigger oops/panic, fully denying system availability even before full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:46.036Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/35483c5306e09b3190ff937089d404a78012695c"
},
{
"url": "https://git.kernel.org/stable/c/5c1560be8aa6849356455af67518d35c551cbd95"
},
{
"url": "https://git.kernel.org/stable/c/93ed4692f2299a40346025979f40e4a9b7b33af7"
},
{
"url": "https://git.kernel.org/stable/c/d94e2947203aead590fd63f667d316d4475d65af"
},
{
"url": "https://git.kernel.org/stable/c/a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2"
},
{
"url": "https://git.kernel.org/stable/c/79e12c891940b0c4c75881b7fd82a8cbb8ac97be"
},
{
"url": "https://git.kernel.org/stable/c/e440e077748939839d9f76e24383b76b785f80ce"
}
],
"title": "vduse: hold vduse_lock across IDR lookup in open path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74313",
"datePublished": "2026-08-15T05:58:12.058Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-10-16T18:55:32.347Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74258 (GCVE-0-2026-74258)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Guard __get_user acesss with access_ok for uprobe_multi data
As reported by sashiko [1] we need to use access_ok to check the user
space data bounds before we use __get-user to get it.
[1] https://lore.kernel.org/bpf/20260610145235.CB1441F00893@smtp.kernel.org/
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74258",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:32.873038Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:28.406Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/bpf_trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ff6c5ee77dcc98381290d16af53f6262625870a6",
"status": "affected",
"version": "89ae89f53d201143560f1e9ed4bfa62eee34f88e",
"versionType": "git"
},
{
"lessThan": "2c387db784293256d35fd3d438f577cc82bb823d",
"status": "affected",
"version": "89ae89f53d201143560f1e9ed4bfa62eee34f88e",
"versionType": "git"
},
{
"lessThan": "a9f1395028c2bbe18e57864cc355c11faff488cb",
"status": "affected",
"version": "89ae89f53d201143560f1e9ed4bfa62eee34f88e",
"versionType": "git"
},
{
"lessThan": "c6d51ad36490013ee9df94a372d3bf794bd304d1",
"status": "affected",
"version": "89ae89f53d201143560f1e9ed4bfa62eee34f88e",
"versionType": "git"
},
{
"lessThan": "4d87a251d45b4a95eb4c0abcfab809c9f231258a",
"status": "affected",
"version": "89ae89f53d201143560f1e9ed4bfa62eee34f88e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/bpf_trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Guard __get_user acesss with access_ok for uprobe_multi data\n\nAs reported by sashiko [1] we need to use access_ok to check the user\nspace data bounds before we use __get-user to get it.\n\n[1] https://lore.kernel.org/bpf/20260610145235.CB1441F00893@smtp.kernel.org/"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in bpf_uprobe_multi_link_attach(), reached only via the local bpf(BPF_LINK_CREATE) syscall with BPF_TRACE_UPROBE_MULTI; per kernel CNA guidance BPF/uprobe link creation is Local, not network-reachable.\nAC:L - The attacker fully controls link_create.uprobe_multi offsets/ref_ctr_offsets/cookies pointers and cnt, so __get_user runs on attacker-chosen addresses without races or external conditions; repeated attempts reliably leak or fault.\nPR:L - Exploitation requires a BPF_PROG_TYPE_KPROBE program (CAP_BPF+CAP_PERFMON), routinely delegated via BPF tokens into non-init user namespaces for tracing/container workloads; this is low privilege, not init-namespace root.\nUI:N - No victim interaction is needed; the attacker loads the BPF program, issues BPF_LINK_CREATE with crafted pointers, and can read leaked data back via BPF_OBJ_GET_INFO_BY_FD on their own link.\nS:U - Impact is arbitrary kernel memory disclosure and possible host compromise within the same kernel security authority; it does not cross VM, IOMMU, or container sandbox boundaries by itself.\nC:H - Missing access_ok lets __get_user copy from kernel addresses into uprobes arrays (up to cnt*8 bytes); cookies/offsets can be exfiltrated through bpf_uprobe_multi_link_fill_link_info, giving arbitrary kernel memory read.\nI:H - Leaked kernel pointers and attacker-influenced offset/ref_ctr values feed uprobe_register() breakpoint installation, and the read primitive is standardly chained into arbitrary kernel write and privilege escalation.\nA:H - __get_user on non-userspace addresses can fault under SMAP/PAN and oops the kernel; even failed exploitation attempts can crash the host, and guidance treats serious uaccess bugs as high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:55:56.675Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ff6c5ee77dcc98381290d16af53f6262625870a6"
},
{
"url": "https://git.kernel.org/stable/c/2c387db784293256d35fd3d438f577cc82bb823d"
},
{
"url": "https://git.kernel.org/stable/c/a9f1395028c2bbe18e57864cc355c11faff488cb"
},
{
"url": "https://git.kernel.org/stable/c/c6d51ad36490013ee9df94a372d3bf794bd304d1"
},
{
"url": "https://git.kernel.org/stable/c/4d87a251d45b4a95eb4c0abcfab809c9f231258a"
}
],
"title": "bpf: Guard __get_user acesss with access_ok for uprobe_multi data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74258",
"datePublished": "2026-08-15T05:57:36.257Z",
"dateReserved": "2026-08-15T05:44:03.877Z",
"dateUpdated": "2026-10-16T18:55:28.406Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64070 (GCVE-0-2026-64070)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-09-02 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
powerpc/hv-gpci: fix preempt count leak in sysfs show paths
Four sysfs show() callbacks in hv-gpci take get_cpu_var(hv_gpci_reqb)
(which calls preempt_disable()) but only call the matching put_cpu_var()
on the error path under the 'out:' label. Every successful read leaks
one preempt_disable():
processor_bus_topology_show()
processor_config_show()
affinity_domain_via_virtual_processor_show()
affinity_domain_via_domain_show()
(affinity_domain_via_partition_show() was already correct.)
On a CONFIG_PREEMPT=y kernel, repeated reads raise preempt_count and
eventually return to userspace with preemption still disabled. The
next user-mode page fault then hits faulthandler_disabled() == 1,
gets forced to SIGSEGV, and the resulting coredump trips
'BUG: scheduling while atomic' in call_usermodehelper_exec ->
wait_for_completion_state -> schedule:
BUG: scheduling while atomic: <task>/<pid>/0x00000004
...
__schedule_bug+0x6c/0x90
__schedule+0x58c/0x13a0
schedule+0x48/0x1a0
schedule_timeout+0x104/0x170
wait_for_completion_state+0x16c/0x330
call_usermodehelper_exec+0x254/0x2d0
vfs_coredump+0x1050/0x2590
get_signal+0xb9c/0xc80
do_notify_resume+0xf8/0x470
Add an out_success label that calls put_cpu_var() before returning
the byte count, mirroring affinity_domain_via_partition_show().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/powerpc/perf/hv-gpci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b300312562fd6e4729697adb9f777f00ca0429f3",
"status": "affected",
"version": "71f1c39647d8c9d4d54a861ec81f1ff17544bcb6",
"versionType": "git"
},
{
"lessThan": "45afabe7f99c5d8746434ee41c86584c01d70147",
"status": "affected",
"version": "71f1c39647d8c9d4d54a861ec81f1ff17544bcb6",
"versionType": "git"
},
{
"lessThan": "b61ebb2826ca1852c2bbd92a676fb622c358cab4",
"status": "affected",
"version": "71f1c39647d8c9d4d54a861ec81f1ff17544bcb6",
"versionType": "git"
},
{
"lessThan": "903409000a07ac8e31ffedeb8516f4f8d67150c8",
"status": "affected",
"version": "71f1c39647d8c9d4d54a861ec81f1ff17544bcb6",
"versionType": "git"
},
{
"lessThan": "dbc30a57bd8e026995e9fa8e8c31cffd18542c01",
"status": "affected",
"version": "71f1c39647d8c9d4d54a861ec81f1ff17544bcb6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/powerpc/perf/hv-gpci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/hv-gpci: fix preempt count leak in sysfs show paths\n\nFour sysfs show() callbacks in hv-gpci take get_cpu_var(hv_gpci_reqb)\n(which calls preempt_disable()) but only call the matching put_cpu_var()\non the error path under the \u0027out:\u0027 label. Every successful read leaks\none preempt_disable():\n\n processor_bus_topology_show()\n processor_config_show()\n affinity_domain_via_virtual_processor_show()\n affinity_domain_via_domain_show()\n\n(affinity_domain_via_partition_show() was already correct.)\n\nOn a CONFIG_PREEMPT=y kernel, repeated reads raise preempt_count and\neventually return to userspace with preemption still disabled. The\nnext user-mode page fault then hits faulthandler_disabled() == 1,\ngets forced to SIGSEGV, and the resulting coredump trips\n\u0027BUG: scheduling while atomic\u0027 in call_usermodehelper_exec -\u003e\nwait_for_completion_state -\u003e schedule:\n\n BUG: scheduling while atomic: \u003ctask\u003e/\u003cpid\u003e/0x00000004\n ...\n __schedule_bug+0x6c/0x90\n __schedule+0x58c/0x13a0\n schedule+0x48/0x1a0\n schedule_timeout+0x104/0x170\n wait_for_completion_state+0x16c/0x330\n call_usermodehelper_exec+0x254/0x2d0\n vfs_coredump+0x1050/0x2590\n get_signal+0xb9c/0xc80\n do_notify_resume+0xf8/0x470\n\nAdd an out_success label that calls put_cpu_var() before returning\nthe byte count, mirroring affinity_domain_via_partition_show()."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-02T12:49:39.984Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b300312562fd6e4729697adb9f777f00ca0429f3"
},
{
"url": "https://git.kernel.org/stable/c/45afabe7f99c5d8746434ee41c86584c01d70147"
},
{
"url": "https://git.kernel.org/stable/c/b61ebb2826ca1852c2bbd92a676fb622c358cab4"
},
{
"url": "https://git.kernel.org/stable/c/903409000a07ac8e31ffedeb8516f4f8d67150c8"
},
{
"url": "https://git.kernel.org/stable/c/dbc30a57bd8e026995e9fa8e8c31cffd18542c01"
}
],
"title": "powerpc/hv-gpci: fix preempt count leak in sysfs show paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64070",
"datePublished": "2026-07-19T15:39:46.536Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-09-02T12:49:39.984Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89747 (GCVE-0-2026-89747)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix use-after-free in trace_pipe read on sub-buffer order change
Writing to buffer_subbuf_size_kb calls ring_buffer_subbuf_order_set(),
which frees every sub-buffer of the ring buffer, including the reader
page, and replaces them with newly allocated ones.
Readers of trace_pipe hold pointers into those pages. ring_buffer_peek()
looks up an event under cpu_buffer->reader_lock but returns the event
pointer after dropping the lock, and peek_next_entry() then calls
ring_buffer_event_length() and ring_buffer_event_data() on it. If the
sub-buffer order is changed in that window, the reader dereferences
freed memory:
BUG: KASAN: use-after-free in ring_buffer_peek+0x3e0/0x430
Read of size 1 at addr ffff88802a4cf010 by task syz-executor989/6002
Freed by:
free_buffer_page kernel/trace/ring_buffer.c:398 [inline]
ring_buffer_subbuf_order_set+0x1325/0x18e0 kernel/trace/ring_buffer.c:7444
buffer_subbuf_size_write+0x182/0x280 kernel/trace/trace.c:8221
Take trace_access_lock(RING_BUFFER_ALL_CPUS) around the order change.
This is the lock trace_pipe readers already hold across their entire
peek-and-print loop, so the swap can no longer race with a reader that
is dereferencing a peeked event.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "05ebe1e1d7d38c2612bacfefe043a33572ae34cb",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "ddbe921ed16a0ad2d9e09574c3f3aabec7528325",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "7a49d19ff9baaf61217e5ec14199c18bc2d93ee4",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "372f8534244d632ad5118e8a87a11291b01712d3",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix use-after-free in trace_pipe read on sub-buffer order change\n\nWriting to buffer_subbuf_size_kb calls ring_buffer_subbuf_order_set(),\nwhich frees every sub-buffer of the ring buffer, including the reader\npage, and replaces them with newly allocated ones.\n\nReaders of trace_pipe hold pointers into those pages. ring_buffer_peek()\nlooks up an event under cpu_buffer-\u003ereader_lock but returns the event\npointer after dropping the lock, and peek_next_entry() then calls\nring_buffer_event_length() and ring_buffer_event_data() on it. If the\nsub-buffer order is changed in that window, the reader dereferences\nfreed memory:\n\n BUG: KASAN: use-after-free in ring_buffer_peek+0x3e0/0x430\n Read of size 1 at addr ffff88802a4cf010 by task syz-executor989/6002\n\n Freed by:\n free_buffer_page kernel/trace/ring_buffer.c:398 [inline]\n ring_buffer_subbuf_order_set+0x1325/0x18e0 kernel/trace/ring_buffer.c:7444\n buffer_subbuf_size_write+0x182/0x280 kernel/trace/trace.c:8221\n\nTake trace_access_lock(RING_BUFFER_ALL_CPUS) around the order change.\nThis is the lock trace_pipe readers already hold across their entire\npeek-and-print loop, so the swap can no longer race with a reader that\nis dereferencing a peeked event."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only via local tracefs: write() to buffer_subbuf_size_kb (buffer_subbuf_size_write -\u003e ring_buffer_subbuf_order_set) racing with read()/splice() of trace_pipe (tracing_read_pipe -\u003e ring_buffer_peek). No network, adjacent-radio, or physical-device path reaches this code.\nAC:L - The attacker controls both sides of the race: one thread reads trace_pipe while another writes buffer_subbuf_size_kb, which frees the reader page after dropping reader_lock. ring_buffer_peek then dereferences the stale event pointer; the attempt is retryable at will and CONFIG_TRACING is standard.\nPR:L - tracing_check_open_get_tr() checks only LOCKDOWN_TRACEFS and DAC, with no capable() gate. buffer_subbuf_size_kb (0640) and trace_pipe (0440) are delegated via uid=/gid= mounts to tracing-group accounts on Android/Perfetto, ChromeOS, and developer systems, matching CVE-2025-38101 and CVE-2026-74634.\nUI:N - The attacker opens and reads their own trace_pipe and writes buffer_subbuf_size_kb from their own threads. No victim action, mount, or file open by another user is required.\nS:U - The use-after-free corrupts kernel ring-buffer pages and metadata inside the host kernel\u0027s security authority. It can yield local privilege escalation but does not cross a VM, IOMMU, container, or hardware trust boundary.\nC:H - ring_buffer_subbuf_order_set() frees reader-page sub-buffers while ring_buffer_peek() still holds a pointer into them; peek_next_entry() and print_trace_line() then read the freed event and copy it to userspace via trace_pipe, disclosing recycled kernel heap contents.\nI:H - Freed sub-buffer pages and buffer_page objects can be reallocated while the reader still consumes attacker-controlled type_len/payload and print_trace_line() dispatches on iter-\u003eent-\u003etype. This UAF heap corruption is exploitable for arbitrary kernel writes and control-flow hijack.\nA:H - Dereferencing the freed reader page in ring_buffer_peek()/ring_buffer_event_length() causes a kernel oops, which is the syzbot KASAN use-after-free. The attacker can retrigger that crash at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:01.177Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/05ebe1e1d7d38c2612bacfefe043a33572ae34cb"
},
{
"url": "https://git.kernel.org/stable/c/ddbe921ed16a0ad2d9e09574c3f3aabec7528325"
},
{
"url": "https://git.kernel.org/stable/c/7a49d19ff9baaf61217e5ec14199c18bc2d93ee4"
},
{
"url": "https://git.kernel.org/stable/c/372f8534244d632ad5118e8a87a11291b01712d3"
}
],
"title": "tracing: Fix use-after-free in trace_pipe read on sub-buffer order change",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89747",
"datePublished": "2026-09-11T19:46:52.268Z",
"dateReserved": "2026-09-11T19:38:34.762Z",
"dateUpdated": "2026-10-19T08:52:01.177Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89696 (GCVE-0-2026-89696)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: block non-SAVEFH ops after FOREIGN PUTFH to prevent NULL deref
When CONFIG_NFSD_V4_2_INTER_SSC is enabled, nfsd4_putfh() can return
success with fh_dentry and fh_export both NULL if fh_verify() returns
nfserr_stale and putfh->no_verify is true. The NFSD4_FH_FOREIGN flag
is set, but the compound dispatch loop only uses this flag to bypass
the nfserr_nofilehandle check -- it does not prevent subsequent ops
from running with a NULL fh_dentry.
A remote client can exploit this by crafting a COMPOUND that includes
an inter-SSC COPY (which causes check_if_stalefh_allowed() to set
no_verify=true on the saved PUTFH) with an additional op inserted
between the source PUTFH and SAVEFH. For example, SETATTR calls
fh_want_write() which dereferences fh_export->ex_path.mnt without
calling fh_verify() first, causing a NULL pointer dereference in the
nfsd kthread.
Fix this by gating the dispatch loop: when NFSD4_FH_FOREIGN is set
and fh_dentry is NULL, only OP_SAVEFH (needed for the inter-SSC flow)
and ops with ALLOWED_WITHOUT_FH (which don't need a resolved
filehandle) may proceed. All other ops receive nfserr_stale, per
RFC 7862 Section 15.2.3 which specifies that foreign filehandle
validation is deferred to the consuming operation and NFS4ERR_STALE
returned at that point.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e Version: b9e8638e3d9ed8334f1f7071e081860aac37e83e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ffdc844e673d2bcb2af8c8c3eef8cdea59d0bf32",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "00c84f4eec715e501efc080a5670114189e42507",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "2d9846fd1c767920fddd4bde30eb35cd2969df13",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "977e6f006a7a3ffc4216ae6034f768f8de6fd138",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "35f248bd40b47b229d4999581df45b97daadd977",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "311f7d926630940650447cbd1c932b076b40a6c4",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "bf4d338dc8625d70c7f2cb0657d66851a7ac9154",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
},
{
"lessThan": "c59738a00aa51b16adc1b5ceb7c80877168efb4d",
"status": "affected",
"version": "b9e8638e3d9ed8334f1f7071e081860aac37e83e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: block non-SAVEFH ops after FOREIGN PUTFH to prevent NULL deref\n\nWhen CONFIG_NFSD_V4_2_INTER_SSC is enabled, nfsd4_putfh() can return\nsuccess with fh_dentry and fh_export both NULL if fh_verify() returns\nnfserr_stale and putfh-\u003eno_verify is true. The NFSD4_FH_FOREIGN flag\nis set, but the compound dispatch loop only uses this flag to bypass\nthe nfserr_nofilehandle check -- it does not prevent subsequent ops\nfrom running with a NULL fh_dentry.\n\nA remote client can exploit this by crafting a COMPOUND that includes\nan inter-SSC COPY (which causes check_if_stalefh_allowed() to set\nno_verify=true on the saved PUTFH) with an additional op inserted\nbetween the source PUTFH and SAVEFH. For example, SETATTR calls\nfh_want_write() which dereferences fh_export-\u003eex_path.mnt without\ncalling fh_verify() first, causing a NULL pointer dereference in the\nnfsd kthread.\n\nFix this by gating the dispatch loop: when NFSD4_FH_FOREIGN is set\nand fh_dentry is NULL, only OP_SAVEFH (needed for the inter-SSC flow)\nand ops with ALLOWED_WITHOUT_FH (which don\u0027t need a resolved\nfilehandle) may proceed. All other ops receive nfserr_stale, per\nRFC 7862 Section 15.2.3 which specifies that foreign filehandle\nvalidation is deferred to the consuming operation and NFS4ERR_STALE\nreturned at that point."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd NFSv4 COMPOUND dispatch and is triggered by a crafted NFSv4.2 COMPOUND over TCP/2049 (PUTFH of a stale fh, then SETATTR, with an inter-SSC COPY in the same compound). No local access is required.\nAC:L - After EXCHANGE_ID/CREATE_SESSION, the attacker fully controls the compound that marks the source PUTFH no_verify and inserts SETATTR before SAVEFH, so fh_want_write hits NULL fh_export deterministically with no race or layout dependency.\nPR:N - AUTH_SYS (the usual nfsd configuration) verifies no secret; a client just asserts a UID to create a session. SETATTR then runs on the FOREIGN fh without fh_verify, so no export access check or other credential gate is reached.\nUI:N - The attacker sends the COMPOUND directly to nfsd; no administrator or victim user action is required at exploitation time.\nS:U - The NULL dereference oopses the nfsd kthread in the host kernel\u0027s own authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:N - After the stale FOREIGN PUTFH, fh_export and fh_dentry are NULL rather than dangling or attacker-controlled, so the fault is on the first load of fh_export-\u003eex_path.mnt with no disclosure.\nI:N - This is a pure NULL pointer dereference in fh_want_write with no write to attacker-influenced memory and no control-flow hijack primitive.\nA:H - The NULL dereference oopses the nfsd kthread and can be replayed to exhaust nfsd threads, denying NFS service; with panic_on_oops it panics the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:09.479Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ffdc844e673d2bcb2af8c8c3eef8cdea59d0bf32"
},
{
"url": "https://git.kernel.org/stable/c/00c84f4eec715e501efc080a5670114189e42507"
},
{
"url": "https://git.kernel.org/stable/c/2d9846fd1c767920fddd4bde30eb35cd2969df13"
},
{
"url": "https://git.kernel.org/stable/c/977e6f006a7a3ffc4216ae6034f768f8de6fd138"
},
{
"url": "https://git.kernel.org/stable/c/35f248bd40b47b229d4999581df45b97daadd977"
},
{
"url": "https://git.kernel.org/stable/c/311f7d926630940650447cbd1c932b076b40a6c4"
},
{
"url": "https://git.kernel.org/stable/c/bf4d338dc8625d70c7f2cb0657d66851a7ac9154"
},
{
"url": "https://git.kernel.org/stable/c/c59738a00aa51b16adc1b5ceb7c80877168efb4d"
}
],
"title": "nfsd: block non-SAVEFH ops after FOREIGN PUTFH to prevent NULL deref",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89696",
"datePublished": "2026-09-11T19:46:15.030Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:09.479Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89929 (GCVE-0-2026-89929)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-21 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU
When emulating INVVPID, KVM executes INVVPID on the physical CPU using
vpid02 (instead of the L1 assigned VPID), after doing some validations
on the operands. However, it is possible that the physical CPU KVM
executes INVVPID on is different from the CPU L2 is running on.
For example, in the following scenario:
- L2 runs on CPU #1 and exits to L1 (vmx->nested.vmcs02.cpu=1)
- L1 migrates to CPU #2 and executes INVVPID
- KVM executes INVVPID on CPU #2
- L1 migrates back to CPU #1 and runs L2 (vmx->nested.vmcs02.cpu=1)
The TLB entries on CPU #1 are never invalidated, because INVVPID was
executed on CPU #2, and vmcs02 never ran on a different pCPU (i.e.
vmx_vcpu_load_vmcs() will *not* request KVM_REQ_TLB_FLUSH).
Ensure that INVVPID is being executed on the same pCPU that L2 last ran
on, and if not, fallback to clearing last_vpid=0 to trigger a full VPID
flush on the next nested VM-Enter (as KVM will detect L1 using a
different VPID for L2). If L2 ends up running on a different pCPU, KVM
will flush the TLB anyway through vmx_vcpu_load_vmcs().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1759a565a25c814ced9281a708749c71fa69d6fe",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "d03e721801ac54b9fdf05668aa0c069f07913b68",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "27bdeb5fd19046ffba9ff234e92fe553eb2efb30",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "9941850e8adf164d005dbd3774c4b79e91a3cb8e",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "6d00e67326d831e6e610933a3800712f4ffe6ec1",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nVM: Ensure INVVPID is emulated on the correct physical CPU\n\nWhen emulating INVVPID, KVM executes INVVPID on the physical CPU using\nvpid02 (instead of the L1 assigned VPID), after doing some validations\non the operands. However, it is possible that the physical CPU KVM\nexecutes INVVPID on is different from the CPU L2 is running on.\n\nFor example, in the following scenario:\n- L2 runs on CPU #1 and exits to L1 (vmx-\u003enested.vmcs02.cpu=1)\n- L1 migrates to CPU #2 and executes INVVPID\n- KVM executes INVVPID on CPU #2\n- L1 migrates back to CPU #1 and runs L2 (vmx-\u003enested.vmcs02.cpu=1)\n\nThe TLB entries on CPU #1 are never invalidated, because INVVPID was\nexecuted on CPU #2, and vmcs02 never ran on a different pCPU (i.e.\nvmx_vcpu_load_vmcs() will *not* request KVM_REQ_TLB_FLUSH).\n\nEnsure that INVVPID is being executed on the same pCPU that L2 last ran\non, and if not, fallback to clearing last_vpid=0 to trigger a full VPID\nflush on the next nested VM-Enter (as KVM will detect L1 using a\ndifferent VPID for L2). If L2 ends up running on a different pCPU, KVM\nwill flush the TLB anyway through vmx_vcpu_load_vmcs()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached when an L1 nested VMX guest executes INVVPID, causing a VM-exit handled by handle_invvpid() on the host KVM_RUN ioctl path after VMXON/VMLAUNCH; no network, adjacent-radio, or physical path reaches this nVMX emulator.\nAC:L - A kvm-group or nested-virt tenant attacker controls both sides: pin the vCPU, run L2, migrate the vCPU thread with sched_setaffinity, execute INVVPID in L1, then migrate back so L2 resumes on the original pCPU with stale VPID translations; nested=1 and vpid=1 are defaults.\nPR:L - Exploitation needs /dev/kvm (kvm-group) or a cloud tenant VM with nested virtualization, plus CPL=0 in L1 after VMXON to execute INVVPID; KVM create/run ioctls have no CAP_SYS_ADMIN gate, and init-namespace host root is not required.\nUI:N - The attacker issues INVVPID from their own nested hypervisor and migrates the vCPU themselves; no separate victim action such as mounting a filesystem or opening a crafted file is required.\nS:C - Missed INVVPID leaves L2\u0027s VPID-tagged combined GVA-to-HPA TLB entries live on the pCPU where L2 last ran, so L2 can access host physical pages after L1 revoked those mappings, crossing the nested-guest versus L1-hypervisor and potentially guest-to-host isolation boundary.\nC:H - Stale combined mappings let L2 read host physical memory that L1 unmapped or reassigned to L1 or a sibling L2, and with page reuse those frames may hold other-guest or host data, yielding cross-VM information disclosure rather than a bounded leak.\nI:H - The retained TLB entries remain writable, so L2 can write through stale translations into remapped or recycled pages including L1 hypervisor memory, giving an arbitrary-write primitive consistent with missed-TLB and nested isolation-bypass scoring.\nA:H - Writes through stale VPID mappings into reused L1, sibling-guest, or host pages corrupt hypervisor or kernel state and can oops or panic the nested hypervisor or host, fully denying availability to co-resident VMs."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:49:11.793Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1759a565a25c814ced9281a708749c71fa69d6fe"
},
{
"url": "https://git.kernel.org/stable/c/d03e721801ac54b9fdf05668aa0c069f07913b68"
},
{
"url": "https://git.kernel.org/stable/c/27bdeb5fd19046ffba9ff234e92fe553eb2efb30"
},
{
"url": "https://git.kernel.org/stable/c/9941850e8adf164d005dbd3774c4b79e91a3cb8e"
},
{
"url": "https://git.kernel.org/stable/c/6d00e67326d831e6e610933a3800712f4ffe6ec1"
}
],
"title": "KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89929",
"datePublished": "2026-09-16T10:32:20.855Z",
"dateReserved": "2026-09-11T19:38:34.775Z",
"dateUpdated": "2026-10-21T12:49:11.793Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89984 (GCVE-0-2026-89984)
Vulnerability from cvelistv5
Published
2026-09-16 10:33
Modified
2026-10-19 08:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf/x86/intel: Fix kernel address leakages in LBR stack
Before Arch LBR gained CPL filtering support, a user-only branch stack
could still contain kernel addresses. As a result, kernel branch records
may be exposed to user space even when PERF_SAMPLE_BRANCH_USER is
requested.
For example, on Intel Tiger Lake, the following command can still report
SYSRET/ERET entries with kernel-space from addresses:
$ ./perf record -e cycles:p -o - --branch-filter any,save_type,u -- \
./perf bench syscall basic --loop 1000 | \
./perf script -i - --fields brstack|tr ' ' '\n'| \
grep -E '0x[89a-f][0-9a-f]{15}'
Total time: 0.000 [sec]
0.219000 usecs/op
4,566,210 ops/sec
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.551 MB - ]
0xffffffff93c001c8/0x7f12a2b1d647/P/-/-/16959/SYSRET/-
0xffffffff93c001c8/0x7f12a2b1d5c2/P/-/-/17535/SYSRET/-
0xffffffff93c01928/0x7f12a2861000/P/-/-/6719/ERET/-
0xffffffff93c01928/0x7f12a297a000/P/-/-/8575/ERET/-
The problem is that intel_pmu_lbr_filter() does not fully validate the
privilege level of sampled entries. It filters some mismatches based on
the branch type and the to address, but it does not reject entries whose
from address violates the requested branch privilege filter.
Fix this by extending software filtering to validate both from and to
addresses against br_sel. Any LBR entry contains kernel address does not
match the requested user filter is dropped. This prevents kernel
addresses from appearing in user-only branch stacks.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 Version: 47125db27e47e9d44c878bf8925aa057824bb0d5 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/events/intel/lbr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f3705db4e6378cc1b91a38ce0fe2f879055e23ca",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "b589147f54adc62e4172e4acf079ad5fb7b3687f",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "be0628a101ac05b085aaa4f650d48bd3915e80fa",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "ca19a175e89b7de604fab736436cbab74030b47a",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "6ac26161db27f7fb9d9e89ae240dbe52795496cc",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "3c492c8eba02698ca893a9a13388d2adf6dfb839",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "68c4b780b266a435261a1e029bede5ee3c2735cc",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
},
{
"lessThan": "e2b0575900ff72aa82748af96e7bd564ade5157a",
"status": "affected",
"version": "47125db27e47e9d44c878bf8925aa057824bb0d5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/events/intel/lbr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/x86/intel: Fix kernel address leakages in LBR stack\n\nBefore Arch LBR gained CPL filtering support, a user-only branch stack\ncould still contain kernel addresses. As a result, kernel branch records\nmay be exposed to user space even when PERF_SAMPLE_BRANCH_USER is\nrequested.\n\nFor example, on Intel Tiger Lake, the following command can still report\nSYSRET/ERET entries with kernel-space from addresses:\n\n$ ./perf record -e cycles:p -o - --branch-filter any,save_type,u -- \\\n \t./perf bench syscall basic --loop 1000 | \\\n\t./perf script -i - --fields brstack|tr \u0027 \u0027 \u0027\\n\u0027| \\\n\tgrep -E \u00270x[89a-f][0-9a-f]{15}\u0027\n\n Total time: 0.000 [sec]\n\n 0.219000 usecs/op\n 4,566,210 ops/sec\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.551 MB - ]\n0xffffffff93c001c8/0x7f12a2b1d647/P/-/-/16959/SYSRET/-\n0xffffffff93c001c8/0x7f12a2b1d5c2/P/-/-/17535/SYSRET/-\n0xffffffff93c01928/0x7f12a2861000/P/-/-/6719/ERET/-\n0xffffffff93c01928/0x7f12a297a000/P/-/-/8575/ERET/-\n\nThe problem is that intel_pmu_lbr_filter() does not fully validate the\nprivilege level of sampled entries. It filters some mismatches based on\nthe branch type and the to address, but it does not reject entries whose\nfrom address violates the requested branch privilege filter.\n\nFix this by extending software filtering to validate both from and to\naddresses against br_sel. Any LBR entry contains kernel address does not\nmatch the requested user filter is dropped. This prevents kernel\naddresses from appearing in user-only branch stacks."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:55:58.750Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f3705db4e6378cc1b91a38ce0fe2f879055e23ca"
},
{
"url": "https://git.kernel.org/stable/c/b589147f54adc62e4172e4acf079ad5fb7b3687f"
},
{
"url": "https://git.kernel.org/stable/c/be0628a101ac05b085aaa4f650d48bd3915e80fa"
},
{
"url": "https://git.kernel.org/stable/c/ca19a175e89b7de604fab736436cbab74030b47a"
},
{
"url": "https://git.kernel.org/stable/c/6ac26161db27f7fb9d9e89ae240dbe52795496cc"
},
{
"url": "https://git.kernel.org/stable/c/3c492c8eba02698ca893a9a13388d2adf6dfb839"
},
{
"url": "https://git.kernel.org/stable/c/68c4b780b266a435261a1e029bede5ee3c2735cc"
},
{
"url": "https://git.kernel.org/stable/c/e2b0575900ff72aa82748af96e7bd564ade5157a"
}
],
"title": "perf/x86/intel: Fix kernel address leakages in LBR stack",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89984",
"datePublished": "2026-09-16T10:33:00.162Z",
"dateReserved": "2026-09-11T19:38:34.779Z",
"dateUpdated": "2026-10-19T08:55:58.750Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74588 (GCVE-0-2026-74588)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: keep chunk->transport in step with the list it is queued on
__sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport's
transmitted list without updating chunk->transport:
if (chunk->tsn_gap_acked) {
list_move_tail(&chunk->transmitted_list,
&transport->transmitted);
continue;
}
The chunk then sits on a live transport's list while chunk->transport still
names a different one. If that transport is removed - sctp_assoc_rm_peer()
from an ASCONF Delete-IP - sctp_transport_free() RCU-frees it and the chunk
is left with a dangling pointer. sctp_assoc_rm_peer() scrubs
peer->transmitted and asoc->outqueue.out_chunk_list, but the chunk is on
neither.
The pointer is not followed while tsn_gap_acked is set. A SACK that
reneges on the TSN clears the flag, and the next SACK reaches
tchunk->transport->flight_size -= sctp_data_size(tchunk);
inside the freed transport. KASAN reports a slab-use-after-free read in
sctp_check_transmitted(), freed from sctp_assoc_rm_peer(). Both the
removal and the SACKs come from the association peer.
Set chunk->transport at the move. The ordinary resend path needs nothing:
it reaches its list_move_tail() only after sctp_packet_append_chunk()
returned SCTP_XMIT_OK, and __sctp_packet_append_chunk() has rebound the
chunk by then.
Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74588",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:29.030905Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.010Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/outqueue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6575fb17230814b48b471727c8410c0aadff9274",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6b9e2ea2057113f3393990ba646d2d97c719a80d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "874a7c2b5e184f06134fdfde27e9ce9271bafe58",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1adf929121e13e0b19200bb9fef715b918d483fe",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e2e7c1de0e226ca1b7fea2de57a6c9bca408709b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2b3b5eec8b2c30ee237e3c31a6a38de9c39d804d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5ccf35ef0ed6059cdf8b1f4606a6584d5b67166b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9f2cf069a9a72a2d6b97ca8b4c70e714aac99749",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/outqueue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: keep chunk-\u003etransport in step with the list it is queued on\n\n__sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport\u0027s\ntransmitted list without updating chunk-\u003etransport:\n\n\tif (chunk-\u003etsn_gap_acked) {\n\t\tlist_move_tail(\u0026chunk-\u003etransmitted_list,\n\t\t\t \u0026transport-\u003etransmitted);\n\t\tcontinue;\n\t}\n\nThe chunk then sits on a live transport\u0027s list while chunk-\u003etransport still\nnames a different one. If that transport is removed - sctp_assoc_rm_peer()\nfrom an ASCONF Delete-IP - sctp_transport_free() RCU-frees it and the chunk\nis left with a dangling pointer. sctp_assoc_rm_peer() scrubs\npeer-\u003etransmitted and asoc-\u003eoutqueue.out_chunk_list, but the chunk is on\nneither.\n\nThe pointer is not followed while tsn_gap_acked is set. A SACK that\nreneges on the TSN clears the flag, and the next SACK reaches\n\n\ttchunk-\u003etransport-\u003eflight_size -= sctp_data_size(tchunk);\n\ninside the freed transport. KASAN reports a slab-use-after-free read in\nsctp_check_transmitted(), freed from sctp_assoc_rm_peer(). Both the\nremoval and the SACKs come from the association peer.\n\nSet chunk-\u003etransport at the move. The ordinary resend path needs nothing:\nit reaches its list_move_tail() only after sctp_packet_append_chunk()\nreturned SCTP_XMIT_OK, and __sctp_packet_append_chunk() has rebound the\nchunk by then.\n\nDiscovered by XBOW, triaged by Baul Lee \u003cbaul.lee@xbow.com\u003e"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when the kernel SCTP stack processes inbound SACK and ASCONF chunks from a remote association peer via sctp_rcv()/sctp_inq_push(), with no local syscall or ioctl required on the victim.\nAC:L - The remote peer controls the SCTP protocol sequence (gap SACKs, ADDIP multihoming, ASCONF Delete-IP, and SACK reneging) needed to strand a chunk and free its transport; no attacker-uncontrollable race or rare memory layout is required.\nPR:N - Exploitation requires only network access as an established SCTP association peer sending authenticated protocol traffic; no local Linux account, capability, or namespace privilege is needed on the victim host.\nUI:N - No victim user action is required beyond normal automated SCTP server/client operation; the attacker drives the entire trigger sequence with crafted SACK and ASCONF packets on the existing association.\nS:U - Impact is confined to kernel memory corruption and potential privilege escalation within the host kernel; it does not cross a VM, container, or IOMMU security boundary.\nC:H - KASAN reports a slab use-after-free read through dangling chunk-\u003etransport in sctp_check_transmitted(); UAF on sctp_transport objects can be groomed for arbitrary kernel memory disclosure.\nI:H - The UAF dereference performs flight_size arithmetic on a freed sctp_transport slab object, enabling heap grooming and arbitrary kernel write or control-flow hijack primitives typical of SCTP transport UAFs.\nA:H - Accessing freed transport memory during SACK processing can cause kernel oops/panic and repeatable remote denial of service against any SCTP endpoint handling the malicious peer traffic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:15.097Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6575fb17230814b48b471727c8410c0aadff9274"
},
{
"url": "https://git.kernel.org/stable/c/6b9e2ea2057113f3393990ba646d2d97c719a80d"
},
{
"url": "https://git.kernel.org/stable/c/874a7c2b5e184f06134fdfde27e9ce9271bafe58"
},
{
"url": "https://git.kernel.org/stable/c/1adf929121e13e0b19200bb9fef715b918d483fe"
},
{
"url": "https://git.kernel.org/stable/c/e2e7c1de0e226ca1b7fea2de57a6c9bca408709b"
},
{
"url": "https://git.kernel.org/stable/c/2b3b5eec8b2c30ee237e3c31a6a38de9c39d804d"
},
{
"url": "https://git.kernel.org/stable/c/5ccf35ef0ed6059cdf8b1f4606a6584d5b67166b"
},
{
"url": "https://git.kernel.org/stable/c/9f2cf069a9a72a2d6b97ca8b4c70e714aac99749"
}
],
"title": "sctp: keep chunk-\u003etransport in step with the list it is queued on",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74588",
"datePublished": "2026-08-22T15:31:40.466Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:59.010Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98091 (GCVE-0-2026-98091)
Vulnerability from cvelistv5
Published
2026-09-25 10:24
Modified
2026-10-19 09:13
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: detach failed sprout device from transaction update list
When creating the first metadata chunk for a sprout filesystem,
create_chunk() adds the new device to the transaction dev_update_list
through device->post_commit_list.
If the subsequent system chunk creation fails, btrfs_init_new_device()
aborts the transaction and releases the device while post_commit_list is
still linked. This triggers a warning in btrfs_free_device() and leaves
the transaction list referencing freed memory.
Detach the device while holding chunk_mutex before releasing it.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e Version: bbbf7243d62d8be73b7ef60721c127b36b2d523e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/volumes.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2a57fb1d5ce8f316b81bbb60e6df245ebc816ffc",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "86eff3052054e8f3b059b2d5845b6dcca021f20c",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "63bfa52eb3289517aa82cb90e1189385873aae21",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "7fe9dfbca43464baa8f050447a4837587b18adec",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "e9e7e37afa85db770e6084360b21a21a8b3a583f",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "8b001df2b37ca022f710f3254fbb0bcd6d9e1bed",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "0ea6814bc0ff7cff443241bd34db9f0f828f3190",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
},
{
"lessThan": "c93b3c43df561cd9f592cee20ae058b563f9e5b6",
"status": "affected",
"version": "bbbf7243d62d8be73b7ef60721c127b36b2d523e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/volumes.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: detach failed sprout device from transaction update list\n\nWhen creating the first metadata chunk for a sprout filesystem,\ncreate_chunk() adds the new device to the transaction dev_update_list\nthrough device-\u003epost_commit_list.\n\nIf the subsequent system chunk creation fails, btrfs_init_new_device()\naborts the transaction and releases the device while post_commit_list is\nstill linked. This triggers a warning in btrfs_free_device() and leaves\nthe transaction list referencing freed memory.\n\nDetach the device while holding chunk_mutex before releasing it."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:13:43.350Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2a57fb1d5ce8f316b81bbb60e6df245ebc816ffc"
},
{
"url": "https://git.kernel.org/stable/c/86eff3052054e8f3b059b2d5845b6dcca021f20c"
},
{
"url": "https://git.kernel.org/stable/c/63bfa52eb3289517aa82cb90e1189385873aae21"
},
{
"url": "https://git.kernel.org/stable/c/7fe9dfbca43464baa8f050447a4837587b18adec"
},
{
"url": "https://git.kernel.org/stable/c/e9e7e37afa85db770e6084360b21a21a8b3a583f"
},
{
"url": "https://git.kernel.org/stable/c/8b001df2b37ca022f710f3254fbb0bcd6d9e1bed"
},
{
"url": "https://git.kernel.org/stable/c/0ea6814bc0ff7cff443241bd34db9f0f828f3190"
},
{
"url": "https://git.kernel.org/stable/c/c93b3c43df561cd9f592cee20ae058b563f9e5b6"
}
],
"title": "btrfs: detach failed sprout device from transaction update list",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98091",
"datePublished": "2026-09-25T10:24:24.082Z",
"dateReserved": "2026-09-25T10:19:56.075Z",
"dateUpdated": "2026-10-19T09:13:43.350Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72425 (GCVE-0-2026-72425)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ice: fix FDIR CTRL VSI resource leak in ice_reset_all_vfs()
Resetting all VFs causes resource leak on VFs with FDIR filters
enabled as CTRL VSIs are only invalidated and not freed. Fix by using
ice_vf_ctrl_vsi_release() instead of ice_vf_ctrl_invalidate_vsi() which
aligns behavior with the ice_reset_vf() function.
Reproduction:
echo 1 > /sys/class/net/$pf/device/sriov_numvfs
ethtool -N $vf flow-type ether proto 0x9000 action 0
echo 1 > /sys/class/net/$pf/device/reset
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 Version: da62c5ff9dcdac67204d6647f3cd43ad931a59f4 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72425",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:44.051789Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:23.412Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ice/ice_vf_lib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b409a9dc37db8bd798122fc5bcdcfaccaf80db1e",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
},
{
"lessThan": "335c2dd21ad9d520102906f96edb99fd5e89ac32",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
},
{
"lessThan": "87a042e45bf4870dc75ea05b4fc0286abecb2a4d",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
},
{
"lessThan": "dd6d8e4412f805937f61f00bbfdfe831978be235",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
},
{
"lessThan": "b1fc5bafbc5f84df457b6f987ac993e0802f8d93",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
},
{
"lessThan": "ebbe8868cf473f698e0fbaf436d2618b2bcda806",
"status": "affected",
"version": "da62c5ff9dcdac67204d6647f3cd43ad931a59f4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/ice/ice_vf_lib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nice: fix FDIR CTRL VSI resource leak in ice_reset_all_vfs()\n\nResetting all VFs causes resource leak on VFs with FDIR filters\nenabled as CTRL VSIs are only invalidated and not freed. Fix by using\nice_vf_ctrl_vsi_release() instead of ice_vf_ctrl_invalidate_vsi() which\naligns behavior with the ice_reset_vf() function.\n\nReproduction:\n echo 1 \u003e /sys/class/net/$pf/device/sriov_numvfs\n ethtool -N $vf flow-type ether proto 0x9000 action 0\n echo 1 \u003e /sys/class/net/$pf/device/reset"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached via local host interfaces only: VF virtchnl mailbox messages (VIRTCHNL_OP_ADD_FDIR_FILTER) to create per-VF FDIR ctrl VSIs, and PF-wide reset paths (PCI sysfs reset, ethtool-driven PFR/CORER/GLOBR) that call ice_reset_all_vfs(); no network packet receive path is involved.\nAC:L - Once a VF has created an FDIR rule (which allocates the per-VF ctrl VSI), each PF-wide reset deterministically leaks that ctrl VSI because ice_reset_all_vfs() only invalidated ctrl_vsi_idx instead of calling ice_vf_ctrl_vsi_release(); the commit reproduces this reliably and the attacker controls the FDIR setup side of the race.\nPR:N - No host root or CAP_SYS_ADMIN is required on the vulnerable host: a tenant with an assigned SR-IOV VF can negotiate VIRTCHNL_VF_OFFLOAD_FDIR_PF and send VIRTCHNL_OP_ADD_FDIR_FILTER over the VF mailbox to create the ctrl VSI; PF-wide resets occur during normal firmware/PCI/driver recovery without further host credentials.\nUI:N - Exploitation does not require any victim user action such as opening files or clicking links; a malicious VM tenant programs FDIR filters via the standard iAVF virtchnl interface and the leak triggers automatically on subsequent PF-wide reset events.\nS:C - The vulnerable ice driver runs in the host kernel but is triggered from an SR-IOV VF guest security domain; leaked ctrl VSIs consume finite pf-\u003evsi slots and hardware VSI resources on the host, degrading or denying NIC functionality for the hypervisor and other VMs on the same PF.\nC:N - This is a kernel resource leak (orphaned ICE_VSI_CTRL structures and associated queue/MSI-X/FDIR hardware resources) without out-of-bounds read, use-after-free, or other memory disclosure primitive; no confidential data is exposed.\nI:N - The flaw only fails to call ice_vsi_release()/ice_vsi_delete_from_hw() for per-VF ctrl VSIs during ice_reset_all_vfs(); it does not corrupt memory, modify data, or provide write or code-execution primitives.\nA:H - Each leaked ctrl VSI permanently consumes a limited VSI slot (pf-\u003enum_alloc_vsi) and hardware resources; repeated PF-wide resets with FDIR-enabled VFs can exhaust the VSI pool causing ice_vsi_alloc() failure and denial of network service for the host and all co-resident VFs on the NIC."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:05.008Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b409a9dc37db8bd798122fc5bcdcfaccaf80db1e"
},
{
"url": "https://git.kernel.org/stable/c/335c2dd21ad9d520102906f96edb99fd5e89ac32"
},
{
"url": "https://git.kernel.org/stable/c/87a042e45bf4870dc75ea05b4fc0286abecb2a4d"
},
{
"url": "https://git.kernel.org/stable/c/dd6d8e4412f805937f61f00bbfdfe831978be235"
},
{
"url": "https://git.kernel.org/stable/c/b1fc5bafbc5f84df457b6f987ac993e0802f8d93"
},
{
"url": "https://git.kernel.org/stable/c/ebbe8868cf473f698e0fbaf436d2618b2bcda806"
}
],
"title": "ice: fix FDIR CTRL VSI resource leak in ice_reset_all_vfs()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72425",
"datePublished": "2026-08-15T05:56:42.959Z",
"dateReserved": "2026-08-09T03:40:39.928Z",
"dateUpdated": "2026-10-16T18:55:23.412Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90182 (GCVE-0-2026-90182)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
blk-iocost: clear delay state when freeing policy data
iocg_kick_delay() turns sufficiently large debt into an explicit
block-cgroup delay with blkcg_set_delay(), setting blkg->use_delay to
-1 and incrementing blkcg->congestion_count. Clearing it again depends
on iocg_kick_delay() running from the period timer, the waitq timer or
the issue path.
ioc_pd_free() removes the iocg from active_iocgs and cancels its waitq
timer, and no further bios can arrive, so once it has run nothing is
left which can reduce the debt and clear the delay. The blkcg stays
marked congested for the rest of its life.
blk_cgroup_congested() then returns true for every task in that cgroup
and its descendants: page_cache_sync_ra() cuts readahead to a single
page, page_cache_async_ra() skips it altogether, and
__folio_throttle_swaprate() takes swap_avail_lock and schedules a
throttle on anonymous folio allocation.
Clear it explicitly, after the list removal and the synchronous
hrtimer_cancel() so that neither timer processing nor an I/O path can
re-arm it. The free callback can also see policy data which was never
attached to a blkg, hence the pd->blkg check.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"block/blk-iocost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6b59f976db5def818829fc1eb4efc0a5c8c2f0cf",
"status": "affected",
"version": "7caa47151ab2e644dd221f741ec7578d9532c9a3",
"versionType": "git"
},
{
"lessThan": "8b4d0b1b3079bbe9a5366e2c8020eb22926733b6",
"status": "affected",
"version": "7caa47151ab2e644dd221f741ec7578d9532c9a3",
"versionType": "git"
},
{
"lessThan": "b399a88eb8b16c5a1a3645fd49ff507fb82b363c",
"status": "affected",
"version": "7caa47151ab2e644dd221f741ec7578d9532c9a3",
"versionType": "git"
},
{
"lessThan": "b9c16db833e3ff15d923282f94dddf0e10fab8c0",
"status": "affected",
"version": "7caa47151ab2e644dd221f741ec7578d9532c9a3",
"versionType": "git"
},
{
"lessThan": "97cb95d2148835ae86ff916b145aef332d40439d",
"status": "affected",
"version": "7caa47151ab2e644dd221f741ec7578d9532c9a3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"block/blk-iocost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-iocost: clear delay state when freeing policy data\n\niocg_kick_delay() turns sufficiently large debt into an explicit\nblock-cgroup delay with blkcg_set_delay(), setting blkg-\u003euse_delay to\n-1 and incrementing blkcg-\u003econgestion_count. Clearing it again depends\non iocg_kick_delay() running from the period timer, the waitq timer or\nthe issue path.\n\nioc_pd_free() removes the iocg from active_iocgs and cancels its waitq\ntimer, and no further bios can arrive, so once it has run nothing is\nleft which can reduce the debt and clear the delay. The blkcg stays\nmarked congested for the rest of its life.\n\nblk_cgroup_congested() then returns true for every task in that cgroup\nand its descendants: page_cache_sync_ra() cuts readahead to a single\npage, page_cache_async_ra() skips it altogether, and\n__folio_throttle_swaprate() takes swap_avail_lock and schedules a\nthrottle on anonymous folio allocation.\n\nClear it explicitly, after the list removal and the synchronous\nhrtimer_cancel() so that neither timer processing nor an I/O path can\nre-arm it. The free callback can also see policy data which was never\nattached to a blkg, hence the pd-\u003eblkg check."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:21.348Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6b59f976db5def818829fc1eb4efc0a5c8c2f0cf"
},
{
"url": "https://git.kernel.org/stable/c/8b4d0b1b3079bbe9a5366e2c8020eb22926733b6"
},
{
"url": "https://git.kernel.org/stable/c/b399a88eb8b16c5a1a3645fd49ff507fb82b363c"
},
{
"url": "https://git.kernel.org/stable/c/b9c16db833e3ff15d923282f94dddf0e10fab8c0"
},
{
"url": "https://git.kernel.org/stable/c/97cb95d2148835ae86ff916b145aef332d40439d"
}
],
"title": "blk-iocost: clear delay state when freeing policy data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90182",
"datePublished": "2026-09-17T16:07:06.388Z",
"dateReserved": "2026-09-11T19:38:34.791Z",
"dateUpdated": "2026-10-21T12:50:21.348Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74590 (GCVE-0-2026-74590)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fsverity: Fix bpf_get_fsverity_digest() dynptr assumptions
The BPF verifier and the dynptr abstraction ensure that the memory space
referenced by a dynptr remains valid. They do not, however, provide any
guarantee that the contents of the memory are stable. kfuncs are
expected to remain memory-safe even if concurrent modifications occur.
bpf_get_fsverity_digest() didn't follow that: it could crash if
arg->digest_size was concurrently modified.
Fix that by using the known-good value hash_alg->digest_size instead.
Also widen 'dynptr_sz' and 'out_digest_sz' to u64 to match the return
type of __bpf_dynptr_size(). It doesn't appear that it can actually be
more than INT_MAX currently (since __bpf_dynptr_data_rw() excludes
file-based pointers), but the correct type might as well be used.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74590",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:35.901397Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.372Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/verity/measure.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1344b632cb5043e32939a84568125719111c5af3",
"status": "affected",
"version": "67814c00de3161181cddd06c77aeaf86ac4cc584",
"versionType": "git"
},
{
"lessThan": "2a5cfcad1d56e26d645b7887b0ed24c371851525",
"status": "affected",
"version": "67814c00de3161181cddd06c77aeaf86ac4cc584",
"versionType": "git"
},
{
"lessThan": "5bd63cad9df4328a184c409fbdad4f17944bcdb8",
"status": "affected",
"version": "67814c00de3161181cddd06c77aeaf86ac4cc584",
"versionType": "git"
},
{
"lessThan": "3e8ec7c0387273329374f5c7bd61f5f38af71fe1",
"status": "affected",
"version": "67814c00de3161181cddd06c77aeaf86ac4cc584",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/verity/measure.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfsverity: Fix bpf_get_fsverity_digest() dynptr assumptions\n\nThe BPF verifier and the dynptr abstraction ensure that the memory space\nreferenced by a dynptr remains valid. They do not, however, provide any\nguarantee that the contents of the memory are stable. kfuncs are\nexpected to remain memory-safe even if concurrent modifications occur.\n\nbpf_get_fsverity_digest() didn\u0027t follow that: it could crash if\narg-\u003edigest_size was concurrently modified.\n\nFix that by using the known-good value hash_alg-\u003edigest_size instead.\n\nAlso widen \u0027dynptr_sz\u0027 and \u0027out_digest_sz\u0027 to u64 to match the return\ntype of __bpf_dynptr_size(). It doesn\u0027t appear that it can actually be\nmore than INT_MAX currently (since __bpf_dynptr_data_rw() excludes\nfile-based pointers), but the correct type might as well be used."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is only reachable via bpf_get_fsverity_digest(), a BPF kfunc callable from BPF LSM programs loaded through the bpf(2) syscall and triggered by local LSM hooks such as file_open, not by any network-facing kernel service.\nAC:L - Exploitation requires racing concurrent writes to the dynptr-backed fsverity_digest buffer (e.g., bpf_map_update_elem from a sibling thread) against the kfunc\u0027s memset; the attacker controls both sides of this race and can repeat it until the bad offset is hit.\nPR:L - Loading and attaching the required BPF LSM program needs CAP_BPF and CAP_PERFMON, which an unprivileged user can obtain as root inside a user namespace (unshare -Ur) without init-namespace privileges, matching kernel CNA guidance for BPF reachability.\nUI:N - No victim interaction is required; the attacker can load the LSM program, prepare a shared dynptr buffer, enable fsverity on a file they own, and trigger file_open themselves to invoke the vulnerable kfunc.\nS:U - Successful exploitation corrupts kernel heap memory and can yield local privilege escalation within the same kernel/host security boundary; it does not by itself cross a guest-to-host, sandbox, or IOMMU isolation boundary.\nC:H - Concurrent tampering with digest_size lets memset() use an attacker-chosen offset beyond the dynptr allocation, causing out-of-bounds kernel heap writes that can corrupt adjacent objects and be leveraged for arbitrary kernel memory disclosure.\nI:H - The faulty memset() can write large zeroed regions far outside the dynptr buffer, giving a controllable out-of-bounds heap write primitive that is exploitable for control-flow hijacking and arbitrary kernel code execution.\nA:H - An out-of-bounds heap write from kernel context can immediately oops/panic the kernel or destabilize critical structures, and the underlying memory corruption reliably threatens system availability even before full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:17.568Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1344b632cb5043e32939a84568125719111c5af3"
},
{
"url": "https://git.kernel.org/stable/c/2a5cfcad1d56e26d645b7887b0ed24c371851525"
},
{
"url": "https://git.kernel.org/stable/c/5bd63cad9df4328a184c409fbdad4f17944bcdb8"
},
{
"url": "https://git.kernel.org/stable/c/3e8ec7c0387273329374f5c7bd61f5f38af71fe1"
}
],
"title": "fsverity: Fix bpf_get_fsverity_digest() dynptr assumptions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74590",
"datePublished": "2026-08-22T15:31:41.929Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:59.372Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74346 (GCVE-0-2026-74346)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/irdma: Fix OOB read during CQ MR registration
Sashiko pointed out an unrelated bug during a previous patch:
https://sashiko.dev/#/patchset/20260512183852.614045-1-jmoroni%40google.com
This change fixes the bug by eliminating the cqmr->split field which
was not being set properly and instead just checks the CQ resize
feature flag directly.
The cqmr->split field essentially tracks whether IRDMA_FEATURE_CQ_RESIZE
is set, but it was not being set until CQ creation time, which is _after_
CQ memory registration (the only other place where it is referenced).
As a result, it would always be false during MR registration and would
therefore cause irdma_handle_q_mem to populate cqmr->shadow even for GEN_2
HW and beyond:
cqmr->shadow = (dma_addr_t)arr[req->cq_pages];
The issue is that for GEN_2 and beyond, req->cq_pages may be exactly equal
to iwmr->page_cnt and therefore equal to the size of arr, which would cause
an OOB read by one.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 Version: b48c24c2d710cf34810c555dcef883a3d35a9c08 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/verbs.c",
"drivers/infiniband/hw/irdma/verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a80b3b13786e9ab1c52b31a1f16c7d6708fa9220",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "3159c6fac43dc24b34d31971884d98a7a1bf4c4b",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "ad360a31092a870633ec255b96f50181628b4de0",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "d566002de555b18cc395012c5c1cb8682fc6d2a9",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "54cab78df0375196aaec4e3109191653d21751df",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "d5aa82da8f65562da996d184686db9d0ea718b91",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "4385ddd654d90245eeb83b3cb539670ab5c85ba4",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/verbs.c",
"drivers/infiniband/hw/irdma/verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/irdma: Fix OOB read during CQ MR registration\n\nSashiko pointed out an unrelated bug during a previous patch:\nhttps://sashiko.dev/#/patchset/20260512183852.614045-1-jmoroni%40google.com\n\nThis change fixes the bug by eliminating the cqmr-\u003esplit field which\nwas not being set properly and instead just checks the CQ resize\nfeature flag directly.\n\nThe cqmr-\u003esplit field essentially tracks whether IRDMA_FEATURE_CQ_RESIZE\nis set, but it was not being set until CQ creation time, which is _after_\nCQ memory registration (the only other place where it is referenced).\n\nAs a result, it would always be false during MR registration and would\ntherefore cause irdma_handle_q_mem to populate cqmr-\u003eshadow even for GEN_2\nHW and beyond:\n\n cqmr-\u003eshadow = (dma_addr_t)arr[req-\u003ecq_pages];\n\nThe issue is that for GEN_2 and beyond, req-\u003ecq_pages may be exactly equal\nto iwmr-\u003epage_cnt and therefore equal to the size of arr, which would cause\nan OOB read by one."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:17:38.929Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a80b3b13786e9ab1c52b31a1f16c7d6708fa9220"
},
{
"url": "https://git.kernel.org/stable/c/3159c6fac43dc24b34d31971884d98a7a1bf4c4b"
},
{
"url": "https://git.kernel.org/stable/c/ad360a31092a870633ec255b96f50181628b4de0"
},
{
"url": "https://git.kernel.org/stable/c/d566002de555b18cc395012c5c1cb8682fc6d2a9"
},
{
"url": "https://git.kernel.org/stable/c/54cab78df0375196aaec4e3109191653d21751df"
},
{
"url": "https://git.kernel.org/stable/c/d5aa82da8f65562da996d184686db9d0ea718b91"
},
{
"url": "https://git.kernel.org/stable/c/4385ddd654d90245eeb83b3cb539670ab5c85ba4"
}
],
"title": "RDMA/irdma: Fix OOB read during CQ MR registration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74346",
"datePublished": "2026-08-15T05:58:34.606Z",
"dateReserved": "2026-08-15T05:44:03.886Z",
"dateUpdated": "2026-08-17T05:17:38.929Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64103 (GCVE-0-2026-64103)
Vulnerability from cvelistv5
Published
2026-07-19 15:40
Modified
2026-07-19 15:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: isci: Fix use-after-free in device removal path
The ISCI completion tasklet is initialized in isci_host_alloc()
(drivers/scsi/isci/init.c:496) and scheduled from both MSI-X and legacy
interrupt handlers (drivers/scsi/isci/host.c:223,613).
isci_host_deinit() stops the controller and waits for stop completion,
but it never kills completion_tasklet before teardown continues. A
top-of-function tasklet_kill() is not sufficient here: interrupts are
only disabled when isci_host_stop_complete() runs, so until
wait_for_stop() returns the IRQ handlers can still requeue the
tasklet. The tasklet callback also re-enables interrupts after draining
completions, so killing the tasklet before the source is quiesced leaves
the same race open.
Once wait_for_stop() returns, no further IRQ-driven scheduling can
occur. Kill completion_tasklet there so teardown cannot race a queued
tasklet running on a dead ihost. On remove or unload, the stale callback
can otherwise dereference ihost and touch ihost->smu_registers after the
host lifetime ends.
A UML + KASAN analogue reproduced the failure class both with no
tasklet_kill() and with tasklet_kill() placed before source quiesce, and
stayed clean once the kill happened after quiescing the scheduling
source.
This mirrors commit f6ab594672d4 ("scsi: aic94xx: fix use-after-free in
device removal path"), but ISCI needs the kill after wait_for_stop().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f Version: 6f231dda68080759f1aed3769896e94c73099f0f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/isci/host.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1412995e10c74644b47f242aea6e4f3d4180e806",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "a83d3e4daba40d49324cec1c51ed261e1ea48cf1",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "ab2266601a875982f2d2033f41e070a6d5e615e2",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "309c6058622d080fe8c2fab87c30da82d834d989",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "cb9e72c50e6c81a5903f27e0b397ce8525d7539b",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "b9ff8631006233ba246828ac70409d2cb2da38d3",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
},
{
"lessThan": "b52a8d52c3125ec9a93106ed816582368de34426",
"status": "affected",
"version": "6f231dda68080759f1aed3769896e94c73099f0f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/isci/host.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.0"
},
{
"lessThan": "3.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.142",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.92",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.142",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: isci: Fix use-after-free in device removal path\n\nThe ISCI completion tasklet is initialized in isci_host_alloc()\n(drivers/scsi/isci/init.c:496) and scheduled from both MSI-X and legacy\ninterrupt handlers (drivers/scsi/isci/host.c:223,613).\n\nisci_host_deinit() stops the controller and waits for stop completion,\nbut it never kills completion_tasklet before teardown continues. A\ntop-of-function tasklet_kill() is not sufficient here: interrupts are\nonly disabled when isci_host_stop_complete() runs, so until\nwait_for_stop() returns the IRQ handlers can still requeue the\ntasklet. The tasklet callback also re-enables interrupts after draining\ncompletions, so killing the tasklet before the source is quiesced leaves\nthe same race open.\n\nOnce wait_for_stop() returns, no further IRQ-driven scheduling can\noccur. Kill completion_tasklet there so teardown cannot race a queued\ntasklet running on a dead ihost. On remove or unload, the stale callback\ncan otherwise dereference ihost and touch ihost-\u003esmu_registers after the\nhost lifetime ends.\n\nA UML + KASAN analogue reproduced the failure class both with no\ntasklet_kill() and with tasklet_kill() placed before source quiesce, and\nstayed clean once the kill happened after quiescing the scheduling\nsource.\n\nThis mirrors commit f6ab594672d4 (\"scsi: aic94xx: fix use-after-free in\ndevice removal path\"), but ISCI needs the kill after wait_for_stop()."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:40:07.372Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1412995e10c74644b47f242aea6e4f3d4180e806"
},
{
"url": "https://git.kernel.org/stable/c/a83d3e4daba40d49324cec1c51ed261e1ea48cf1"
},
{
"url": "https://git.kernel.org/stable/c/ab2266601a875982f2d2033f41e070a6d5e615e2"
},
{
"url": "https://git.kernel.org/stable/c/309c6058622d080fe8c2fab87c30da82d834d989"
},
{
"url": "https://git.kernel.org/stable/c/cb9e72c50e6c81a5903f27e0b397ce8525d7539b"
},
{
"url": "https://git.kernel.org/stable/c/b9ff8631006233ba246828ac70409d2cb2da38d3"
},
{
"url": "https://git.kernel.org/stable/c/6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c"
},
{
"url": "https://git.kernel.org/stable/c/b52a8d52c3125ec9a93106ed816582368de34426"
}
],
"title": "scsi: isci: Fix use-after-free in device removal path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64103",
"datePublished": "2026-07-19T15:40:07.372Z",
"dateReserved": "2026-07-19T07:54:57.034Z",
"dateUpdated": "2026-07-19T15:40:07.372Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74553 (GCVE-0-2026-74553)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (nct6775-core) Fix number of temperature registers for NCT6116
Unlike NCT6106, NCT6116 only has three temperature registers, and with
it only three temperature source and temperature source configuration
registers. The register addresses match those of NCT6106 and can be
re-used.
The code used a separate array to list the temperature source registers
for NCT6116, but used the size of the NCT6106 register array to set
the number of registers. The NCT6106 register array provides six addresses,
while the temperature source register array for NCT6116 only provides three
addresses. This causes a KASAN report.
BUG: KASAN: global-out-of-bounds in nct6775_probe+0x936/0x46f0 [nct6775]
Read of size 2 at addr ffffffffc19561a6 by task modprobe/954
...
Call Trace:
dump_stack+0x7d/0xa7
print_address_description.constprop.0+0x1c/0x220
? __kasan_kmalloc.constprop.0+0xc9/0xd0
? __kmalloc_node_track_caller+0x194/0x5b0
? nct6775_probe+0x936/0x46f0 [nct6775]
? nct6775_probe+0x936/0x46f0 [nct6775]
...
Fix the problem by hard-coding the number of temperature and temperature
configuration registers to three for NCT6116. Drop the unnecessary
NCT6116_REG_TEMP_SOURCE array and re-use NCT6106_REG_TEMP_SOURCE.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 29c7cb485b321c024dedc168bcbb04451176b163 Version: 29c7cb485b321c024dedc168bcbb04451176b163 Version: 29c7cb485b321c024dedc168bcbb04451176b163 Version: 29c7cb485b321c024dedc168bcbb04451176b163 Version: 29c7cb485b321c024dedc168bcbb04451176b163 Version: 29c7cb485b321c024dedc168bcbb04451176b163 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nct6775-core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "739d7fc6b6f662c8286912157f0c4912388aa292",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
},
{
"lessThan": "9a87dfaa05c3c9d3a4cdb7eafc1ab4abc84f6eef",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
},
{
"lessThan": "16c45bb3d3434cfb9ea264fa52090d0823240465",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
},
{
"lessThan": "a42d727dae5701deac8bb2a75effadae7d681153",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
},
{
"lessThan": "a7f47f5246cd6c3199e5fb2d4109cc53e766e3f0",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
},
{
"lessThan": "b0e8adb2ccb43009796897ced09f91636685c9d3",
"status": "affected",
"version": "29c7cb485b321c024dedc168bcbb04451176b163",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nct6775-core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (nct6775-core) Fix number of temperature registers for NCT6116\n\nUnlike NCT6106, NCT6116 only has three temperature registers, and with\nit only three temperature source and temperature source configuration\nregisters. The register addresses match those of NCT6106 and can be\nre-used.\n\nThe code used a separate array to list the temperature source registers\nfor NCT6116, but used the size of the NCT6106 register array to set\nthe number of registers. The NCT6106 register array provides six addresses,\nwhile the temperature source register array for NCT6116 only provides three\naddresses. This causes a KASAN report.\n\nBUG: KASAN: global-out-of-bounds in nct6775_probe+0x936/0x46f0 [nct6775]\nRead of size 2 at addr ffffffffc19561a6 by task modprobe/954\n...\nCall Trace:\n dump_stack+0x7d/0xa7\n print_address_description.constprop.0+0x1c/0x220\n ? __kasan_kmalloc.constprop.0+0xc9/0xd0\n ? __kmalloc_node_track_caller+0x194/0x5b0\n ? nct6775_probe+0x936/0x46f0 [nct6775]\n ? nct6775_probe+0x936/0x46f0 [nct6775]\n...\n\nFix the problem by hard-coding the number of temperature and temperature\nconfiguration registers to three for NCT6116. Drop the unnecessary\nNCT6116_REG_TEMP_SOURCE array and re-use NCT6106_REG_TEMP_SOURCE."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:52.272Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/739d7fc6b6f662c8286912157f0c4912388aa292"
},
{
"url": "https://git.kernel.org/stable/c/9a87dfaa05c3c9d3a4cdb7eafc1ab4abc84f6eef"
},
{
"url": "https://git.kernel.org/stable/c/16c45bb3d3434cfb9ea264fa52090d0823240465"
},
{
"url": "https://git.kernel.org/stable/c/a42d727dae5701deac8bb2a75effadae7d681153"
},
{
"url": "https://git.kernel.org/stable/c/a7f47f5246cd6c3199e5fb2d4109cc53e766e3f0"
},
{
"url": "https://git.kernel.org/stable/c/b0e8adb2ccb43009796897ced09f91636685c9d3"
}
],
"title": "hwmon: (nct6775-core) Fix number of temperature registers for NCT6116",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74553",
"datePublished": "2026-08-15T12:27:59.472Z",
"dateReserved": "2026-08-15T05:44:03.916Z",
"dateUpdated": "2026-08-19T16:38:52.272Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80629 (GCVE-0-2026-80629)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
octeontx2-af: npc: Fix size of entry2cntr_map
KASAN prints below splat. This is caused by allocating counter for
reserved mcam entry for cpt 2nd pass entry. But mcam->entry2cntr_map
is not allocated for reserved entries.
BUG: KASAN: slab-out-of-bounds in npc_map_mcam_entry_and_cntr+0xb0/0x1a0
Write of size 2 at addr ffff0001033e7ffe by task kworker/0:1/14
CPU: 0 PID: 14 Comm: kworker/0:1 Not tainted 6.1.67 #1
Hardware name: Marvell CN106XX board (DT)
Workqueue: events work_for_cpu_fn
Call trace:
dump_backtrace.part.0+0xe4/0xf0
show_stack+0x18/0x30
dump_stack_lvl+0x88/0xb4
print_report+0x154/0x458
kasan_report+0xb8/0x194
__asan_store2+0x7c/0xa0
npc_map_mcam_entry_and_cntr+0xb0/0x1a0
rvu_mbox_handler_npc_mcam_write_entry+0x268/0x280
npc_install_flow+0x840/0xfe0
rvu_npc_install_cpt_pass2_entry+0x138/0x190
rvu_nix_init+0x148c/0x2880
rvu_probe+0x1800/0x30b0
local_pci_probe+0x78/0xe0
work_for_cpu_fn+0x30/0x50
process_one_work+0x4cc/0x97c
worker_thread+0x360/0x630
kthread+0x1a0/0x1b0
ret_from_fork+0x10/0x20
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "30e5ee98e86ad47c76695458987097e849d0611a",
"status": "affected",
"version": "55307fcb925846d760ed80f4a8359dd4331c52bd",
"versionType": "git"
},
{
"lessThan": "de8e3a4004c5df9461974352e9d7ff0f8313c508",
"status": "affected",
"version": "55307fcb925846d760ed80f4a8359dd4331c52bd",
"versionType": "git"
},
{
"lessThan": "1d072cc3ba4338d6b2acb85d50a3af5cf2b12a3e",
"status": "affected",
"version": "55307fcb925846d760ed80f4a8359dd4331c52bd",
"versionType": "git"
},
{
"lessThan": "2477c523c6e69733d51101ae9bd2dfc0a054b13d",
"status": "affected",
"version": "55307fcb925846d760ed80f4a8359dd4331c52bd",
"versionType": "git"
},
{
"lessThan": "f9cd6fabe0e7c7f6fc30c6c192c7ed72aba37232",
"status": "affected",
"version": "55307fcb925846d760ed80f4a8359dd4331c52bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-af: npc: Fix size of entry2cntr_map\n\nKASAN prints below splat. This is caused by allocating counter for\nreserved mcam entry for cpt 2nd pass entry. But mcam-\u003eentry2cntr_map\nis not allocated for reserved entries.\n\nBUG: KASAN: slab-out-of-bounds in npc_map_mcam_entry_and_cntr+0xb0/0x1a0\nWrite of size 2 at addr ffff0001033e7ffe by task kworker/0:1/14\n\nCPU: 0 PID: 14 Comm: kworker/0:1 Not tainted 6.1.67 #1\nHardware name: Marvell CN106XX board (DT)\nWorkqueue: events work_for_cpu_fn\nCall trace:\n dump_backtrace.part.0+0xe4/0xf0\n show_stack+0x18/0x30\n dump_stack_lvl+0x88/0xb4\n print_report+0x154/0x458\n kasan_report+0xb8/0x194\n __asan_store2+0x7c/0xa0\n npc_map_mcam_entry_and_cntr+0xb0/0x1a0\n rvu_mbox_handler_npc_mcam_write_entry+0x268/0x280\n npc_install_flow+0x840/0xfe0\n rvu_npc_install_cpt_pass2_entry+0x138/0x190\n rvu_nix_init+0x148c/0x2880\n rvu_probe+0x1800/0x30b0\n local_pci_probe+0x78/0xe0\n work_for_cpu_fn+0x30/0x50\n process_one_work+0x4cc/0x97c\n worker_thread+0x360/0x630\n kthread+0x1a0/0x1b0\n ret_from_fork+0x10/0x20"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:39.362Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/30e5ee98e86ad47c76695458987097e849d0611a"
},
{
"url": "https://git.kernel.org/stable/c/de8e3a4004c5df9461974352e9d7ff0f8313c508"
},
{
"url": "https://git.kernel.org/stable/c/1d072cc3ba4338d6b2acb85d50a3af5cf2b12a3e"
},
{
"url": "https://git.kernel.org/stable/c/2477c523c6e69733d51101ae9bd2dfc0a054b13d"
},
{
"url": "https://git.kernel.org/stable/c/f9cd6fabe0e7c7f6fc30c6c192c7ed72aba37232"
}
],
"title": "octeontx2-af: npc: Fix size of entry2cntr_map",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80629",
"datePublished": "2026-08-28T06:48:45.976Z",
"dateReserved": "2026-08-26T14:34:25.776Z",
"dateUpdated": "2026-10-21T12:46:39.362Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74449 (GCVE-0-2026-74449)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Fix divide-by-zero in calculate_mcache_setting on zero viewport
If a plane reaches calculate_mcache_setting with a zero-area viewport,
calculate_mcache_setting exits early with num_mcaches == 0 and
mvmpg_width/height == 0. This will cause a divide-by-zero panic and can
also cause an underflow on num_mcaches.
Fix this by changing calculate_mcache_setting to bool and adding guards
after each calculate_mcache_row_bytes call. If num_mcaches or
mvmpg_width/height is zero, return a false. Callers will propagate the
failure as a rejected mode, which prevents the panic.
(cherry picked from commit 29c0f7c655f47bcbd575ff75e58480df6ec3c9da)
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74449",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:48.300764Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:46.407Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "70f5f4ddba0d2d89e77ec13b79cdcfbef33be0d9",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
},
{
"lessThan": "23a541c31b45fa813b33269376f6bd53535429a8",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
},
{
"lessThan": "1f93537881fd22712732a60ad12572a3fd40c0ec",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
},
{
"lessThan": "f327e389c07cfc3a2f6ff54f6214e1a52d457edc",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: Fix divide-by-zero in calculate_mcache_setting on zero viewport\n\nIf a plane reaches calculate_mcache_setting with a zero-area viewport,\ncalculate_mcache_setting exits early with num_mcaches == 0 and\nmvmpg_width/height == 0. This will cause a divide-by-zero panic and can\nalso cause an underflow on num_mcaches.\n\nFix this by changing calculate_mcache_setting to bool and adding guards\nafter each calculate_mcache_row_bytes call. If num_mcaches or\nmvmpg_width/height is zero, return a false. Callers will propagate the\nfailure as a rejected mode, which prevents the panic.\n\n(cherry picked from commit 29c0f7c655f47bcbd575ff75e58480df6ec3c9da)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached during DRM atomic display validation on AMDGPU DCN4.x (dml21 path): userspace ioctl \u2192 amdgpu_dm atomic commit \u2192 dc_validate_global_state/dc_validate_with_context \u2192 dcn401/dcn42_validate_bandwidth \u2192 dml2_validate \u2192 dml21_validate \u2192 dml2_check_mode_supported \u2192 dml2_core_calcs_mode_support_ex \u2192 calculate_mcache_setting; no network or physical bus is involved.\nAC:L - An attacker with DRM card access can submit atomic commits that configure DCC-enabled planes and repeatedly probe scaler/viewport edge cases (including degenerate zero-area viewports or zero mvmpg dimensions) to reach calculate_mcache_setting; once triggered, num_mcaches==0 deterministically underflows loop bounds and causes divide-by-zero without races or uncontrollable heap layout.\nPR:L - Exploitation requires only standard local DRM display privileges to perform atomic modeset ioctl on /dev/dri/card* (typical for session-owning desktop users in the video/render group), not init-namespace root/CAP_SYS_ADMIN; user namespaces do not grant independent access to the host GPU display stack.\nUI:N - No victim interaction is required beyond the attacker issuing their own DRM atomic commit to configure a plane with DCC compression enabled; the kernel panic/corruption occurs during in-kernel DML bandwidth validation, not from another user opening files or mounting filesystems.\nS:U - The vulnerability corrupts kernel memory and can enable local privilege escalation within the same host kernel running the AMDGPU display driver; it does not cross a VM, IOMMU, or sandbox boundary such as KVM guest-to-host escape.\nC:H - When num_mcaches is zero, unsigned underflow in loop bounds (n \u003c *num_mcaches_l - 1) and indexing (mcache_offsets_l[*num_mcaches_l - 1]) performs massive out-of-bounds reads/writes past the fixed-size mcache_offsets arrays in kernel DML state, enabling disclosure of adjacent kernel heap memory rather than a pure crash with no data exposure.\nI:H - The same num_mcaches underflow drives unbounded out-of-bounds writes into mode_lib mcache offset arrays and related DML structures during calculate_mcache_setting, providing attacker-influenced kernel memory corruption primitives that could be leveraged for control-flow hijacking beyond a simple denial-of-service fault.\nA:H - The vulnerable path performs integer divide-by-zero on zero mvmpg_access_width/num_mcaches and executes out-of-bounds mcache offset writes, either of which can immediately trigger a kernel oops or panic during display mode validation, denying service to all users on affected AMD DCN4.x systems until reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:40.556Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/70f5f4ddba0d2d89e77ec13b79cdcfbef33be0d9"
},
{
"url": "https://git.kernel.org/stable/c/23a541c31b45fa813b33269376f6bd53535429a8"
},
{
"url": "https://git.kernel.org/stable/c/1f93537881fd22712732a60ad12572a3fd40c0ec"
},
{
"url": "https://git.kernel.org/stable/c/f327e389c07cfc3a2f6ff54f6214e1a52d457edc"
}
],
"title": "drm/amd/display: Fix divide-by-zero in calculate_mcache_setting on zero viewport",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74449",
"datePublished": "2026-08-15T12:26:54.519Z",
"dateReserved": "2026-08-15T05:44:03.899Z",
"dateUpdated": "2026-10-21T12:45:40.556Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93212 (GCVE-0-2026-93212)
Vulnerability from cvelistv5
Published
2026-09-24 15:10
Modified
2026-10-19 09:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: guard nfsd_serv deref in nfsd_file_net_dispose
nfsd_file_net_dispose() is the consumer side of l->freeme: the nfsd
service thread loop calls it to drain entries that the filecache
garbage collector and shrinker append via
nfsd_file_dispose_list_delayed(). During per-net teardown,
nn->nfsd_serv is cleared before the filecache laundrette is shut
down, so the service thread can still run a dispose pass that finds
more than eight entries on l->freeme and dereferences a NULL
svc_serv:
nfsd service thread loop
nfsd_file_net_dispose(nn)
if (!list_empty(&l->freeme)) {
...
svc_wake_up(nn->nfsd_serv); /* nn->nfsd_serv == NULL */
}
The sibling helper nfsd_file_dispose_list_delayed() already documents
this ordering and caches nn->nfsd_serv into a local before testing it
for NULL. nfsd_file_net_dispose() was introduced with the same raw
svc_wake_up(nn->nfsd_serv) call and never picked up the guard.
Fix by loading nn->nfsd_serv into a local svc_serv pointer and only
calling svc_wake_up() when it is non-NULL, matching the pattern in
nfsd_file_dispose_list_delayed().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/filecache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f4776c1c4b38fbc459420321c8ece87d0f7f95fb",
"status": "affected",
"version": "ffb402596147ac583f3464ff5c48feb9423e3838",
"versionType": "git"
},
{
"lessThan": "59baf45a06435194005fc5fa9a42d89f77a30432",
"status": "affected",
"version": "ffb402596147ac583f3464ff5c48feb9423e3838",
"versionType": "git"
},
{
"lessThan": "766170b4fd2daaf5c4d6735560101474e18edab6",
"status": "affected",
"version": "ffb402596147ac583f3464ff5c48feb9423e3838",
"versionType": "git"
},
{
"lessThan": "9f1ddfc8cb9076592401a611eb3a44d36186d014",
"status": "affected",
"version": "ffb402596147ac583f3464ff5c48feb9423e3838",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/filecache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: guard nfsd_serv deref in nfsd_file_net_dispose\n\nnfsd_file_net_dispose() is the consumer side of l-\u003efreeme: the nfsd\nservice thread loop calls it to drain entries that the filecache\ngarbage collector and shrinker append via\nnfsd_file_dispose_list_delayed(). During per-net teardown,\nnn-\u003enfsd_serv is cleared before the filecache laundrette is shut\ndown, so the service thread can still run a dispose pass that finds\nmore than eight entries on l-\u003efreeme and dereferences a NULL\nsvc_serv:\n\n nfsd service thread loop\n nfsd_file_net_dispose(nn)\n if (!list_empty(\u0026l-\u003efreeme)) {\n ...\n svc_wake_up(nn-\u003enfsd_serv); /* nn-\u003enfsd_serv == NULL */\n }\n\nThe sibling helper nfsd_file_dispose_list_delayed() already documents\nthis ordering and caches nn-\u003enfsd_serv into a local before testing it\nfor NULL. nfsd_file_net_dispose() was introduced with the same raw\nsvc_wake_up(nn-\u003enfsd_serv) call and never picked up the guard.\n\nFix by loading nn-\u003enfsd_serv into a local svc_serv pointer and only\ncalling svc_wake_up() when it is non-NULL, matching the pattern in\nnfsd_file_dispose_list_delayed()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:07:24.291Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f4776c1c4b38fbc459420321c8ece87d0f7f95fb"
},
{
"url": "https://git.kernel.org/stable/c/59baf45a06435194005fc5fa9a42d89f77a30432"
},
{
"url": "https://git.kernel.org/stable/c/766170b4fd2daaf5c4d6735560101474e18edab6"
},
{
"url": "https://git.kernel.org/stable/c/9f1ddfc8cb9076592401a611eb3a44d36186d014"
}
],
"title": "nfsd: guard nfsd_serv deref in nfsd_file_net_dispose",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93212",
"datePublished": "2026-09-24T15:10:35.280Z",
"dateReserved": "2026-09-17T16:02:15.093Z",
"dateUpdated": "2026-10-19T09:07:24.291Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89713 (GCVE-0-2026-89713)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSD: check truncate permission under inode lock
nfsd_setattr() checks whether a size update needs NFSD_MAY_TRUNC
before it takes inode_lock(). The comparison uses the file size sampled
by that unlocked read, but the actual ATTR_SIZE update is applied later
under inode_lock() by notify_change().
This leaves a TOCTOU window for append-only files. If a client sends a
SETATTR that does not shrink the file at the time of the unlocked
sample, a concurrent append can extend the file before nfsd_setattr()
takes inode_lock(). notify_change() then applies a real truncation
without the NFSD_MAY_TRUNC check that rejects IS_APPEND(inode). The VFS
truncate syscall paths perform their own append-only checks before
calling notify_change(), so NFSD must make this decision against the
locked size it is about to change.
Split the write-count acquisition from the truncation permission check.
Keep get_write_access() before the locked setattr work, then recheck
whether the requested size is below i_size_read(inode) after inode_lock()
has been acquired and before notify_change(ATTR_SIZE). This also avoids
the plain unlocked inode->i_size load.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 783112f7401ff449d979530209b3f6c2594fdb4e Version: 783112f7401ff449d979530209b3f6c2594fdb4e Version: 783112f7401ff449d979530209b3f6c2594fdb4e Version: 783112f7401ff449d979530209b3f6c2594fdb4e Version: 783112f7401ff449d979530209b3f6c2594fdb4e Version: 604a3c407026d6162d15300478e63f901e435efc Version: cc4d5dc73841b98d33cdfb9822d70b0aac4beca5 Version: 3ee4f442e5b37a537297b812557b1163f96b5399 Version: a3c6cbc4eac4473ed5461d5faae2794d3e5c0e44 Version: 982898d7f97a35447403c3fcecc0d96c646ce101 Version: 3.2.89 ≤ Version: 3.16.44 ≤ Version: 4.4.53 ≤ Version: 4.9.14 ≤ Version: 4.10.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89713",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:29.958634Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:36:59.626Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/vfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52d0c5bdfe232c9974d4b11f97078b9c7814f05d",
"status": "affected",
"version": "783112f7401ff449d979530209b3f6c2594fdb4e",
"versionType": "git"
},
{
"lessThan": "3afa17d93ba8c925f49370c816c6dae5112d8c24",
"status": "affected",
"version": "783112f7401ff449d979530209b3f6c2594fdb4e",
"versionType": "git"
},
{
"lessThan": "d8352da196349182e1afd5a93308256cddc0a97d",
"status": "affected",
"version": "783112f7401ff449d979530209b3f6c2594fdb4e",
"versionType": "git"
},
{
"lessThan": "44086254479035de42ca3d286ecf25521d4e6325",
"status": "affected",
"version": "783112f7401ff449d979530209b3f6c2594fdb4e",
"versionType": "git"
},
{
"lessThan": "b778e0e0a16759f22a70579c3cf8d254a40d4a7f",
"status": "affected",
"version": "783112f7401ff449d979530209b3f6c2594fdb4e",
"versionType": "git"
},
{
"status": "affected",
"version": "604a3c407026d6162d15300478e63f901e435efc",
"versionType": "git"
},
{
"status": "affected",
"version": "cc4d5dc73841b98d33cdfb9822d70b0aac4beca5",
"versionType": "git"
},
{
"status": "affected",
"version": "3ee4f442e5b37a537297b812557b1163f96b5399",
"versionType": "git"
},
{
"status": "affected",
"version": "a3c6cbc4eac4473ed5461d5faae2794d3e5c0e44",
"versionType": "git"
},
{
"status": "affected",
"version": "982898d7f97a35447403c3fcecc0d96c646ce101",
"versionType": "git"
},
{
"lessThan": "3.3",
"status": "affected",
"version": "3.2.89",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.44",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.53",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.14",
"versionType": "semver"
},
{
"lessThan": "4.11",
"status": "affected",
"version": "4.10.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/vfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2.89",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.44",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.53",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.10.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: check truncate permission under inode lock\n\nnfsd_setattr() checks whether a size update needs NFSD_MAY_TRUNC\nbefore it takes inode_lock(). The comparison uses the file size sampled\nby that unlocked read, but the actual ATTR_SIZE update is applied later\nunder inode_lock() by notify_change().\n\nThis leaves a TOCTOU window for append-only files. If a client sends a\nSETATTR that does not shrink the file at the time of the unlocked\nsample, a concurrent append can extend the file before nfsd_setattr()\ntakes inode_lock(). notify_change() then applies a real truncation\nwithout the NFSD_MAY_TRUNC check that rejects IS_APPEND(inode). The VFS\ntruncate syscall paths perform their own append-only checks before\ncalling notify_change(), so NFSD must make this decision against the\nlocked size it is about to change.\n\nSplit the write-count acquisition from the truncation permission check.\nKeep get_write_access() before the locked setattr work, then recheck\nwhether the requested size is below i_size_read(inode) after inode_lock()\nhas been acquired and before notify_change(ATTR_SIZE). This also avoids\nthe plain unlocked inode-\u003ei_size load."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd_setattr() is reached from in-kernel nfsd NFSv2/v3 SETATTR and NFSv4 SETATTR (including ONE_STATEID) over TCP/UDP 2049, so a remote client triggers the TOCTOU without local shell access.\nAC:L - The attacker drives both sides of the race by issuing concurrent SETATTR size RPCs, or racing SETATTR against O_APPEND writes they perform themselves; a non-shrinking unlocked i_size sample then becomes a real truncate under inode_lock. No victim-only layout is required.\nPR:N - Default nfsd exports accept AUTH_SYS and AUTH_NULL with no cryptographic authentication, so the client asserts uid/gid. ATTR_SIZE uses fh_verify(NFSD_MAY_WRITE|NFSD_MAY_OWNER_OVERRIDE), which is satisfied by spoofing the file owner\u0027s uid.\nUI:N - The attacking NFS client sends SETATTR itself. No administrator or end-user action on the server is required beyond nfsd already serving a writable export.\nS:U - The skipped IS_APPEND check and the resulting notify_change(ATTR_SIZE) truncate affect only the exported filesystem in the same kernel security authority as nfsd. This is not a VM, IOMMU, or sandbox escape.\nC:N - The bug only omits NFSD_MAY_TRUNC for IS_APPEND before a locked size update. It does not read kernel memory, leak pointers, or disclose file contents beyond ordinary authorized NFS access.\nI:H - Winning the TOCTOU lets notify_change() apply ATTR_SIZE to an IS_APPEND inode, bypassing the append-only truncation ban that VFS truncate/ftruncate enforce, so a remote client can destroy data that chattr +a is meant to keep immutable, including concurrent log and audit appends.\nA:H - Unauthorized truncation of append-only operational logs, databases, or other files that services depend on can persistently destroy that live content and deny use of it until restored, and the attacker can repeat the race at will against further files."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:27.026Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52d0c5bdfe232c9974d4b11f97078b9c7814f05d"
},
{
"url": "https://git.kernel.org/stable/c/3afa17d93ba8c925f49370c816c6dae5112d8c24"
},
{
"url": "https://git.kernel.org/stable/c/d8352da196349182e1afd5a93308256cddc0a97d"
},
{
"url": "https://git.kernel.org/stable/c/44086254479035de42ca3d286ecf25521d4e6325"
},
{
"url": "https://git.kernel.org/stable/c/b778e0e0a16759f22a70579c3cf8d254a40d4a7f"
}
],
"title": "NFSD: check truncate permission under inode lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89713",
"datePublished": "2026-09-11T19:46:27.752Z",
"dateReserved": "2026-09-11T19:38:34.751Z",
"dateUpdated": "2026-10-21T12:48:27.026Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72392 (GCVE-0-2026-72392)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-19 16:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump
inet6_dump_fib() saves its progress in cb->args[1] as a positional
index within the current hash chain. Between batches, a concurrent
fib6_new_table() can insert a new table at the chain head, shifting
all existing entries. The saved index then lands on a different
table, causing fib6_dump_table() to set w->root to the wrong table
while w->node still points into the previous one.
fib6_walk_continue() dereferences w->node->parent (NULL) and panics:
BUG: kernel NULL pointer dereference, address: 0000000000000008
RIP: 0010:fib6_walk_continue+0x6e/0x170
Call Trace:
<TASK>
fib6_dump_table.isra.0+0xc5/0x240
inet6_dump_fib+0xf6/0x420
rtnl_dumpit+0x30/0xa0
netlink_dump+0x15b/0x460
netlink_recvmsg+0x1d6/0x2a0
____sys_recvmsg+0x17a/0x190
Fix by storing tb->tb6_id in cb->args[1] instead of a positional
index. On resume, skip entries until the id matches; a concurrent
head-insert can never match the saved id, so the walker always
resumes on the correct table.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 Version: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_fib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ee73a32dd258d4af66831ff006b771e19812b322",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "89f9c5fee3c64c5cabc34e65599308fd3c879cf9",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "cb90a774a9c6c46961a44949a246fbb61f5f934c",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "27210d433a8c5fe6bf7278a04bbaeb49a81d0290",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "059efb48dd746518898faaa9b965511009b59639",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "d8a01d27873e04bebd357dc87859aa756e0b28b2",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "110ccbd28c9444866fcc84ba96a2ad64fa6e95ae",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
},
{
"lessThan": "9facb861dc6b9b9ea9793ef5032a9a826f7a4229",
"status": "affected",
"version": "1b43af5480c351dbcb2eef478bafe179cbeb6e83",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_fib.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.19"
},
{
"lessThan": "2.6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump\n\ninet6_dump_fib() saves its progress in cb-\u003eargs[1] as a positional\nindex within the current hash chain. Between batches, a concurrent\nfib6_new_table() can insert a new table at the chain head, shifting\nall existing entries. The saved index then lands on a different\ntable, causing fib6_dump_table() to set w-\u003eroot to the wrong table\nwhile w-\u003enode still points into the previous one.\nfib6_walk_continue() dereferences w-\u003enode-\u003eparent (NULL) and panics:\n\n BUG: kernel NULL pointer dereference, address: 0000000000000008\n RIP: 0010:fib6_walk_continue+0x6e/0x170\n Call Trace:\n \u003cTASK\u003e\n fib6_dump_table.isra.0+0xc5/0x240\n inet6_dump_fib+0xf6/0x420\n rtnl_dumpit+0x30/0xa0\n netlink_dump+0x15b/0x460\n netlink_recvmsg+0x1d6/0x2a0\n ____sys_recvmsg+0x17a/0x190\n\nFix by storing tb-\u003etb6_id in cb-\u003eargs[1] instead of a positional\nindex. On resume, skip entries until the id matches; a concurrent\nhead-insert can never match the saved id, so the walker always\nresumes on the correct table."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:33.417Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ee73a32dd258d4af66831ff006b771e19812b322"
},
{
"url": "https://git.kernel.org/stable/c/89f9c5fee3c64c5cabc34e65599308fd3c879cf9"
},
{
"url": "https://git.kernel.org/stable/c/cb90a774a9c6c46961a44949a246fbb61f5f934c"
},
{
"url": "https://git.kernel.org/stable/c/27210d433a8c5fe6bf7278a04bbaeb49a81d0290"
},
{
"url": "https://git.kernel.org/stable/c/059efb48dd746518898faaa9b965511009b59639"
},
{
"url": "https://git.kernel.org/stable/c/d8a01d27873e04bebd357dc87859aa756e0b28b2"
},
{
"url": "https://git.kernel.org/stable/c/110ccbd28c9444866fcc84ba96a2ad64fa6e95ae"
},
{
"url": "https://git.kernel.org/stable/c/9facb861dc6b9b9ea9793ef5032a9a826f7a4229"
}
],
"title": "ipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72392",
"datePublished": "2026-08-15T05:56:20.463Z",
"dateReserved": "2026-08-09T03:40:39.924Z",
"dateUpdated": "2026-08-19T16:36:33.417Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74356 (GCVE-0-2026-74356)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vhost: fix vhost_get_avail_idx for a non empty ring
vhost_get_avail_idx is supposed to report whether it has updated
vq->avail_idx. Instead, it returns whether all entries have been
consumed, which is usually the same. But not always - in
drivers/vhost/net.c and when mergeable buffers have been enabled, the
driver checks whether the combined entries are big enough to store an
incoming packet. If not, the driver re-enables notifications with
available entries still in the ring. The incorrect return value from
vhost_get_avail_idx propagates through vhost_enable_notify and causes
the host to livelock if the guest is not making progress, as vhost will
immediately disable notifications and retry using the available entries.
This goes back to commit d3bb267bbdcb ("vhost: cache avail index in
vhost_enable_notify()") which changed vhost_enable_notify() to compare
the freshly read avail index against vq->last_avail_idx instead of the
previously cached vq->avail_idx. Commit 7ad472397667 ("vhost: move
smp_rmb() into vhost_get_avail_idx()") then carried over the same
comparison when refactoring vhost_enable_notify() to call the unified
vhost_get_avail_idx().
The obvious fix is to make vhost_get_avail_idx do what the comment
says it does and report whether new entries have been added.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74356",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:24.183895Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:35.157Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0fe5ca2d56f0122988016e415a074c95925504b7",
"status": "affected",
"version": "d3bb267bbdcba199568f1325743d9d501dea0560",
"versionType": "git"
},
{
"lessThan": "e115471008111f894c6528d9ab2ce7d0ce306f35",
"status": "affected",
"version": "d3bb267bbdcba199568f1325743d9d501dea0560",
"versionType": "git"
},
{
"lessThan": "7f229d27bf27c7e589eca690d8612763a7a4801f",
"status": "affected",
"version": "d3bb267bbdcba199568f1325743d9d501dea0560",
"versionType": "git"
},
{
"lessThan": "a9326b652bc7acd748d7a1143573845c7924d847",
"status": "affected",
"version": "d3bb267bbdcba199568f1325743d9d501dea0560",
"versionType": "git"
},
{
"lessThan": "09861858a68342f851f71c669ac0f69865c32151",
"status": "affected",
"version": "d3bb267bbdcba199568f1325743d9d501dea0560",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvhost: fix vhost_get_avail_idx for a non empty ring\n\nvhost_get_avail_idx is supposed to report whether it has updated\nvq-\u003eavail_idx. Instead, it returns whether all entries have been\nconsumed, which is usually the same. But not always - in\ndrivers/vhost/net.c and when mergeable buffers have been enabled, the\ndriver checks whether the combined entries are big enough to store an\nincoming packet. If not, the driver re-enables notifications with\navailable entries still in the ring. The incorrect return value from\nvhost_get_avail_idx propagates through vhost_enable_notify and causes\nthe host to livelock if the guest is not making progress, as vhost will\nimmediately disable notifications and retry using the available entries.\n\nThis goes back to commit d3bb267bbdcb (\"vhost: cache avail index in\nvhost_enable_notify()\") which changed vhost_enable_notify() to compare\nthe freshly read avail index against vq-\u003elast_avail_idx instead of the\npreviously cached vq-\u003eavail_idx. Commit 7ad472397667 (\"vhost: move\nsmp_rmb() into vhost_get_avail_idx()\") then carried over the same\ncomparison when refactoring vhost_enable_notify() to call the unified\nvhost_get_avail_idx().\n\nThe obvious fix is to make vhost_get_avail_idx do what the comment\nsays it does and report whether new entries have been added."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - Exploitation requires a malicious VM guest driving the virtio/vhost-net RX virtqueue on a KVM host; inbound packets cross the adjacent virtual-network boundary into host vhost-net processing, matching kernel CNA precedent for guest-to-host vhost-net bugs.\nAC:L - A guest can deterministically enable mergeable RX buffers, post undersized descriptors, stop refilling, and sustain inbound traffic so handle_rx() repeatedly hits the faulty vhost_enable_notify()/vhost_get_avail_idx() loop without races or rare configs.\nPR:N - A cloud VM tenant or any attacker with code execution inside a vhost-net guest needs no host root, capabilities, or /dev/vhost-net access\u2014only control of the guest virtio RX ring and normal VM networking, which QEMU/KVM provides by default.\nUI:N - No host administrator or victim user action is required beyond standard VM operation; the guest attacker directly manipulates virtio descriptors and can generate or receive the RX traffic that triggers host-side vhost processing.\nS:C - The livelock executes in host kernel vhost worker context while processing guest-controlled virtio ring state, crossing the VM/host isolation boundary and degrading availability for the hypervisor and co-hosted workloads beyond the guest\u0027s own scope.\nC:N - This is a pure logic error in available-index comparison causing a notification retry loop; there is no memory corruption, out-of-bounds access, use-after-free, or other primitive that could disclose kernel memory.\nI:N - No kernel memory is corrupted or written beyond the virtio notification state machine; the bug cannot be leveraged for arbitrary write, control-flow hijacking, or code execution on the host.\nA:H - The faulty vhost_enable_notify() loop causes host CPU livelock when the guest stops making progress, pinning a vhost worker at 100% and denying service to the host and other VMs until the offending guest is stopped or killed."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:28.112Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0fe5ca2d56f0122988016e415a074c95925504b7"
},
{
"url": "https://git.kernel.org/stable/c/e115471008111f894c6528d9ab2ce7d0ce306f35"
},
{
"url": "https://git.kernel.org/stable/c/7f229d27bf27c7e589eca690d8612763a7a4801f"
},
{
"url": "https://git.kernel.org/stable/c/a9326b652bc7acd748d7a1143573845c7924d847"
},
{
"url": "https://git.kernel.org/stable/c/09861858a68342f851f71c669ac0f69865c32151"
}
],
"title": "vhost: fix vhost_get_avail_idx for a non empty ring",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74356",
"datePublished": "2026-08-15T05:58:41.445Z",
"dateReserved": "2026-08-15T05:44:03.887Z",
"dateUpdated": "2026-10-21T12:45:28.112Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80976 (GCVE-0-2026-80976)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
seg6: reset IP6CB after IPv6 decapsulation
decap_and_validate() pulls the outer SRv6 headers and makes the inner
packet the skb network header. The IPv6 control block still contains
values collected while parsing the outer packet, including nhoff and
extension-header flags.
End.DX6 and End.DT6 route the inner IPv6 packet directly to the IPv6
input path. An unprivileged user can reach End.DT6 from a user and net
namespace by installing a local SID and injecting an outer packet with
Hop-by-Hop and Destination Options headers followed by an SRH and a
minimal inner IPv6 packet.
The outer extension headers leave a large nhoff in IP6CB. After
decapsulation, ip6_protocol_deliver_rcu() uses that stale offset on the
inner packet and reads beyond the skb head. KASAN reports:
BUG: KASAN: slab-out-of-bounds in ip6_protocol_deliver_rcu
ip6_protocol_deliver_rcu+0x1118/0x1450
ip6_input_finish+0x11b/0x240
seg6_local_input_core+0xed/0x2e0
lwtunnel_input+0x1e9/0x4e0
ipv6_rthdr_rcv+0x525f/0x6c50
ip6_protocol_deliver_rcu+0xcb7/0x1450
Before clearing IP6CB for an inner IPv6 packet, save its incoming
interface index and L3 slave state. Restore both after the clear and set
nhoff to the inner IPv6 base-header nexthdr field.
Use IP6CB(skb)->iif rather than skb->skb_iif because VRF processing can
replace skb_iif with the L3 master while IP6CB keeps the receiving
interface. Preserve IP6SKB_L3SLAVE for the same reason.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 Version: d7a669dd2f8ba07a17423f4ad586dfc0379882f7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/seg6_local.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d1f0d353358987ca87f21d8956e2d2854951130d",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "a0e2b0a3718f0cf9fb0ee41710b4a6348a7315c8",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "9ae92198c24d7dacd4070e2f34f6e1ed3a63061c",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "96c74420ac92930a7e0f21770818544eee4a93d7",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "2b154e96fcb3f01fd42765c64e0a56820fbc16eb",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "cfa186a0857a0f831dfca67b16bbc40ecfdf3280",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "c73fb911e02b9a766c950bc9707f3e3a96ffd702",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
},
{
"lessThan": "f967455fb2a5a2079b9eb5823e9ccf359174bf9f",
"status": "affected",
"version": "d7a669dd2f8ba07a17423f4ad586dfc0379882f7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/seg6_local.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nseg6: reset IP6CB after IPv6 decapsulation\n\ndecap_and_validate() pulls the outer SRv6 headers and makes the inner\npacket the skb network header. The IPv6 control block still contains\nvalues collected while parsing the outer packet, including nhoff and\nextension-header flags.\n\nEnd.DX6 and End.DT6 route the inner IPv6 packet directly to the IPv6\ninput path. An unprivileged user can reach End.DT6 from a user and net\nnamespace by installing a local SID and injecting an outer packet with\nHop-by-Hop and Destination Options headers followed by an SRH and a\nminimal inner IPv6 packet.\n\nThe outer extension headers leave a large nhoff in IP6CB. After\ndecapsulation, ip6_protocol_deliver_rcu() uses that stale offset on the\ninner packet and reads beyond the skb head. KASAN reports:\n\n BUG: KASAN: slab-out-of-bounds in ip6_protocol_deliver_rcu\n ip6_protocol_deliver_rcu+0x1118/0x1450\n ip6_input_finish+0x11b/0x240\n seg6_local_input_core+0xed/0x2e0\n lwtunnel_input+0x1e9/0x4e0\n ipv6_rthdr_rcv+0x525f/0x6c50\n ip6_protocol_deliver_rcu+0xcb7/0x1450\n\nBefore clearing IP6CB for an inner IPv6 packet, save its incoming\ninterface index and L3 slave state. Restore both after the clear and set\nnhoff to the inner IPv6 base-header nexthdr field.\n\nUse IP6CB(skb)-\u003eiif rather than skb-\u003eskb_iif because VRF processing can\nreplace skb_iif with the L3 master while IP6CB keeps the receiving\ninterface. Preserve IP6SKB_L3SLAVE for the same reason."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - End.DT6/End.DX6 run on the IPv6 receive path (ipv6_rthdr_rcv/lwtunnel_input/seg6_local_input_core) when a packet targets a configured local SID; a remote attacker who can route IPv6/SRv6 traffic to that SID on an SRv6 PE, VPN edge, or similar node triggers decap without local access.\nAC:L - The attacker fully controls the outer Hop-by-Hop and Destination Options chain that inflates IP6CB nhoff and the inner packet length, so one crafted packet deterministically makes ip6_protocol_deliver_rcu() index past the skb head with no race or uncontrolled layout.\nPR:N - SID processing runs in receive softirq with no authentication; a configured End.DT6/End.DX6 SID is an environmental precondition, not a credential the network attacker must hold (the same path is also reachable by an unprivileged userns user installing a SID).\nUI:N - Exploitation requires only sending crafted IPv6 packets to the SID; no victim user or administrator action is needed beyond the pre-existing SRv6 configuration.\nS:U - The stale-nhoff out-of-bounds access affects kernel memory on the receiving host only; it does not cross a VM, IOMMU, or sandbox security boundary.\nC:H - After decap, ip6_protocol_deliver_rcu() does skb_network_header(skb)[nhoff] using a stale outer nhoff the attacker can push thousands of bytes past the inner skb, which is an out-of-bounds kernel read; the leaked byte is then used as nexthdr, exposing further slab contents via dispatch side effects.\nI:H - Stale nhoff selects the inet6 protocol handler, type-confusing the inner packet into an attacker-influenced parser; IPv6 fragment reassembly also writes skb_network_header(skb)[nhoff], so the same attacker-controlled offset becomes an out-of-bounds write when the inner flow is fragmented.\nA:H - KASAN reports slab-out-of-bounds in ip6_protocol_deliver_rcu() on this path; in production a large nhoff lands on unmapped memory and oopses/panics the kernel, and the packet can be repeated at line rate."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:00.756Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d1f0d353358987ca87f21d8956e2d2854951130d"
},
{
"url": "https://git.kernel.org/stable/c/a0e2b0a3718f0cf9fb0ee41710b4a6348a7315c8"
},
{
"url": "https://git.kernel.org/stable/c/9ae92198c24d7dacd4070e2f34f6e1ed3a63061c"
},
{
"url": "https://git.kernel.org/stable/c/96c74420ac92930a7e0f21770818544eee4a93d7"
},
{
"url": "https://git.kernel.org/stable/c/2b154e96fcb3f01fd42765c64e0a56820fbc16eb"
},
{
"url": "https://git.kernel.org/stable/c/cfa186a0857a0f831dfca67b16bbc40ecfdf3280"
},
{
"url": "https://git.kernel.org/stable/c/c73fb911e02b9a766c950bc9707f3e3a96ffd702"
},
{
"url": "https://git.kernel.org/stable/c/f967455fb2a5a2079b9eb5823e9ccf359174bf9f"
}
],
"title": "seg6: reset IP6CB after IPv6 decapsulation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80976",
"datePublished": "2026-09-11T19:42:38.215Z",
"dateReserved": "2026-08-26T14:34:25.810Z",
"dateUpdated": "2026-10-19T08:46:00.756Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89502 (GCVE-0-2026-89502)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Free cpu_buffer::free_page with subbuf_order
When sub-buffers use an order greater than 0, cpu_buffer->free_page is
allocated with subbuf_order. Use the correct order for
cpu_buffer->free_page.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "77275ccea06eaf297e8e6ac3fc830cb72086379a",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "8c1ecdcdea738efe0494af908f12c0ae3a97fffa",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "81063bbb16c4fcf0136c9117d5e49d3621dd6a1e",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "234b1a72e9706fe20c08c96f4374ec8e83b934cb",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Free cpu_buffer::free_page with subbuf_order\n\nWhen sub-buffers use an order greater than 0, cpu_buffer-\u003efree_page is\nallocated with subbuf_order. Use the correct order for\ncpu_buffer-\u003efree_page."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:53.802Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/77275ccea06eaf297e8e6ac3fc830cb72086379a"
},
{
"url": "https://git.kernel.org/stable/c/8c1ecdcdea738efe0494af908f12c0ae3a97fffa"
},
{
"url": "https://git.kernel.org/stable/c/81063bbb16c4fcf0136c9117d5e49d3621dd6a1e"
},
{
"url": "https://git.kernel.org/stable/c/234b1a72e9706fe20c08c96f4374ec8e83b934cb"
}
],
"title": "ring-buffer: Free cpu_buffer::free_page with subbuf_order",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89502",
"datePublished": "2026-09-11T19:43:50.700Z",
"dateReserved": "2026-09-11T19:38:34.715Z",
"dateUpdated": "2026-10-19T08:47:53.802Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90243 (GCVE-0-2026-90243)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 09:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Clear Present bit before tearing down copied context entry
copied_context_tear_down() zeroes the 128-bit context entry with
context_clear_entry() while the Present bit is still set, and only then
issues the context-cache and IOTLB invalidations. This leaves a window
in which hardware can fetch a torn entry, with some fields already zeroed
while Present is still set, leading to unpredictable behaviour or
spurious faults. While x86 provides strong write ordering, the compiler
may reorder the writes to the two 64-bit halves of the entry, and the
hardware fetch is not guaranteed to be atomic with respect to multiple
CPU writes.
There is no cacheline flush before the invalidation either, so on an
IOMMU without coherent access to the context table the zeroed entry may
not be visible to hardware at the point the invalidation is submitted.
Apply the same ownership handshake described in the VT-d spec, Section
6.5.3.3 ("Guidance to Software for Invalidations"): clear only the Present
bit, flush it out to the IOMMU, perform the invalidations, and only then
zero the remainder of the entry.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "97750a8dce79c1a9b2b2d2a020b61b800141996c",
"status": "affected",
"version": "c7191984e5aade540f1a3845a116537c89572655",
"versionType": "git"
},
{
"lessThan": "3c88cfedc7768b1ae2dc7ddc71547ae9a1aaff7d",
"status": "affected",
"version": "c7191984e5aade540f1a3845a116537c89572655",
"versionType": "git"
},
{
"lessThan": "6b822d18c33af9d1e16a8e5e6aa6e656987b09de",
"status": "affected",
"version": "c7191984e5aade540f1a3845a116537c89572655",
"versionType": "git"
},
{
"lessThan": "f532c57985b1a7d6b7e37e05506b46d413e5cca4",
"status": "affected",
"version": "c7191984e5aade540f1a3845a116537c89572655",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Clear Present bit before tearing down copied context entry\n\ncopied_context_tear_down() zeroes the 128-bit context entry with\ncontext_clear_entry() while the Present bit is still set, and only then\nissues the context-cache and IOTLB invalidations. This leaves a window\nin which hardware can fetch a torn entry, with some fields already zeroed\nwhile Present is still set, leading to unpredictable behaviour or\nspurious faults. While x86 provides strong write ordering, the compiler\nmay reorder the writes to the two 64-bit halves of the entry, and the\nhardware fetch is not guaranteed to be atomic with respect to multiple\nCPU writes.\n\nThere is no cacheline flush before the invalidation either, so on an\nIOMMU without coherent access to the context table the zeroed entry may\nnot be visible to hardware at the point the invalidation is submitted.\n\nApply the same ownership handshake described in the VT-d spec, Section\n6.5.3.3 (\"Guidance to Software for Invalidations\"): clear only the Present\nbit, flush it out to the IOMMU, perform the invalidations, and only then\nzero the remainder of the entry."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - copied_context_tear_down() runs only from domain_context_mapping_one() and context_setup_pass_through() on crash-kernel attach (__iommu_probe_device \u2192 iommu_setup_default_domain \u2192 intel_iommu_attach_device or identity_domain_attach_dev). The trigger is in-flight PCIe DMA against a copied VT-d context, not a network protocol message.\nAC:H - context_clear_entry() does two unordered 64-bit stores (context-\u003elo=0, context-\u003ehi=0) while Present is still set, then flush_context/flush_iotlb. Hitting a torn Present=1 fetch depends on compiler store order, a non-atomic IOMMU 128-bit read, and/or a non-coherent IOMMU seeing unflushed writes\u2014timing the attacker cannot reliably force.\nPR:N - copy_translation_tables() in init_dmars() sets copied_tables only when is_kdump_kernel() and translation_pre_enabled(); copied_context_tear_down() then runs from __iommu_probe_device() with no capable() check. A DMA-capable PCIe device with leftover in-flight DMA needs no host account.\nUI:N - Crash-kernel PCI/IOMMU probing calls iommu_setup_default_domain() and then copied_context_tear_down() before the device driver probe/reset; no victim must mount a filesystem, open a file, or otherwise cooperate.\nS:C - A torn Present=1 copied context (old lo with ASR/TT intact, hi already zeroed so DID=0 and AW=0) lets VT-d translate that device\u2019s DMA through the wrong domain-id and address-width against the copied page-table root, crossing the IOMMU DMA isolation boundary.\nC:H - Hardware walking that torn copied context can map in-flight DMA reads to host physical pages outside the device\u2019s intended domain, including crash-kernel memory beside the old tables copied by copy_translation_tables(), yielding cross-domain disclosure.\nI:H - The same Present=1 / DID=0 / AW=0 mix with the leftover ASR from the copied entry lets the device DMA-write host memory outside its assigned domain, an arbitrary write across the VT-d isolation boundary.\nA:H - The fix documents unpredictable VT-d behaviour and spurious faults when hardware fetches the torn copied context in copied_context_tear_down(); those DMAR faults can oops, panic, or abort the crash dump."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:00:19.209Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/97750a8dce79c1a9b2b2d2a020b61b800141996c"
},
{
"url": "https://git.kernel.org/stable/c/3c88cfedc7768b1ae2dc7ddc71547ae9a1aaff7d"
},
{
"url": "https://git.kernel.org/stable/c/6b822d18c33af9d1e16a8e5e6aa6e656987b09de"
},
{
"url": "https://git.kernel.org/stable/c/f532c57985b1a7d6b7e37e05506b46d413e5cca4"
}
],
"title": "iommu/vt-d: Clear Present bit before tearing down copied context entry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90243",
"datePublished": "2026-09-17T16:07:46.488Z",
"dateReserved": "2026-09-11T19:38:34.795Z",
"dateUpdated": "2026-10-19T09:00:19.209Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72450 (GCVE-0-2026-72450)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: validate selector family and prefixlen during match
syzbot reported a shift-out-of-bounds in xfrm_selector_match()
due to AF_UNSPEC selector with large prefixlen (e.g. 128) matched
against IPv4 flow (when XFRM_STATE_AF_UNSPEC is set).
Fix this by:
- Rejecting mismatched families in xfrm_selector_match.
- Returning false in addr4_match if prefixlen > 32.
- Returning false in addr_match if prefixlen > 128 (prevents overflow).
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8df5cd51fd70c33aa1776e5cbcd82b0a86649d73 Version: 2d08a6c31c65f23db71a5385ee9cf9d8f9a67a71 Version: bce1afaa212ec380bf971614f70909a27882b862 Version: 7d9868180bd1e4cf37e7c5067362658971162366 Version: 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563 Version: 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563 Version: 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563 Version: 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563 Version: f31398570acf0f0804c644006f7bfa9067106b0a Version: 401ad99a5ae7180dd9449eac104cb755f442e7f3 Version: e68dd80ba498265d2266b12dc3459164f4ff0c4a Version: 5.10.229 ≤ Version: 5.15.170 ≤ Version: 6.1.115 ≤ Version: 6.6.59 ≤ Version: 4.19.323 ≤ Version: 5.4.285 ≤ Version: 6.11.6 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72450",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:15.343640Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.828Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/xfrm.h",
"net/xfrm/xfrm_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "87a5bbccc7ff4edb3f42fea387124237d2ba91ee",
"status": "affected",
"version": "8df5cd51fd70c33aa1776e5cbcd82b0a86649d73",
"versionType": "git"
},
{
"lessThan": "bd7f202cf77556cff59f68dc30e4cdf40cb6e33b",
"status": "affected",
"version": "2d08a6c31c65f23db71a5385ee9cf9d8f9a67a71",
"versionType": "git"
},
{
"lessThan": "a3968ad4195d72c8fddcc6c0ef39da95ac98711a",
"status": "affected",
"version": "bce1afaa212ec380bf971614f70909a27882b862",
"versionType": "git"
},
{
"lessThan": "efa9e3b9f3dea2e1ea4c7edf4edc863faef85986",
"status": "affected",
"version": "7d9868180bd1e4cf37e7c5067362658971162366",
"versionType": "git"
},
{
"lessThan": "78783fefdc8f36879b1a17efa0d3195ea5f2dc5f",
"status": "affected",
"version": "3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563",
"versionType": "git"
},
{
"lessThan": "6d99379c58f7f1c6ab2cc7aba01a4f52d71adcfe",
"status": "affected",
"version": "3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563",
"versionType": "git"
},
{
"lessThan": "5a03a2ee17e8259dde631ed84fd8322db06cb2ae",
"status": "affected",
"version": "3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563",
"versionType": "git"
},
{
"lessThan": "40f0b1047918539f0b0f795ac65e35336b4c2c78",
"status": "affected",
"version": "3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563",
"versionType": "git"
},
{
"status": "affected",
"version": "f31398570acf0f0804c644006f7bfa9067106b0a",
"versionType": "git"
},
{
"status": "affected",
"version": "401ad99a5ae7180dd9449eac104cb755f442e7f3",
"versionType": "git"
},
{
"status": "affected",
"version": "e68dd80ba498265d2266b12dc3459164f4ff0c4a",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.229",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.170",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.115",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.59",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.323",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.285",
"versionType": "semver"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/xfrm.h",
"net/xfrm/xfrm_policy.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.229",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.170",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.115",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.59",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.323",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.285",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: validate selector family and prefixlen during match\n\nsyzbot reported a shift-out-of-bounds in xfrm_selector_match()\ndue to AF_UNSPEC selector with large prefixlen (e.g. 128) matched\nagainst IPv4 flow (when XFRM_STATE_AF_UNSPEC is set).\n\nFix this by:\n\n- Rejecting mismatched families in xfrm_selector_match.\n- Returning false in addr4_match if prefixlen \u003e 32.\n- Returning false in addr_match if prefixlen \u003e 128 (prevents overflow)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is armed via NETLINK_XFRM (XFRM_MSG_NEWSA with XFRM_STATE_AF_UNSPEC) in xfrm_user_rcv_msg(), and per kernel CNA guidance xfrm/netlink configuration is Local even though xfrm_selector_match() is later hit from IPv4/IPv6 packet processing in __xfrm_policy_check() and xfrm_state_look_at().\nAC:L - The attacker fully controls the malformed SA selector (AF_UNSPEC with prefixlen up to 255) and can deterministically trigger matching by sending or receiving IPv4/IPv6 traffic through xfrm; no race, victim state, or memory layout outside attacker control is required.\nPR:L - xfrm_user_rcv_msg() requires netlink_net_capable(CAP_NET_ADMIN), evaluated against the socket net namespace user_ns via ns_capable(); an unprivileged local user obtains CAP_NET_ADMIN with unshare -Urn and can install the poisoned SA and matching policy in that namespace.\nUI:N - The attacker performs the entire sequence\u2014installing the XFRM SA/policy over netlink and generating matching traffic\u2014with no action required from any other user, administrator, or victim.\nS:U - The shift-out-of-bounds and out-of-bounds memcmp reads occur entirely within kernel xfrm selector matching on the same host; no VM escape, IOMMU bypass, or cross-security-authority boundary is crossed.\nC:H - addr4_match() performs an undefined left-shift when prefixlen\u003e32 on IPv4 flows, and addr_match() can memcmp() up to (prefixlen\u003e\u003e5)\u003c\u003c2 bytes past 16-byte selector/flow addresses when prefixlen\u003e128 on IPv6, leaking adjacent kernel memory per CNA OOB-read guidance.\nI:H - C11 undefined-behavior shifts in hot-path packet classification and unchecked prefix comparisons can corrupt mask/offset arithmetic and selector-match control flow, giving attacker-influenced kernel behavior exploitable for integrity compromise per CNA memory-unsafe-operation guidance.\nA:H - syzbot reproduced UBSAN shift-out-of-bounds in xfrm_selector_match(), and undefined shifts plus out-of-bounds reads in the xfrm input/policy-check path can provoke kernel oops/panic (especially with panic_on_warn/KASAN), satisfying CNA guidance that kernel crashes are High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:19.730Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/87a5bbccc7ff4edb3f42fea387124237d2ba91ee"
},
{
"url": "https://git.kernel.org/stable/c/bd7f202cf77556cff59f68dc30e4cdf40cb6e33b"
},
{
"url": "https://git.kernel.org/stable/c/a3968ad4195d72c8fddcc6c0ef39da95ac98711a"
},
{
"url": "https://git.kernel.org/stable/c/efa9e3b9f3dea2e1ea4c7edf4edc863faef85986"
},
{
"url": "https://git.kernel.org/stable/c/78783fefdc8f36879b1a17efa0d3195ea5f2dc5f"
},
{
"url": "https://git.kernel.org/stable/c/6d99379c58f7f1c6ab2cc7aba01a4f52d71adcfe"
},
{
"url": "https://git.kernel.org/stable/c/5a03a2ee17e8259dde631ed84fd8322db06cb2ae"
},
{
"url": "https://git.kernel.org/stable/c/40f0b1047918539f0b0f795ac65e35336b4c2c78"
}
],
"title": "xfrm: validate selector family and prefixlen during match",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72450",
"datePublished": "2026-08-15T05:56:58.939Z",
"dateReserved": "2026-08-09T03:40:39.931Z",
"dateUpdated": "2026-10-16T18:55:24.828Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74752 (GCVE-0-2026-74752)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: validate cookie AUTH state before use
When cookie authentication is disabled, COOKIE_ECHO restores fixed-size
AUTH fields directly from peer-controlled cookie bytes. A forged RANDOM
length, HMAC list, or CHUNKS list can then reach association consumers
with lengths or identifiers that were never validated against the local
backing arrays.
A forged RANDOM length can cause out-of-bounds reads during key-vector
construction. A forged HMAC identifier also caused a 32-byte write past
a zero-length AUTH chunk, providing a primitive for a local privilege
escalation chain.
Validate the cookie's RANDOM, HMACS, and CHUNKS parameters at the cookie
trust boundary before copying them into the association. Reject invalid
types, malformed lengths, unsupported HMAC identifiers, HMAC lists
without SHA1, and forbidden chunk ids.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74752",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:16:25.350604Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:24.210Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/sctp/auth.h",
"net/sctp/auth.c",
"net/sctp/sm_make_chunk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4a4410de8dc6903d859c9e1731fc6dcee28bd072",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "7f17984cfa697613800eb693e183b06884129bd3",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "88619b117be1daf633ce32210570ce35a0bd1c98",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
},
{
"lessThan": "3dbb44d88b1e94dd31fe43588af7437b34b44d56",
"status": "affected",
"version": "1f485649f52929d9937b346a920a522a7363e202",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/sctp/auth.h",
"net/sctp/auth.c",
"net/sctp/sm_make_chunk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.24"
},
{
"lessThan": "2.6.24",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.24",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: validate cookie AUTH state before use\n\nWhen cookie authentication is disabled, COOKIE_ECHO restores fixed-size\nAUTH fields directly from peer-controlled cookie bytes. A forged RANDOM\nlength, HMAC list, or CHUNKS list can then reach association consumers\nwith lengths or identifiers that were never validated against the local\nbacking arrays.\n\nA forged RANDOM length can cause out-of-bounds reads during key-vector\nconstruction. A forged HMAC identifier also caused a 32-byte write past\na zero-length AUTH chunk, providing a primitive for a local privilege\nescalation chain.\n\nValidate the cookie\u0027s RANDOM, HMACS, and CHUNKS parameters at the cookie\ntrust boundary before copying them into the association. Reject invalid\ntypes, malformed lengths, unsupported HMAC identifiers, HMAC lists\nwithout SHA1, and forbidden chunk ids."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when a remote peer sends SCTP COOKIE-ECHO to a listening endpoint; packets enter sctp_rcv() and are handled in sctp_sf_do_5_1D_ce()/sctp_unpack_cookie() with no local syscall required on the victim.\nAC:L - With SCTP-AUTH enabled and cookie_hmac_alg=none, an attacker completes INIT/INIT-ACK, forges peer-controlled AUTH fields in the returned cookie, and reliably triggers sctp_auth_make_key_vector()/sctp_auth_calculate_hmac() via COOKIE-ECHO without races or uncontrollable conditions.\nPR:N - Exploitation is pre-authentication SCTP handshake processing on a listening server; the attacker only needs network reachability to the SCTP port and does not need local account privileges, capabilities, or init-namespace root on the target host.\nUI:N - No victim user action is required beyond normal SCTP listener operation; exploitation is achieved solely by sending attacker-crafted COOKIE-ECHO packets over the network during association setup or restart.\nS:U - The vulnerability corrupts kernel memory inside the SCTP stack on the target host and enables kernel privilege escalation; it does not cross a separate security boundary such as guest-to-host VM escape or IOMMU/DMA isolation bypass.\nC:H - A forged RANDOM length copied from an unauthenticated cookie drives sctp_auth_make_key_vector() to memcpy() beyond the fixed auth_random backing array, enabling out-of-bounds kernel memory reads during association shared-key construction.\nI:H - Forged HMAC identifiers from the cookie can yield a zero-length AUTH chunk while sctp_auth_calculate_hmac() still writes a 32-byte digest past the allocation, providing a heap overflow primitive the fix commit notes can chain to local privilege escalation.\nA:H - Out-of-bounds reads and the 32-byte heap overflow during COOKIE-ECHO processing can trigger kernel faults, oops, or panic on SCTP servers, and malformed AUTH state can repeatedly crash association input handling."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:23.915Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4a4410de8dc6903d859c9e1731fc6dcee28bd072"
},
{
"url": "https://git.kernel.org/stable/c/7f17984cfa697613800eb693e183b06884129bd3"
},
{
"url": "https://git.kernel.org/stable/c/88619b117be1daf633ce32210570ce35a0bd1c98"
},
{
"url": "https://git.kernel.org/stable/c/3dbb44d88b1e94dd31fe43588af7437b34b44d56"
}
],
"title": "sctp: validate cookie AUTH state before use",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74752",
"datePublished": "2026-08-26T14:36:59.548Z",
"dateReserved": "2026-08-15T05:44:03.931Z",
"dateUpdated": "2026-10-21T12:46:23.915Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68471 (GCVE-0-2026-68471)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: ieee80211: validate MLE common info length
ieee80211_mle_common_size() uses the first common-info octet as the
common information length for all known MLE types. However,
ieee80211_mle_size_ok() only validates that octet for Basic, Probe
Request, and TDLS MLEs.
Reconfiguration MLEs also skipped the length octet when calculating the
minimum common size, and Priority Access MLEs skipped validation of the
advertised common information length.
Account for the Reconfiguration common-info length octet and validate
the advertised common information length for all known MLE types. Keep
unknown-type handling unchanged.
[remove now misleading comment]
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/ieee80211-eht.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "181b46e76a218e9345ed7c4cf59dfa69278e4a06",
"status": "affected",
"version": "0f48b8b88aa9ed7b65d7cb55dbc57ec914ddada1",
"versionType": "git"
},
{
"lessThan": "22941b5c5c46e61a7053e5f32f260f2bc39da617",
"status": "affected",
"version": "0f48b8b88aa9ed7b65d7cb55dbc57ec914ddada1",
"versionType": "git"
},
{
"lessThan": "90576bd6921a91eb038bffbb4b9467c2dc26aa1d",
"status": "affected",
"version": "0f48b8b88aa9ed7b65d7cb55dbc57ec914ddada1",
"versionType": "git"
},
{
"lessThan": "2b1589fd9a076727a73bfb39e96622a76415ad32",
"status": "affected",
"version": "0f48b8b88aa9ed7b65d7cb55dbc57ec914ddada1",
"versionType": "git"
},
{
"lessThan": "293baeae9b2434a3e432629d7720b5603db2d77e",
"status": "affected",
"version": "0f48b8b88aa9ed7b65d7cb55dbc57ec914ddada1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/ieee80211-eht.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ieee80211: validate MLE common info length\n\nieee80211_mle_common_size() uses the first common-info octet as the\ncommon information length for all known MLE types. However,\nieee80211_mle_size_ok() only validates that octet for Basic, Probe\nRequest, and TDLS MLEs.\n\nReconfiguration MLEs also skipped the length octet when calculating the\nminimum common size, and Priority Access MLEs skipped validation of the\nadvertised common information length.\n\nAccount for the Reconfiguration common-info length octet and validate\nthe advertised common information length for all known MLE types. Keep\nunknown-type handling unchanged.\n\n[remove now misleading comment]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - Reachable by transmitting crafted 802.11 management frames (probe responses, beacons, protected EHT action frames) over WiFi; the mac80211/cfg80211 stack parses Multi-Link Elements on receive without requiring local access.\nAC:L - An adjacent attacker fully controls the MLE common-info length octet in forged frames and can reliably pass ieee80211_mle_size_ok() with an inflated value, triggering deterministic out-of-bounds parsing during routine scan or beacon processing.\nPR:N - No local privileges or association are required; a rogue AP or frame injector can deliver malicious MLEs to any scanning or MLD-associated station via standard pre-authentication WiFi management traffic.\nUI:N - Exploitation requires only passive reception of attacker-supplied WiFi frames during background scanning or normal beacon/action-frame handling; no victim interaction beyond having WiFi enabled.\nS:U - Impact is kernel heap out-of-bounds access within the WiFi stack on the victim host; it does not cross a VM, IOMMU, or sandbox security boundary to another authority.\nC:H - Inflated common_len makes ieee80211_mle_common_size() exceed the element buffer, causing for_each_element/cfg80211_defragment_element to read beyond the skb or kmalloc allocation, enabling unbounded kernel memory disclosure.\nI:H - The length underflow and out-of-bounds element iteration constitute exploitable kernel memory corruption; subsequent defragmentation and nested ie parsing can leverage corrupted pointers for arbitrary write primitives.\nA:H - Out-of-bounds reads of unmapped or non-element memory during MLE sub-element iteration can trigger a kernel oops or panic, remotely denying service to any WiFi-enabled device in range."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:16.504Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/181b46e76a218e9345ed7c4cf59dfa69278e4a06"
},
{
"url": "https://git.kernel.org/stable/c/22941b5c5c46e61a7053e5f32f260f2bc39da617"
},
{
"url": "https://git.kernel.org/stable/c/90576bd6921a91eb038bffbb4b9467c2dc26aa1d"
},
{
"url": "https://git.kernel.org/stable/c/2b1589fd9a076727a73bfb39e96622a76415ad32"
},
{
"url": "https://git.kernel.org/stable/c/293baeae9b2434a3e432629d7720b5603db2d77e"
}
],
"title": "wifi: ieee80211: validate MLE common info length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68471",
"datePublished": "2026-08-15T05:51:29.001Z",
"dateReserved": "2026-07-30T09:28:09.396Z",
"dateUpdated": "2026-10-21T12:44:16.504Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92510 (GCVE-0-2026-92510)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_destroy_srq_user()
When accessing a SRQ via the netlink path the only synchronization
mechanism for the said SRQ is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_destroy_srq_user(), which is too late, since by that point
vendor-specific resources associated with the SRQ might already be
freed. This can leave a short window where the SRQ remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_begin_del() call to the start of
ib_destroy_srq_user(), ensuring that the SRQ is removed from restrack
before its internal resources are released. This guarantees that no new
users hold references to a SRQ that is in the process of destruction.
In addition, this change preserves the intended inverted order
between create and destroy routines: resources are added to
restrack at the end of successful creation, and hence shall be removed
from the restrack first thing during the destruction flow, which keeps
the lifecycle management consistent and predictable.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 Version: 48f8a70e899fa4d9c8f00369f482f0382173ece9 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a5bfd9fe05d5cebbd3e447bf7f7b2c663007d8b9",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
},
{
"lessThan": "d3d0eabe6e39b024deb3e085e2d408d037e967c3",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
},
{
"lessThan": "9c704383529044c02122f85a2a9a42cbf14a07a6",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
},
{
"lessThan": "bedd7dee72588c838f5b67197ea8b387e7beb918",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
},
{
"lessThan": "95c992c869df54a6a7061f5f3fb6400244f2af8f",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
},
{
"lessThan": "88244ecc71cc0b3ed200f5ef7ddea6686adfd730",
"status": "affected",
"version": "48f8a70e899fa4d9c8f00369f482f0382173ece9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in ib_destroy_srq_user()\n\nWhen accessing a SRQ via the netlink path the only synchronization\nmechanism for the said SRQ is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nib_destroy_srq_user(), which is too late, since by that point\nvendor-specific resources associated with the SRQ might already be\nfreed. This can leave a short window where the SRQ remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nib_destroy_srq_user(), ensuring that the SRQ is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a SRQ that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reached by a local write/ioctl on /dev/infiniband/uverbsN (IB_USER_VERBS_CMD_DESTROY_SRQ or UVERBS_METHOD_SRQ_DESTROY \u2192 uverbs_free_srq \u2192 ib_destroy_srq_user) raced with NETLINK_RDMA RDMA_NLDEV_CMD_RES_SRQ_GET; incoming RoCE/IB packets never invoke destroy_srq or fill_res_srq_entry.\nAC:L - The attacker controls both sides: one thread DESTROY_SRQs the handle while another issues RDMA_NLDEV_CMD_RES_SRQ_GET so nldev_res_get_srq_doit \u2192 rdma_restrack_get_byid still finds the SRQ during ops.destroy_srq (e.g. hns_roce_destroy_srq\u0027s mailbox and wait_for_completion); no uninfluenced victim state is required.\nPR:L - ib_uverbs_open() has no capable() check and uverbs_devnode() creates /dev/infiniband/uverbs* mode 0666, and RDMA_NLDEV_CMD_RES_SRQ_GET is registered without RDMA_NL_ADMIN_PERM, so an unprivileged local user on a host with an RDMA device can create an SRQ and dump it via nldev.\nUI:N - The attacker opens uverbs, creates the SRQ, and races DESTROY_SRQ with their own NETLINK_RDMA RES_SRQ_GET; no other user must mount, click, or otherwise act.\nS:U - The use-after-free is of the host-kernel ib_srq and its vendor SRQ resources inside ib_core; it does not escape a VM, bypass an IOMMU, or otherwise leave the kernel\u0027s authority.\nC:H - After ops.destroy_srq frees vendor state (hns free_srqc/free_srq_buf, rxe_srq_cleanup\u2192rxe_queue_cleanup, bnxt_qplib_destroy_srq kfree(swq)), the SRQ is still in restrack so fill_res_srq_entry/fill_res_srq_entry_raw (hns query_srqc, bnxt_qplib_read_context) read the freed object, a UAF disclosure primitive.\nI:H - The same UAF leaves vendor SRQ allocations (bnxt swq, siw recvq, rxe queue, mlx5 umem) freed while nldev still holds the restrack kref in fill_res_srq_entry, so heap reuse of those objects yields a write/control-flow primitive.\nA:H - fill_res_srq_entry walking an SRQ whose vendor buffers were already released by destroy_srq (kfree/vfree of swq, recvq, or rxe queue) can oops the kernel, so availability impact is high even without a full exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:16.292Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a5bfd9fe05d5cebbd3e447bf7f7b2c663007d8b9"
},
{
"url": "https://git.kernel.org/stable/c/d3d0eabe6e39b024deb3e085e2d408d037e967c3"
},
{
"url": "https://git.kernel.org/stable/c/9c704383529044c02122f85a2a9a42cbf14a07a6"
},
{
"url": "https://git.kernel.org/stable/c/bedd7dee72588c838f5b67197ea8b387e7beb918"
},
{
"url": "https://git.kernel.org/stable/c/95c992c869df54a6a7061f5f3fb6400244f2af8f"
},
{
"url": "https://git.kernel.org/stable/c/88244ecc71cc0b3ed200f5ef7ddea6686adfd730"
}
],
"title": "RDMA/core: Fix potential use after free in ib_destroy_srq_user()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92510",
"datePublished": "2026-09-17T16:10:20.775Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-19T09:04:16.292Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90308 (GCVE-0-2026-90308)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/erdma: Hold QP references for AE and CM processing
AE QP fatal events and iWARP CM paths load QPs from dev->qp_xa
and then use or reference them outside the xarray lock.
erdma_destroy_qp() can drop the destroy-path reference and free QP
resources while such a lookup is in flight.
Add erdma_qp_get_by_qpn() to acquire a kref under the xarray
lock with kref_get_unless_zero(). Remove the QP from the xarray
before dropping the destroy-path reference so no new lookup can acquire
it while destruction waits for existing users.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_cm.c",
"drivers/infiniband/hw/erdma/erdma_eq.c",
"drivers/infiniband/hw/erdma/erdma_verbs.c",
"drivers/infiniband/hw/erdma/erdma_verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "233f1b7fe2980e4e238fe03dd3ceddfd082cb4c8",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "6e32f84b63c054e09392153125d7202abab2d14b",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "ec987c0654651036dad6a42f7fa2a6d7c16a3687",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "c92686867638cda954fdb2bdbac8a75e3aa6eaae",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "a52eeff32024f190b3bdc99088c7becccd4fa60b",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_cm.c",
"drivers/infiniband/hw/erdma/erdma_eq.c",
"drivers/infiniband/hw/erdma/erdma_verbs.c",
"drivers/infiniband/hw/erdma/erdma_verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/erdma: Hold QP references for AE and CM processing\n\nAE QP fatal events and iWARP CM paths load QPs from dev-\u003eqp_xa\nand then use or reference them outside the xarray lock.\nerdma_destroy_qp() can drop the destroy-path reference and free QP\nresources while such a lookup is in flight.\n\nAdd erdma_qp_get_by_qpn() to acquire a kref under the xarray\nlock with kref_get_unless_zero(). Remove the QP from the xarray\nbefore dropping the destroy-path reference so no new lookup can acquire\nit while destruction waits for existing users."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is a race between local ib_uverbs_destroy_qp()-\u003eerdma_destroy_qp() dropping the QP kref and either ucma_connect()/ucma_accept() (RDMA_USER_CM_CONNECT/ACCEPT -\u003e iw_cm_connect()/iw_cm_accept() -\u003e erdma_connect()/erdma_accept() xa_load of userspace params-\u003eqpn) or erdma_comm_irq_handler()-\u003eerdma_aeq_event_handler(). The CM QPN is rdma_ucm_conn_param.qp_num, not a remote iWARP/RoCE field.\nAC:L - The attacker who created the QP drives both sides: one thread issues ucma_connect()/ucma_accept() or QP ops that produce an AEQE, while another calls ib_uverbs_destroy_qp(), racing find_qp_by_qpn()/xa_load against the destroy-path erdma_qp_put(). The window (bare xa_load, then kref_get or no get at all) can be retried across many QPs.\nPR:L - ib_uverbs_open() and ucma_open() perform no capability check; uverbs_devnode() and ucma_misc.mode publish /dev/infiniband/uverbs* and /dev/infiniband/rdma_cm as 0666, so an unprivileged user on an ERDMA host can create_qp, RDMA_USER_CM_CONNECT/ACCEPT, and destroy_qp.\nUI:N - The attacker creates the QP via uverbs, issues ucma_connect()/ucma_accept() (or generates an AEQE) and ib_uverbs_destroy_qp() from their own processes; no other user must mount, open, or otherwise act.\nS:U - The use-after-free is of the host kernel\u0027s struct erdma_qp (kref, ibqp.event_handler, queue buffers) under the same kernel authority and does not cross a VM, IOMMU, or guest-host boundary.\nC:H - After erdma_destroy_qp() drops the last kref and the RDMA core frees the QP, erdma_aeq_event_handler() still reads qp-\u003eibqp.event_handler and qp_context from the freed object, and erdma_connect() may kref_get a freed QP; a sprayed replacement yields a kernel-memory read primitive.\nI:H - erdma_aeq_event_handler() invokes qp-\u003eibqp.event_handler on the freed erdma_qp, and erdma_connect()/erdma_accept() write qp-\u003ecep and take qp-\u003estate_lock after a lockless xa_load; reclaiming that object gives a function-pointer call and kernel writes.\nA:H - Using the QP after erdma_qp_put()/wait_for_completion() has released its queues and the ib_qp object causes a kernel oops or panic in erdma_aeq_event_handler() or in erdma_connect()/erdma_accept()."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:53.574Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/233f1b7fe2980e4e238fe03dd3ceddfd082cb4c8"
},
{
"url": "https://git.kernel.org/stable/c/6e32f84b63c054e09392153125d7202abab2d14b"
},
{
"url": "https://git.kernel.org/stable/c/ec987c0654651036dad6a42f7fa2a6d7c16a3687"
},
{
"url": "https://git.kernel.org/stable/c/c92686867638cda954fdb2bdbac8a75e3aa6eaae"
},
{
"url": "https://git.kernel.org/stable/c/a52eeff32024f190b3bdc99088c7becccd4fa60b"
}
],
"title": "RDMA/erdma: Hold QP references for AE and CM processing",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90308",
"datePublished": "2026-09-17T16:08:29.704Z",
"dateReserved": "2026-09-11T19:38:34.800Z",
"dateUpdated": "2026-10-21T12:50:53.574Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74636 (GCVE-0-2026-74636)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-22 15:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix race between update_event_fields and, event_define_fields
The following sequence may leads race between event_define_fields()
and update_event_fields():
CPU0 (loads module A) CPU1 (loads module B)
=============================== ===============================
load_module(A) load_module(B)
notifier_call_chain notifier_call_chain
trace_module_notify trace_module_notify
mutex_lock(&event_mutex) trace_event_update_all()
trace_module_add_events(A) down_write(&trace_event_sem)
__register_event(call_A)
__add_event_to_tracers(call_A)
event_define_fields(call_A)
for each f: list_for_each_entry(field,
list_add(&f->link, &class->fields, link)
&class->fields) field = class->fields->next;
Where access to the class->fields is not protected by the event_mutex in
trace_event_update_all().
This produces the following panic:
Unable to handle kernel access ... at virtual address 0000000000000018
pc : update_event_fields+0xf8/0x368
Call trace:
update_event_fields+0xf8/0x368
trace_event_update_all+0x7c/0x2b4
trace_module_notify+0x4c/0x1dc
notifier_call_chain+0x84/0x168
blocking_notifier_call_chain_robust+0x64/0xd4
load_module+0x10c8/0x123c
__arm64_sys_finit_module+0x230/0x31c
Fix by taking event_mutex in trace_event_update_all() before
trace_event_sem.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7c6bd60999f32138e3b73fd97ea11ef47a94de25 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: b3bc8547d3be60898818885f5bf22d0a62e2eb48 Version: 55defdf935fab9f2989a197aae1042c082d9a343 Version: 0c53a5c80e6e286733381a1d9f255ba4039e2e45 Version: 5.15.33 ≤ Version: 5.16.19 ≤ Version: 5.17.2 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e39f7b4d9d36508c53e89e6cbc640728df870b5",
"status": "affected",
"version": "7c6bd60999f32138e3b73fd97ea11ef47a94de25",
"versionType": "git"
},
{
"lessThan": "a30d421468300b1e7b2f233136aeb2db8013f555",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"lessThan": "e5f1d301b4bdaa4206db251fdc691f623162b0a8",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"lessThan": "fdeb190b0905a6aaed1e5d6adfb8613214748d7d",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"lessThan": "ed49684e69f846bf50b5050651ccdb87cfd152c0",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"lessThan": "f128740f39ab28d1f4ad5bdd10f3e117eec0c374",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"lessThan": "c3730b8373bb5059d735509b9e6a00d7eb337d7c",
"status": "affected",
"version": "b3bc8547d3be60898818885f5bf22d0a62e2eb48",
"versionType": "git"
},
{
"status": "affected",
"version": "55defdf935fab9f2989a197aae1042c082d9a343",
"versionType": "git"
},
{
"status": "affected",
"version": "0c53a5c80e6e286733381a1d9f255ba4039e2e45",
"versionType": "git"
},
{
"lessThan": "5.15.216",
"status": "affected",
"version": "5.15.33",
"versionType": "semver"
},
{
"lessThan": "5.17",
"status": "affected",
"version": "5.16.19",
"versionType": "semver"
},
{
"lessThan": "5.18",
"status": "affected",
"version": "5.17.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.15.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.16.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.17.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix race between update_event_fields and, event_define_fields\n\nThe following sequence may leads race between event_define_fields()\nand update_event_fields():\n\n CPU0 (loads module A) CPU1 (loads module B)\n =============================== ===============================\n load_module(A) load_module(B)\n notifier_call_chain notifier_call_chain\n trace_module_notify trace_module_notify\n mutex_lock(\u0026event_mutex) trace_event_update_all()\n trace_module_add_events(A) down_write(\u0026trace_event_sem)\n __register_event(call_A)\n __add_event_to_tracers(call_A)\n event_define_fields(call_A)\n for each f: list_for_each_entry(field,\n list_add(\u0026f-\u003elink, \u0026class-\u003efields, link)\n \u0026class-\u003efields) field = class-\u003efields-\u003enext;\n\nWhere access to the class-\u003efields is not protected by the event_mutex in\ntrace_event_update_all().\n\nThis produces the following panic:\n Unable to handle kernel access ... at virtual address 0000000000000018\n pc : update_event_fields+0xf8/0x368\n Call trace:\n update_event_fields+0xf8/0x368\n trace_event_update_all+0x7c/0x2b4\n trace_module_notify+0x4c/0x1dc\n notifier_call_chain+0x84/0x168\n blocking_notifier_call_chain_robust+0x64/0xd4\n load_module+0x10c8/0x123c\n __arm64_sys_finit_module+0x230/0x31c\n\nFix by taking event_mutex in trace_event_update_all() before\ntrace_event_sem."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:32:16.026Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e39f7b4d9d36508c53e89e6cbc640728df870b5"
},
{
"url": "https://git.kernel.org/stable/c/a30d421468300b1e7b2f233136aeb2db8013f555"
},
{
"url": "https://git.kernel.org/stable/c/e5f1d301b4bdaa4206db251fdc691f623162b0a8"
},
{
"url": "https://git.kernel.org/stable/c/fdeb190b0905a6aaed1e5d6adfb8613214748d7d"
},
{
"url": "https://git.kernel.org/stable/c/ed49684e69f846bf50b5050651ccdb87cfd152c0"
},
{
"url": "https://git.kernel.org/stable/c/f128740f39ab28d1f4ad5bdd10f3e117eec0c374"
},
{
"url": "https://git.kernel.org/stable/c/c3730b8373bb5059d735509b9e6a00d7eb337d7c"
}
],
"title": "tracing: Fix race between update_event_fields and, event_define_fields",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74636",
"datePublished": "2026-08-22T15:32:16.026Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-08-22T15:32:16.026Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74694 (GCVE-0-2026-74694)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-22 15:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/ncsi: fix heap OOB read in NCSI_CMD_SEND_CMD payload length
ncsi_send_cmd_nl() takes the number of bytes to copy from the
attacker-controlled ncsi_pkt_hdr.length field of the in-band packet
header, while the source buffer is the NCSI_ATTR_DATA netlink
attribute whose readable size is nla_len() - sizeof(ncsi_pkt_hdr).
The two length sources are never cross-checked: only
nla_len() >= sizeof(struct ncsi_pkt_hdr) is enforced.
With hdr->length set larger than the attribute payload (up to 65535
against at most 2032 readable bytes), ncsi_cmd_handler_oem() copies
past the end of the netlink attribute buffer with unsafe_memcpy(),
leaking up to ~64KB of kernel heap memory into the transmitted NCSI
command packet. The destination skb is sized by the declared payload,
so the write side does not overflow - this is a pure OOB read /
information leak, reachable with CAP_NET_ADMIN on systems with a
registered NCSI device (e.g. OpenBMC on Aspeed BMC SoCs, where
NET_NCSI=y is standard).
Reject commands whose declared payload extends past the end of the
data attribute.
The issue was found by the autokbug dynamic kernel fuzzer at Tencent
Yunding Lab.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 Version: 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ncsi/ncsi-netlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e60afa01d35f8b2671b27ca93309921427144cce",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "67c72b8ef63d9d9a610546fda30b116638f39745",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "4489b4a17892750131e4bef4bc1d3d703c8fb5ba",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "43c7d0a6917751ea898ae584d00f24f5deac46d4",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "b5231ad0b376b801ab8cf2962b182cc29deaedb3",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "02226af69362758046822840fc6a497f5de33f00",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "3a60b5af75abe8e3494ccd074fb4ae6e601a3e55",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
},
{
"lessThan": "afa58b7384913c8773d837acdb07b035690ec5d2",
"status": "affected",
"version": "9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ncsi/ncsi-netlink.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.20"
},
{
"lessThan": "4.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.20",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/ncsi: fix heap OOB read in NCSI_CMD_SEND_CMD payload length\n\nncsi_send_cmd_nl() takes the number of bytes to copy from the\nattacker-controlled ncsi_pkt_hdr.length field of the in-band packet\nheader, while the source buffer is the NCSI_ATTR_DATA netlink\nattribute whose readable size is nla_len() - sizeof(ncsi_pkt_hdr).\nThe two length sources are never cross-checked: only\nnla_len() \u003e= sizeof(struct ncsi_pkt_hdr) is enforced.\n\nWith hdr-\u003elength set larger than the attribute payload (up to 65535\nagainst at most 2032 readable bytes), ncsi_cmd_handler_oem() copies\npast the end of the netlink attribute buffer with unsafe_memcpy(),\nleaking up to ~64KB of kernel heap memory into the transmitted NCSI\ncommand packet. The destination skb is sized by the declared payload,\nso the write side does not overflow - this is a pure OOB read /\ninformation leak, reachable with CAP_NET_ADMIN on systems with a\nregistered NCSI device (e.g. OpenBMC on Aspeed BMC SoCs, where\nNET_NCSI=y is standard).\n\nReject commands whose declared payload extends past the end of the\ndata attribute.\n\nThe issue was found by the autokbug dynamic kernel fuzzer at Tencent\nYunding Lab."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:32:57.113Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e60afa01d35f8b2671b27ca93309921427144cce"
},
{
"url": "https://git.kernel.org/stable/c/67c72b8ef63d9d9a610546fda30b116638f39745"
},
{
"url": "https://git.kernel.org/stable/c/4489b4a17892750131e4bef4bc1d3d703c8fb5ba"
},
{
"url": "https://git.kernel.org/stable/c/43c7d0a6917751ea898ae584d00f24f5deac46d4"
},
{
"url": "https://git.kernel.org/stable/c/b5231ad0b376b801ab8cf2962b182cc29deaedb3"
},
{
"url": "https://git.kernel.org/stable/c/02226af69362758046822840fc6a497f5de33f00"
},
{
"url": "https://git.kernel.org/stable/c/3a60b5af75abe8e3494ccd074fb4ae6e601a3e55"
},
{
"url": "https://git.kernel.org/stable/c/afa58b7384913c8773d837acdb07b035690ec5d2"
}
],
"title": "net/ncsi: fix heap OOB read in NCSI_CMD_SEND_CMD payload length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74694",
"datePublished": "2026-08-22T15:32:57.113Z",
"dateReserved": "2026-08-15T05:44:03.926Z",
"dateUpdated": "2026-08-22T15:32:57.113Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89603 (GCVE-0-2026-89603)
Vulnerability from cvelistv5
This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.
Show details on NVD website{
"containers": {
"cna": {
"providerMetadata": {
"dateUpdated": "2026-10-16T06:29:42.006Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"rejectedReasons": [
{
"lang": "en",
"value": "This CVE ID has been rejected or withdrawn by its CVE Numbering Authority."
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89603",
"datePublished": "2026-09-11T19:45:06.613Z",
"dateRejected": "2026-10-16T06:29:42.006Z",
"dateReserved": "2026-09-11T19:38:34.732Z",
"dateUpdated": "2026-10-16T06:29:42.006Z",
"state": "REJECTED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93794 (GCVE-0-2026-93794)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: flush dirty data before punching a hole
Punching a hole after a large buffered write may leave the range
reported as data. Reproduce it with:
xfs_io -f \
-c "pwrite -b 3m -S 0x61 0 3m" \
-c "fpunch 1m 1m" \
-c "seek -h 0" \
-c "seek -d 1m" \
/mnt/test/repro
Punching 1 MiB at offset 1 MiB should produce:
0 1 MiB 2 MiB 3 MiB
| DATA | HOLE | DATA | EOF
Instead, the entire file is reported as data. SEEK_HOLE(0) returns EOF,
and SEEK_DATA(1M) returns 1M.
This happens because a dirty folio spanning the punched range can be
written back after the punch and refill the hole.
Fix this by flushing and waiting for dirty data in the punched range
before invalidating the page cache and issuing FSCTL_SET_ZERO_DATA.
The xfstests generic/539 pass against Samba/ksmbd with this change.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "216e469586057c29409e4ef8311d282388c6e251",
"status": "affected",
"version": "31742c5a331766bc7df6b0d525df00c6cd20d5a6",
"versionType": "git"
},
{
"lessThan": "6c265aca08155e519a8f6f6071c59dff4f535f70",
"status": "affected",
"version": "31742c5a331766bc7df6b0d525df00c6cd20d5a6",
"versionType": "git"
},
{
"lessThan": "39562a56cdb515f6635c3e7bfe6629439b18a169",
"status": "affected",
"version": "31742c5a331766bc7df6b0d525df00c6cd20d5a6",
"versionType": "git"
},
{
"lessThan": "d7d2adcd022baade5cab65ca492ce63421ce3a6e",
"status": "affected",
"version": "31742c5a331766bc7df6b0d525df00c6cd20d5a6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.17"
},
{
"lessThan": "3.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "3.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: flush dirty data before punching a hole\n\nPunching a hole after a large buffered write may leave the range\nreported as data. Reproduce it with:\n\n xfs_io -f \\\n -c \"pwrite -b 3m -S 0x61 0 3m\" \\\n -c \"fpunch 1m 1m\" \\\n -c \"seek -h 0\" \\\n -c \"seek -d 1m\" \\\n /mnt/test/repro\n\nPunching 1 MiB at offset 1 MiB should produce:\n\n 0 1 MiB 2 MiB 3 MiB\n | DATA | HOLE | DATA | EOF\n\nInstead, the entire file is reported as data. SEEK_HOLE(0) returns EOF,\nand SEEK_DATA(1M) returns 1M.\n\nThis happens because a dirty folio spanning the punched range can be\nwritten back after the punch and refill the hole.\n\nFix this by flushing and waiting for dirty data in the punched range\nbefore invalidating the page cache and issuing FSCTL_SET_ZERO_DATA.\n\nThe xfstests generic/539 pass against Samba/ksmbd with this change."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:29.204Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/216e469586057c29409e4ef8311d282388c6e251"
},
{
"url": "https://git.kernel.org/stable/c/6c265aca08155e519a8f6f6071c59dff4f535f70"
},
{
"url": "https://git.kernel.org/stable/c/39562a56cdb515f6635c3e7bfe6629439b18a169"
},
{
"url": "https://git.kernel.org/stable/c/d7d2adcd022baade5cab65ca492ce63421ce3a6e"
}
],
"title": "smb/client: flush dirty data before punching a hole",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93794",
"datePublished": "2026-09-24T16:02:27.716Z",
"dateReserved": "2026-09-18T17:59:28.789Z",
"dateUpdated": "2026-10-03T10:57:29.204Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80646 (GCVE-0-2026-80646)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: guard against possible NULL deref in __in6_dev_stats_get()
dev_get_by_index_rcu() could return NULL if the original physical
device is unregistered.
Found by Sashiko.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Version: a24963500a4ec921ce9c2597e0a584e44513afae Version: 4.19.291 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80646",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:19:19.200610Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:31.747Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a23f2c68c6635e41404f189f8f7ae910738cebdb",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "e14db43677946bf2095febd294bb3c13ab375ab7",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "1a4adfbeb47a212a64539137411f1ca168474d33",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "1e3db30a88815bae6e9d5db6f64ac735e615a07e",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "952426a83ca75cea25c09d58944abafaa3ebd242",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "0db1949084e85a72d174a7dea3259b94fe5a9305",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "fc920c0659cdea5afd8721c1155a51564859e075",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"lessThan": "507541c2a8eeb76c02bd2511958f73a8cfa3e1bc",
"status": "affected",
"version": "e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f",
"versionType": "git"
},
{
"status": "affected",
"version": "a24963500a4ec921ce9c2597e0a584e44513afae",
"versionType": "git"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.291",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.291",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: guard against possible NULL deref in __in6_dev_stats_get()\n\ndev_get_by_index_rcu() could return NULL if the original physical\ndevice is unregistered.\n\nFound by Sashiko."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote attackers reach ipv6_frag_rcv() through the standard IPv6 receive and local-delivery path (ipv6_rcv to ip6_protocol_deliver_rcu) by sending fragmented IPv6 packets to an Internet-facing host running IPv6 reassembly on a VRF/L3-master ingress path.\nAC:L - An attacker can repeatedly deliver IPv6 fragments and time them against concurrent netdev unregister (link teardown, container veth removal, or ip link del with CAP_NET_ADMIN in a user namespace), controlling both sides of the race rather than depending on uncontrollable layout.\nPR:N - Sending unauthenticated IPv6 fragments requires no kernel credentials; VRF/L3-master configuration is a deployment condition on routers and cloud hosts, not a privilege the attacker must hold to deliver the triggering traffic.\nUI:N - Exploitation needs only network delivery of fragmented IPv6 packets during interface teardown; no victim action such as opening files, clicking links, or mounting filesystems is required.\nS:U - The NULL dereference crashes the kernel on the receiving host but does not cross a VM, container, or IOMMU security boundary; impact stays within the same kernel security authority.\nC:N - The failure is a NULL pointer read in __in6_dev_get(NULL) after dev_get_by_index_rcu() returns NULL; there is no use-after-free, out-of-bounds read, or other information-disclosure primitive.\nI:N - The bug dereferences a NULL net_device pointer for statistics lookup only; it provides no memory write, corruption, or control-flow hijack primitive beyond crashing the kernel.\nA:H - The NULL dereference during IPv6 fragment receive/reassembly processing in softirq context causes a kernel OOPS or panic, fully denying availability on the affected system until reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:21:41.550Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a23f2c68c6635e41404f189f8f7ae910738cebdb"
},
{
"url": "https://git.kernel.org/stable/c/e14db43677946bf2095febd294bb3c13ab375ab7"
},
{
"url": "https://git.kernel.org/stable/c/1a4adfbeb47a212a64539137411f1ca168474d33"
},
{
"url": "https://git.kernel.org/stable/c/1e3db30a88815bae6e9d5db6f64ac735e615a07e"
},
{
"url": "https://git.kernel.org/stable/c/952426a83ca75cea25c09d58944abafaa3ebd242"
},
{
"url": "https://git.kernel.org/stable/c/0db1949084e85a72d174a7dea3259b94fe5a9305"
},
{
"url": "https://git.kernel.org/stable/c/fc920c0659cdea5afd8721c1155a51564859e075"
},
{
"url": "https://git.kernel.org/stable/c/507541c2a8eeb76c02bd2511958f73a8cfa3e1bc"
}
],
"title": "ipv6: guard against possible NULL deref in __in6_dev_stats_get()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80646",
"datePublished": "2026-08-28T06:48:56.277Z",
"dateReserved": "2026-08-26T14:34:25.779Z",
"dateUpdated": "2026-10-16T19:26:31.747Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80586 (GCVE-0-2026-80586)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mptcp: options: reset DSS fields in case of unexpected size
A remote peer could send a malformed DSS with a wrong size, followed by
another DSS or MPC + Data. In this case, the first suboption will be
ignored, but leaving some fields written, which could lead to
inconsistency or access uninitialized data.
Explicitly reset the fields that could have been modified in case of
unexpected size.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 Version: 648ef4b88673dadb8463bf0d4b10fbf33d55def8 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80586",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:59.284912Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:28.632Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mptcp/options.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "15e35fdad7a5576bf3f1c8d688877aeb5d1b506b",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "b1256090816ec46011601e084be580731df58fc7",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "192878df582c51d440bf7b91a15f297f29f2b596",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "26dac5c9ffb20812b475fdf253eb04fab99cff3b",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "4e80eff5c1c893aca2ac1d202f0b256d2e52ecde",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "1fade1b2ac5b1a4948e538fae7313bea57b5ac36",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "27ed642a4e7e4b5df4b8522c72c457a67e052493",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
},
{
"lessThan": "35772b4981f38ba8059372cde8753e8e477e98ec",
"status": "affected",
"version": "648ef4b88673dadb8463bf0d4b10fbf33d55def8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mptcp/options.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: options: reset DSS fields in case of unexpected size\n\nA remote peer could send a malformed DSS with a wrong size, followed by\nanother DSS or MPC + Data. In this case, the first suboption will be\nignored, but leaving some fields written, which could lead to\ninconsistency or access uninitialized data.\n\nExplicitly reset the fields that could have been modified in case of\nunexpected size."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote attacker sends crafted TCP segments with malformed MPTCP options that are parsed in the softirq receive path (tcp_v4_rcv/tcp_rcv_established/tcp_data_queue/mptcp_incoming_options/mptcp_get_options), requiring only network reachability to an MPTCP-enabled peer.\nAC:L - Attacker fully controls TCP option bytes on an established MPTCP connection and can deterministically send a size-invalid DSS (setting use_ack/use_map flags) immediately followed by MPC+Data or another DSS in the same header; no race or victim-specific state is required.\nPR:N - Only requires the attacker to be the remote MPTCP/TCP peer of a host with CONFIG_MPTCP enabled; no local account, capabilities, or authenticated access on the victim is needed to reach the vulnerable parser.\nUI:N - Exploitation is fully automated over the network once an MPTCP session exists; the kernel processes malicious segments in softirq without any victim user action beyond ordinary connectivity.\nS:U - Impact is limited to kernel networking/MPTCP connection state on the affected host and does not cross VM, container, or IOMMU security boundaries.\nC:H - Malformed DSS leaves use_ack/use_map/dsn64/data_fin set while data_ack and map fields are never read, so ack_update_msk() and DSS handling consume uninitialized stack values and corrupt metadata that can leak kernel memory contents.\nI:H - Stale DSS flag bits cause forged ack advancement of msk-\u003esnd_una/wnd_end/bytes_acked and bogus DATA_FIN/DSN mapping in skb extensions, corrupting rtx queues and silently altering or truncating application data delivery.\nA:H - Bogus ack state triggers __mptcp_clean_una() WARN_ON_ONCE paths outside recovery, can abort or hang MPTCP connections, and may kernel-panic systems built with panic_on_warn."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:02:07.204Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/15e35fdad7a5576bf3f1c8d688877aeb5d1b506b"
},
{
"url": "https://git.kernel.org/stable/c/b1256090816ec46011601e084be580731df58fc7"
},
{
"url": "https://git.kernel.org/stable/c/192878df582c51d440bf7b91a15f297f29f2b596"
},
{
"url": "https://git.kernel.org/stable/c/26dac5c9ffb20812b475fdf253eb04fab99cff3b"
},
{
"url": "https://git.kernel.org/stable/c/4e80eff5c1c893aca2ac1d202f0b256d2e52ecde"
},
{
"url": "https://git.kernel.org/stable/c/1fade1b2ac5b1a4948e538fae7313bea57b5ac36"
},
{
"url": "https://git.kernel.org/stable/c/27ed642a4e7e4b5df4b8522c72c457a67e052493"
},
{
"url": "https://git.kernel.org/stable/c/35772b4981f38ba8059372cde8753e8e477e98ec"
}
],
"title": "mptcp: options: reset DSS fields in case of unexpected size",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80586",
"datePublished": "2026-08-26T14:37:41.493Z",
"dateReserved": "2026-08-26T14:34:25.769Z",
"dateUpdated": "2026-10-16T19:26:28.632Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89545 (GCVE-0-2026-89545)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sunrpc: defer rq_argp and rq_resp free until after RCU grace period
svc_rqst_free() frees rqstp->rq_argp and rqstp->rq_resp synchronously
via kfree(), but defers the rqstp struct free via kfree_rcu(). After
svc_exit_thread() calls list_del_rcu() and svc_rqst_free(), there is
a window where RCU readers that started before list_del_rcu() can still
traverse the thread list and find the rqstp. These readers (e.g.
nfsd_nl_rpc_status_get_dumpit()) dereference rqstp->rq_argp, which has
already been freed — a use-after-free.
Fix this by moving the kfree of rq_argp and rq_resp into an explicit
call_rcu() callback alongside the struct free. Resources not accessed
by RCU readers (bvec, buffer pages, scratch folio, auth_data) remain
synchronously freed.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89545",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:36.292382Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.664Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/svc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0ea49d69aa806008b2424c8cf21cf746b9963967",
"status": "affected",
"version": "812443865c5fc255363d4a684a62c086af1addca",
"versionType": "git"
},
{
"lessThan": "08bc49e0541260bf294962cf889a32a2d2713ad6",
"status": "affected",
"version": "812443865c5fc255363d4a684a62c086af1addca",
"versionType": "git"
},
{
"lessThan": "e0c5693d3f9a5d4911735ab0e0eba4eecb1f1090",
"status": "affected",
"version": "812443865c5fc255363d4a684a62c086af1addca",
"versionType": "git"
},
{
"lessThan": "c479bde671cbe2f9e152834a8b0eb7c3c295bbaf",
"status": "affected",
"version": "812443865c5fc255363d4a684a62c086af1addca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/svc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsunrpc: defer rq_argp and rq_resp free until after RCU grace period\n\nsvc_rqst_free() frees rqstp-\u003erq_argp and rqstp-\u003erq_resp synchronously\nvia kfree(), but defers the rqstp struct free via kfree_rcu(). After\nsvc_exit_thread() calls list_del_rcu() and svc_rqst_free(), there is\na window where RCU readers that started before list_del_rcu() can still\ntraverse the thread list and find the rqstp. These readers (e.g.\nnfsd_nl_rpc_status_get_dumpit()) dereference rqstp-\u003erq_argp, which has\nalready been freed \u2014 a use-after-free.\n\nFix this by moving the kfree of rq_argp and rq_resp into an explicit\ncall_rcu() callback alongside the struct free. Resources not accessed\nby RCU readers (bvec, buffer pages, scratch folio, auth_data) remain\nsynchronously freed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The use-after-free is reached by NFSD_CMD_RPC_STATUS_GET, a generic-netlink dump over AF_NETLINK that walks svc_rqst threads and reads rq_argp; remote NFS RPCs never enter nfsd_nl_rpc_status_get_dumpit().\nAC:L - The attacker fully controls the dumpit reader and can loop it while nfsd threads exit (dynamic idle-timeout kills or thread-count changes), and can further churn threads with NFS traffic; this is an attacker-driven RCU race, not a condition beyond their control.\nPR:L - NFSD_CMD_RPC_STATUS_GET is registered with GENL_CMD_CAP_DUMP and no GENL_ADMIN_PERM, so any unprivileged process in the nfsd network namespace can invoke the dump; exploiting it does not require CAP_NET_ADMIN or root.\nUI:N - The attacker issues the netlink dump themselves; no separate victim action such as mounting a filesystem or opening a device is required.\nS:U - This is a kernel-heap use-after-free in sunrpc/nfsd on the local host; impact stays inside the kernel\u0027s security authority and does not cross a VM, IOMMU, or other security boundary.\nC:H - dumpit dereferences the kfree\u0027d rq_argp (nfsd4_compoundargs) and reads opcnt/opnums under rcu_read_lock; a kernel UAF with heap reuse of that object yields an arbitrary read primitive.\nI:H - The same slab UAF is heap-sprayable so a replaced rq_argp can make dumpit walk attacker-controlled args-\u003eops[], enabling kernel memory corruption and control-flow hijacking.\nA:H - Use-after-free of rq_argp while an RCU reader still holds the svc_rqst from sp_all_threads can oops or panic the kernel even if the UAF is not fully turned into code execution."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:36.955Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0ea49d69aa806008b2424c8cf21cf746b9963967"
},
{
"url": "https://git.kernel.org/stable/c/08bc49e0541260bf294962cf889a32a2d2713ad6"
},
{
"url": "https://git.kernel.org/stable/c/e0c5693d3f9a5d4911735ab0e0eba4eecb1f1090"
},
{
"url": "https://git.kernel.org/stable/c/c479bde671cbe2f9e152834a8b0eb7c3c295bbaf"
}
],
"title": "sunrpc: defer rq_argp and rq_resp free until after RCU grace period",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89545",
"datePublished": "2026-09-11T19:44:21.161Z",
"dateReserved": "2026-09-11T19:38:34.722Z",
"dateUpdated": "2026-10-19T08:48:36.955Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97572 (GCVE-0-2026-97572)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Propagate RX ring init failures in bnxt_init_nic()
bnxt_init_rx_rings() returns an error when bnxt_alloc_one_rx_ring()
fails, but bnxt_init_nic() discards that return value and calls
bnxt_init_chip(), which enables TPA.
If an allocation fails, this could leave rxr->rx_tpa[] partially zeroed
and TPA would be enabled over an array with zeroed entries. This would
lead to a zeroed DMA address being handed out if the agg_idx is
translated to a SW index at a zeroed entry.
Fix this by propagating the error out of bnxt_init_nic(). Both callers
already check its return value and unwind with bnxt_free_skbs() and
bnxt_free_mem(), which tolerate a partially initialized RX ring.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 Version: c0c050c58d840994ba842ad1c338a98e7c12b764 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e40641638743b4b848d5ed78a0565afffc359d8e",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "6b24eca42619b93f69aebc2aa0a9fd28ac9a5085",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "1f2d333ae2e1a73b7cc1c2a627587024cd147c01",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "c3eb07e78e628243cbb9bbb0115db802fb7a303f",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "daadccd062fdca5e77a8cc22ffe35857803b6c49",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "b4c40f2c80d7bf50648878bc206a39adfbfaec6c",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "dfd73af81cdb9f7b399754a59e2658a08211bee5",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
},
{
"lessThan": "8e6a850c0746bb4be167aedf1ee57469fcda09a9",
"status": "affected",
"version": "c0c050c58d840994ba842ad1c338a98e7c12b764",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Propagate RX ring init failures in bnxt_init_nic()\n\nbnxt_init_rx_rings() returns an error when bnxt_alloc_one_rx_ring()\nfails, but bnxt_init_nic() discards that return value and calls\nbnxt_init_chip(), which enables TPA.\n\nIf an allocation fails, this could leave rxr-\u003erx_tpa[] partially zeroed\nand TPA would be enabled over an array with zeroed entries. This would\nlead to a zeroed DMA address being handed out if the agg_idx is\ntranslated to a SW index at a zeroed entry.\n\nFix this by propagating the error out of bnxt_init_nic(). Both callers\nalready check its return value and unwind with bnxt_free_skbs() and\nbnxt_free_mem(), which tolerate a partially initialized RX ring."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:34.905Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e40641638743b4b848d5ed78a0565afffc359d8e"
},
{
"url": "https://git.kernel.org/stable/c/6b24eca42619b93f69aebc2aa0a9fd28ac9a5085"
},
{
"url": "https://git.kernel.org/stable/c/1f2d333ae2e1a73b7cc1c2a627587024cd147c01"
},
{
"url": "https://git.kernel.org/stable/c/c3eb07e78e628243cbb9bbb0115db802fb7a303f"
},
{
"url": "https://git.kernel.org/stable/c/daadccd062fdca5e77a8cc22ffe35857803b6c49"
},
{
"url": "https://git.kernel.org/stable/c/b4c40f2c80d7bf50648878bc206a39adfbfaec6c"
},
{
"url": "https://git.kernel.org/stable/c/dfd73af81cdb9f7b399754a59e2658a08211bee5"
},
{
"url": "https://git.kernel.org/stable/c/8e6a850c0746bb4be167aedf1ee57469fcda09a9"
}
],
"title": "bnxt_en: Propagate RX ring init failures in bnxt_init_nic()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97572",
"datePublished": "2026-09-25T10:21:56.826Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-19T09:09:34.905Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74725 (GCVE-0-2026-74725)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
enic: fix tx_hang_reset use-after-free on device removal
enic_remove() cancels the reset and change_mtu_work items but does not
cancel tx_hang_reset. A TX timeout that fires while the device is being
removed can schedule enic_tx_hang_reset() so that it runs after
free_netdev(), resulting in a use-after-free.
cancel_work_sync() alone is not sufficient here: the still-live watchdog
and notify paths can re-schedule these work items in the window between
the cancel and unregister_netdev(). Use disable_work_sync(), which
cancels the work and blocks any subsequent schedule_work() from
requeuing it, and apply it to the reset and change_mtu_work items as
well so the same requeue race is closed for all teardown work.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74725",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:41.206988Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:12.099Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/cisco/enic/enic_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8619865f34fb3b130b567855382a5c4aadd522b9",
"status": "affected",
"version": "937317c7c1097aa878a5000e3aab616eb5c590c0",
"versionType": "git"
},
{
"lessThan": "e506e704b74748ffd0e1c92a7453ca2a959f832b",
"status": "affected",
"version": "937317c7c1097aa878a5000e3aab616eb5c590c0",
"versionType": "git"
},
{
"lessThan": "4f3464fc6c1f26afc504fd525c574f2bc14c9d42",
"status": "affected",
"version": "937317c7c1097aa878a5000e3aab616eb5c590c0",
"versionType": "git"
},
{
"lessThan": "ec680ea4ba1bca92a767fb7e7869758bfdd886e3",
"status": "affected",
"version": "937317c7c1097aa878a5000e3aab616eb5c590c0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/cisco/enic/enic_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nenic: fix tx_hang_reset use-after-free on device removal\n\nenic_remove() cancels the reset and change_mtu_work items but does not\ncancel tx_hang_reset. A TX timeout that fires while the device is being\nremoved can schedule enic_tx_hang_reset() so that it runs after\nfree_netdev(), resulting in a use-after-free.\n\ncancel_work_sync() alone is not sufficient here: the still-live watchdog\nand notify paths can re-schedule these work items in the window between\nthe cancel and unregister_netdev(). Use disable_work_sync(), which\ncancels the work and blocks any subsequent schedule_work() from\nrequeuing it, and apply it to the reset and change_mtu_work items as\nwell so the same requeue race is closed for all teardown work."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF occurs during enic_remove() PCI/driver teardown (sysfs unbind, rmmod, or hot-unplug); TX timeout is raised by the local netdev watchdog, not by remote packet processing, and there is no standalone network path into enic_remove itself.\nAC:L - This is a workqueue race during removal: once teardown starts the netdev can still be up so the watchdog schedules enic_tx_hang_reset, and an attacker can reliably drive TX timeout by stalling or flooding xmit on the still-registered interface while removal proceeds.\nPR:L - PCI unbind/module unload needs elevated privileges, but an unprivileged local or tenant workload can supply the concurrent netdev watchdog TX timeout (local/remote traffic on the Cisco VIC uplink) that schedules tx_hang_reset; per driver-removal UAF precedent, PR:L.\nUI:N - No victim interaction is required beyond routine driver removal, module unload, or hypervisor VNIC hot-unplug; monitoring and network traffic on the live interface can schedule tx_hang_reset during teardown without cooperation.\nS:U - Impact is use-after-free of netdev_priv enic memory in the host/guest kernel, enabling crash or privilege escalation within the same kernel security authority; it does not cross VM, hypervisor, IOMMU, or container boundaries.\nC:H - enic_tx_hang_reset dereferences freed enic/netdev memory via container_of(work, struct enic, tx_hang_reset); UAF on the unified netdev slab enables arbitrary kernel memory disclosure once the object is reallocated.\nI:H - The scheduled work performs hang reset, stop/open, and notifier calls through the dangling enic pointer, giving attacker-influenced writes and control-flow hijack primitives typical of netdev driver UAF exploitation.\nA:H - Use-after-free during enic_tx_hang_reset reliably causes kernel oops/panic when the work runs after free_netdev(), and even attempted exploitation crashes the system on dangling enic/netdev accesses."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:42:05.934Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8619865f34fb3b130b567855382a5c4aadd522b9"
},
{
"url": "https://git.kernel.org/stable/c/e506e704b74748ffd0e1c92a7453ca2a959f832b"
},
{
"url": "https://git.kernel.org/stable/c/4f3464fc6c1f26afc504fd525c574f2bc14c9d42"
},
{
"url": "https://git.kernel.org/stable/c/ec680ea4ba1bca92a767fb7e7869758bfdd886e3"
}
],
"title": "enic: fix tx_hang_reset use-after-free on device removal",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74725",
"datePublished": "2026-08-22T15:33:16.460Z",
"dateReserved": "2026-08-15T05:44:03.929Z",
"dateUpdated": "2026-10-16T19:16:12.099Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64425 (GCVE-0-2026-64425)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-15 01:23
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item
commit 10dc95939817 ("io_uring/io-wq: check IO_WQ_BIT_EXIT inside work
run loop") fixed the obvious case where io_worker_handle_work() took one
exit-bit snapshot before draining pending work, but the fix stops one
level too early.
io_worker_handle_work() now re-checks IO_WQ_BIT_EXIT in its outer work
run loop, yet it still snapshots that bit once before processing a whole
dependent linked-work chain. If io_wq_exit_start() sets IO_WQ_BIT_EXIT
after the first linked item has started, the remaining linked items can
still reuse stale do_kill = false, skip IO_WQ_WORK_CANCEL, and continue
running after exit has begun.
Move the check further inside, so it covers linked items too. Note: this
is a syzbot special as it loves setting up tons of slow linked work on
weird devices like msr that take forever to read, and immediately close
the ring. Exit then takes a long time.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 065dd936195a3466b8ebe5f9287400987ee3c063 Version: 27e47500fac23d15b7dc93ff650bc4844d2581bd Version: d05d99573f81a091547b1778b9a50120f5d6c68a Version: 85eb83694a91c89d9abe615d717c0053c3efa714 Version: 2e8ca1078b14142db2ce51cbd18ff9971560046b Version: bdf0bf73006ea8af9327cdb85cfdff4c23a5f966 Version: 10dc959398175736e495f71c771f8641e1ca1907 Version: 10dc959398175736e495f71c771f8641e1ca1907 Version: 5.10.253 ≤ Version: 5.15.203 ≤ Version: 6.1.167 ≤ Version: 6.6.122 ≤ Version: 6.12.68 ≤ Version: 6.18.8 ≤ |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:23:50.155Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"io_uring/io-wq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "14b7ecad2ec56699325180a744f4b19f046401bb",
"status": "affected",
"version": "065dd936195a3466b8ebe5f9287400987ee3c063",
"versionType": "git"
},
{
"lessThan": "d179533c610e1b4c6aa436e3c1fd1b719d2c727c",
"status": "affected",
"version": "27e47500fac23d15b7dc93ff650bc4844d2581bd",
"versionType": "git"
},
{
"lessThan": "6e2f51f3e06773c2ee98ad09738f0908b48f76f9",
"status": "affected",
"version": "d05d99573f81a091547b1778b9a50120f5d6c68a",
"versionType": "git"
},
{
"lessThan": "ea61b04e1d7242cb37f5ed2cc91cf21a493f6597",
"status": "affected",
"version": "85eb83694a91c89d9abe615d717c0053c3efa714",
"versionType": "git"
},
{
"lessThan": "b6f179a653a934736c88d820fe0098c3c2532549",
"status": "affected",
"version": "2e8ca1078b14142db2ce51cbd18ff9971560046b",
"versionType": "git"
},
{
"lessThan": "1636d85dc139b07c0449308f2bb5e0c7a2e0da99",
"status": "affected",
"version": "bdf0bf73006ea8af9327cdb85cfdff4c23a5f966",
"versionType": "git"
},
{
"lessThan": "ab85765cbe3258b43dc6729af0e6ce3a87a133d8",
"status": "affected",
"version": "10dc959398175736e495f71c771f8641e1ca1907",
"versionType": "git"
},
{
"lessThan": "29bef9934b2521f787bb15dd1985d4c0d12ae02a",
"status": "affected",
"version": "10dc959398175736e495f71c771f8641e1ca1907",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.253",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.203",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.167",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.122",
"versionType": "semver"
},
{
"lessThan": "6.12.96",
"status": "affected",
"version": "6.12.68",
"versionType": "semver"
},
{
"lessThan": "6.18.39",
"status": "affected",
"version": "6.18.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"io_uring/io-wq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.19"
},
{
"lessThan": "6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.253",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.203",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.167",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.122",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.12.68",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.18.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item\n\ncommit 10dc95939817 (\"io_uring/io-wq: check IO_WQ_BIT_EXIT inside work\nrun loop\") fixed the obvious case where io_worker_handle_work() took one\nexit-bit snapshot before draining pending work, but the fix stops one\nlevel too early.\n\nio_worker_handle_work() now re-checks IO_WQ_BIT_EXIT in its outer work\nrun loop, yet it still snapshots that bit once before processing a whole\ndependent linked-work chain. If io_wq_exit_start() sets IO_WQ_BIT_EXIT\nafter the first linked item has started, the remaining linked items can\nstill reuse stale do_kill = false, skip IO_WQ_WORK_CANCEL, and continue\nrunning after exit has begun.\n\nMove the check further inside, so it covers linked items too. Note: this\nis a syzbot special as it loves setting up tons of slow linked work on\nweird devices like msr that take forever to read, and immediately close\nthe ring. Exit then takes a long time."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:25.440Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/14b7ecad2ec56699325180a744f4b19f046401bb"
},
{
"url": "https://git.kernel.org/stable/c/d179533c610e1b4c6aa436e3c1fd1b719d2c727c"
},
{
"url": "https://git.kernel.org/stable/c/6e2f51f3e06773c2ee98ad09738f0908b48f76f9"
},
{
"url": "https://git.kernel.org/stable/c/ea61b04e1d7242cb37f5ed2cc91cf21a493f6597"
},
{
"url": "https://git.kernel.org/stable/c/b6f179a653a934736c88d820fe0098c3c2532549"
},
{
"url": "https://git.kernel.org/stable/c/1636d85dc139b07c0449308f2bb5e0c7a2e0da99"
},
{
"url": "https://git.kernel.org/stable/c/ab85765cbe3258b43dc6729af0e6ce3a87a133d8"
},
{
"url": "https://git.kernel.org/stable/c/29bef9934b2521f787bb15dd1985d4c0d12ae02a"
}
],
"title": "io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64425",
"datePublished": "2026-07-25T08:51:03.036Z",
"dateReserved": "2026-07-19T15:36:31.787Z",
"dateUpdated": "2026-10-15T01:23:50.155Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80613 (GCVE-0-2026-80613)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
veth: fix NAPI leak in XDP enable error path
During XDP enablement in veth, if xdp_rxq_info_reg() or
xdp_rxq_info_reg_mem_model() fails, the driver rolls back the changes.
However, the rollback loop:
for (i--; i >= start; i--) {
decrements the loop index 'i' before the first iteration. This
correctly skips unregistering the rxq for the failed index 'i' (as
registration failed or was already cleaned up), but it also
erroneously skips calling netif_napi_deli() for rq[i].xdp_napi.
Since netif_napi_add() was already called for index 'i', this leaves
a dangling napi_struct in the device's napi_list. When the veth
device is later destroyed, the freed queue memory (which contains the
leaked NAPI structure) can be reused.
The subsequent device teardown iterates the NAPI list and
corrupts the reallocated memory, leading to UAF.
Fix this by explicitly deleting the NAPI association for the failed
index 'i' before rolling back the successfully configured queues.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 Version: b02e5a0ebb172c8276cea3151942aac681f7a4a6 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80613",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:18:46.870798Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:30.677Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fc51373345e7e6ea73da2650cb497309c50b077a",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "4559770b2a241344d762719e674241fcc8528f02",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "83090f5e7b54721d71875a6c224d2490b9e73050",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "d3eb258ad398cc9402bab3a5e730cd7c5b34efad",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "a9e6707322ef215d39d4655b176c094f45f0ab52",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "4bd2e5dbe62334aae1182d0f0d260f334a49d739",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
},
{
"lessThan": "6739027cb72da26890edd424c77080d187b2a92e",
"status": "affected",
"version": "b02e5a0ebb172c8276cea3151942aac681f7a4a6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nveth: fix NAPI leak in XDP enable error path\n\nDuring XDP enablement in veth, if xdp_rxq_info_reg() or\nxdp_rxq_info_reg_mem_model() fails, the driver rolls back the changes.\n\nHowever, the rollback loop:\n\tfor (i--; i \u003e= start; i--) {\n\ndecrements the loop index \u0027i\u0027 before the first iteration. This\ncorrectly skips unregistering the rxq for the failed index \u0027i\u0027 (as\nregistration failed or was already cleaned up), but it also\nerroneously skips calling netif_napi_deli() for rq[i].xdp_napi.\n\nSince netif_napi_add() was already called for index \u0027i\u0027, this leaves\na dangling napi_struct in the device\u0027s napi_list. When the veth\ndevice is later destroyed, the freed queue memory (which contains the\nleaked NAPI structure) can be reused.\n\nThe subsequent device teardown iterates the NAPI list and\ncorrupts the reallocated memory, leading to UAF.\n\nFix this by explicitly deleting the NAPI association for the failed\nindex \u0027i\u0027 before rolling back the successfully configured queues."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local veth/XDP setup syscalls (RTM_NEWLINK/RTM_SETLINK IFLA_XDP and bpf prog load/attach) that call veth_enable_xdp_range(); remote packets and network-facing services never execute this driver registration error-rollback path.\nAC:L - An attacker in a user+network namespace controls the full create/attach/delete sequence and can repeatedly drive the XDP enable error path then RTM_DELLINK teardown; once the NAPI leak occurs, netdev_napi_exit() deterministically dereferences the freed veth_rq-embedded napi_struct.\nPR:L - Triggering requires CAP_NET_ADMIN for veth lifecycle/XDP attach and CAP_BPF to load XDP programs; both are ns_capable() in the netns user_ns and obtainable by an unprivileged local user via unshare -Urn, not init-namespace root.\nUI:N - No victim interaction is required; the attacker performs all rtnetlink and BPF syscalls to create the veth pair, attempt XDP enablement, and delete the interface that triggers the latent UAF during netdev teardown.\nS:U - Impact is kernel heap corruption and privilege escalation within the same host security authority; it does not cross a VM, container runtime, or IOMMU boundary to affect a separate security domain.\nC:H - Leaked NAPI entries leave dangling pointers into freed veth_rq slabs; netdev_napi_exit() iterates napi_list and performs list_del_rcu/gro_cleanup on reallocated memory, a classic UAF enabling arbitrary kernel memory disclosure.\nI:H - The teardown UAF writes through stale napi_struct fields into attacker-influenced heap objects, providing memory corruption primitives that can be developed into arbitrary kernel write and code execution.\nA:H - UAF during free_netdev()/netdev_napi_exit() causes kernel oops/panic on veth deletion; on multi-tenant hosts allowing user namespaces this yields repeatable host-wide denial of service from a container tenant."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:21:21.618Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fc51373345e7e6ea73da2650cb497309c50b077a"
},
{
"url": "https://git.kernel.org/stable/c/4559770b2a241344d762719e674241fcc8528f02"
},
{
"url": "https://git.kernel.org/stable/c/83090f5e7b54721d71875a6c224d2490b9e73050"
},
{
"url": "https://git.kernel.org/stable/c/d3eb258ad398cc9402bab3a5e730cd7c5b34efad"
},
{
"url": "https://git.kernel.org/stable/c/a9e6707322ef215d39d4655b176c094f45f0ab52"
},
{
"url": "https://git.kernel.org/stable/c/4bd2e5dbe62334aae1182d0f0d260f334a49d739"
},
{
"url": "https://git.kernel.org/stable/c/6739027cb72da26890edd424c77080d187b2a92e"
}
],
"title": "veth: fix NAPI leak in XDP enable error path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80613",
"datePublished": "2026-08-28T06:48:35.127Z",
"dateReserved": "2026-08-26T14:34:25.773Z",
"dateUpdated": "2026-10-16T19:26:30.677Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74745 (GCVE-0-2026-74745)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
eth: bnxt: avoid deadlock when canceling IRQ affinity notifier
Unregistering IRQ affinity notifiers waits for the callback synchronously.
bnxt takes the netdev instance lock in the notifier (to restart the queue)
and cancels the work under the same lock. This may obviously deadlock.
Move the restart to the async service task. The queue restart isn't
super time sensitive. Store the new TPH tag, schedule the task.
Safely canceling the service task is already ironed out.
In bnxt_request_irq() the order of registering notifier, affinity and
initial TPH programming has to be inverted. I think it was racy
previously since user may trigger an update as soon as notifier
is installed.
There's a small known gap - if pcie_tph_get_cpu_st() fails at init
and the target tag is 0 we may miss programming the entry.
This does not seem worth fixing, the code has skip-on-failure
all over the place, anyway.
References
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74745",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:16:12.308884Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:23.647Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c",
"drivers/net/ethernet/broadcom/bnxt/bnxt.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d10e73572cda4af7487f82f58a7771f18cf61084",
"status": "affected",
"version": "c214410c47d6ec3128143370747d9e388bab21d7",
"versionType": "git"
},
{
"lessThan": "8b1118fc5a5d2cdc21cc07b5106921ad4f77c544",
"status": "affected",
"version": "c214410c47d6ec3128143370747d9e388bab21d7",
"versionType": "git"
},
{
"lessThan": "51e96fa31f7e7eac2cba8f854e24d36600cc040b",
"status": "affected",
"version": "c214410c47d6ec3128143370747d9e388bab21d7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c",
"drivers/net/ethernet/broadcom/bnxt/bnxt.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\neth: bnxt: avoid deadlock when canceling IRQ affinity notifier\n\nUnregistering IRQ affinity notifiers waits for the callback synchronously.\nbnxt takes the netdev instance lock in the notifier (to restart the queue)\nand cancels the work under the same lock. This may obviously deadlock.\n\nMove the restart to the async service task. The queue restart isn\u0027t\nsuper time sensitive. Store the new TPH tag, schedule the task.\nSafely canceling the service task is already ironed out.\n\nIn bnxt_request_irq() the order of registering notifier, affinity and\ninitial TPH programming has to be inverted. I think it was racy\npreviously since user may trigger an update as soon as notifier\nis installed.\n\nThere\u0027s a small known gap - if pcie_tph_get_cpu_st() fails at init\nand the target tag is 0 we may miss programming the entry.\nThis does not seem worth fixing, the code has skip-on-failure\nall over the place, anyway."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote traffic can stall bnxt TX queues and fire netdev watchdog bnxt_tx_timeout(), driving bnxt_reset()/bnxt_close_nic() to bnxt_free_irq() under RTNL and netdev_lock on internet-facing Broadcom NetXtreme cloud/DC servers without local syscall access.\nAC:L - On TPH-capable bnxt NICs the affinity notifier is auto-registered; an attacker can repeatedly provoke TX-timeout teardown while system irqbalance or CPU hotplug migrates MSIX affinity, controlling both deadlock sides without uncontrollable memory layout or rare victim state.\nPR:N - Exploitation requires only sending traffic that triggers netdev TX-timeout recovery on an already-up bnxt interface; concurrent IRQ affinity updates are performed by irqbalance/hotplug without attacker credentials, CAP_NET_ADMIN, or init-namespace root.\nUI:N - No victim interaction is needed beyond normal operation of a bnxt uplink on a host running irqbalance; the attacker only sends traffic to provoke watchdog reset coincident with kernel-driven affinity migration.\nS:U - The netdev_lock/workqueue inversion deadlocks NIC teardown inside the host kernel and does not cross VM, container, or IOMMU boundaries to another security authority.\nC:N - This is a pure locking deadlock between irq_set_affinity_notifier cancel_work_sync and bnxt_irq_affinity_notify; there is no memory corruption, use-after-free, out-of-bounds access, or information disclosure.\nI:N - The flaw does not modify attacker-controlled data or achieve code execution; it only wedges threads waiting on netdev_lock during IRQ notifier cancellation without altering kernel memory contents.\nA:H - Deadlock during bnxt_close_nic/bnxt_free_irq leaves RTNL and netdev_lock held indefinitely, freezing host-wide network reconfiguration and the affected interface until reboot, matching CVSS guidance for kernel deadlocks."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T10:09:29.045Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d10e73572cda4af7487f82f58a7771f18cf61084"
},
{
"url": "https://git.kernel.org/stable/c/8b1118fc5a5d2cdc21cc07b5106921ad4f77c544"
},
{
"url": "https://git.kernel.org/stable/c/51e96fa31f7e7eac2cba8f854e24d36600cc040b"
}
],
"title": "eth: bnxt: avoid deadlock when canceling IRQ affinity notifier",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74745",
"datePublished": "2026-08-26T14:36:55.372Z",
"dateReserved": "2026-08-15T05:44:03.931Z",
"dateUpdated": "2026-10-16T19:26:23.647Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89477 (GCVE-0-2026-89477)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix NULL deref on untransmitted RECONF completion
sctp_process_strreset_outreq(), sctp_process_strreset_addstrm_out() and
sctp_process_strreset_resp() complete a pending stream reconfiguration
request by stopping the reconf timer on the transport it was sent on:
t = asoc->strreset_chunk->transport;
if (timer_delete(&t->reconf_timer))
sctp_transport_put(t);
chunk->transport is assigned by __sctp_packet_append_chunk() when the
chunk is appended to an outbound packet, and sctp_outq_flush_ctrl() arms
the reconf timer at that same point. A request already published in
asoc->strreset_chunk but not yet transmitted has neither, so completing
it dereferences NULL.
Two ways to get there. sctp_send_asconf_del_ip() sets
asoc->src_out_of_asoc_ok without sending anything when the address being
removed is the association's last one, and sctp_outq_flush_ctrl() then
leaves every non-ASCONF control chunk queued; as only
sctp_process_asconf_ack() clears that flag, it persists. An unprivileged
process that removes such an address and then asks for a stream reset
panics the kernel from softirq. A peer needs neither ASCONF nor local
help: sctp_cmd_interpreter() uncorks the outqueue only once the whole
packet has been processed, so a reply built while walking a RECONF chunk
stays untransmitted for the rest of that walk, and one RECONF chunk
carrying [Incoming SSN Reset Request, Outgoing SSN Reset Request,
Response] -- or two RECONF chunks in one packet -- reaches the same
dereference.
KASAN: null-ptr-deref in range [0x00000000000001e8-0x00000000000001ef]
RIP: 0010:timer_delete+0x67/0x110
Call Trace:
<IRQ>
sctp_process_strreset_addstrm_out (net/sctp/stream.c:832)
sctp_sf_do_reconf (net/sctp/sm_statefuns.c:4212)
sctp_do_sm (net/sctp/sm_sideeffect.c:1172)
sctp_assoc_bh_rcv (net/sctp/associola.c:1044)
sctp_rcv (net/sctp/input.c:243)
ip_local_deliver (net/ipv4/ip_input.c:262)
process_backlog (net/core/dev.c:6680)
</IRQ>
A response can only acknowledge a request that was actually sent, so do
not match asoc->strreset_chunk while chunk->transport is NULL. Guarding
the lookup covers all three completion sites.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b Version: 81054476453640159149cb6704e834893e16736b |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89477",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:22.091820Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:39.087Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/stream.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "79ff751311e80fa0370007e46a79a6d601685e75",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "53141db979687eae7dc6d29414cefc77034f967e",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "68891125af5a5dfbca728809a16637a869bbe0df",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "b2d6d873b4dfb5b84194061c4b40a1cd85b92ca4",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "77ea60f2d24002c308f224db44a4542c466489af",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "25419f516ea84b1e7d3d55aae5215ac86ece0c66",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "0ee697defc0594f1da810ed75d9d643fb46f5318",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
},
{
"lessThan": "2db9bfa3e27bdea15e05ea70b56bad3d21e570ec",
"status": "affected",
"version": "81054476453640159149cb6704e834893e16736b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/stream.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix NULL deref on untransmitted RECONF completion\n\nsctp_process_strreset_outreq(), sctp_process_strreset_addstrm_out() and\nsctp_process_strreset_resp() complete a pending stream reconfiguration\nrequest by stopping the reconf timer on the transport it was sent on:\n\n\tt = asoc-\u003estrreset_chunk-\u003etransport;\n\tif (timer_delete(\u0026t-\u003ereconf_timer))\n\t\tsctp_transport_put(t);\n\nchunk-\u003etransport is assigned by __sctp_packet_append_chunk() when the\nchunk is appended to an outbound packet, and sctp_outq_flush_ctrl() arms\nthe reconf timer at that same point. A request already published in\nasoc-\u003estrreset_chunk but not yet transmitted has neither, so completing\nit dereferences NULL.\n\nTwo ways to get there. sctp_send_asconf_del_ip() sets\nasoc-\u003esrc_out_of_asoc_ok without sending anything when the address being\nremoved is the association\u0027s last one, and sctp_outq_flush_ctrl() then\nleaves every non-ASCONF control chunk queued; as only\nsctp_process_asconf_ack() clears that flag, it persists. An unprivileged\nprocess that removes such an address and then asks for a stream reset\npanics the kernel from softirq. A peer needs neither ASCONF nor local\nhelp: sctp_cmd_interpreter() uncorks the outqueue only once the whole\npacket has been processed, so a reply built while walking a RECONF chunk\nstays untransmitted for the rest of that walk, and one RECONF chunk\ncarrying [Incoming SSN Reset Request, Outgoing SSN Reset Request,\nResponse] -- or two RECONF chunks in one packet -- reaches the same\ndereference.\n\n KASAN: null-ptr-deref in range [0x00000000000001e8-0x00000000000001ef]\n RIP: 0010:timer_delete+0x67/0x110\n Call Trace:\n \u003cIRQ\u003e\n sctp_process_strreset_addstrm_out (net/sctp/stream.c:832)\n sctp_sf_do_reconf (net/sctp/sm_statefuns.c:4212)\n sctp_do_sm (net/sctp/sm_sideeffect.c:1172)\n sctp_assoc_bh_rcv (net/sctp/associola.c:1044)\n sctp_rcv (net/sctp/input.c:243)\n ip_local_deliver (net/ipv4/ip_input.c:262)\n process_backlog (net/core/dev.c:6680)\n \u003c/IRQ\u003e\n\nA response can only acknowledge a request that was actually sent, so do\nnot match asoc-\u003estrreset_chunk while chunk-\u003etransport is NULL. Guarding\nthe lookup covers all three completion sites."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote SCTP peer reaches the bug via sctp_rcv() -\u003e sctp_assoc_bh_rcv() -\u003e sctp_sf_do_reconf() on an established association; one RECONF carrying Incoming/Outgoing SSN Reset plus Response, or two bundled RECONF chunks, completes an untransmitted strreset_chunk. This is internet-facing SCTP (telecom/Diameter), not a local-only syscall.\nAC:L - The attacker fully controls the packet: sctp_cmd_interpreter() keeps the outqueue corked until the whole packet is processed, so the generated RECONF reply stays untransmitted and the follow-on parameter/chunk deterministically NULL-dereferences. request_seq is the peer\u0027s initial TSN from INIT/INIT-ACK; no race or uninfluenceable memory layout is required.\nPR:N - Triggering requires only a network-reachable established SCTP association; the attacker needs no local account, capabilities, or namespaces on the victim. RECONF is processed in ESTABLISHED without SCTP-AUTH by default (empty auth chunk list), so no extra credentials beyond being the SCTP peer.\nUI:N - Exploitation is driven entirely by inbound SCTP packets processed automatically in softirq on a listening or already-associated endpoint; no victim user action such as opening a file or mounting a filesystem is required.\nS:U - Impact is a kernel NULL dereference and oops in the host SCTP stack, remaining in the same kernel security authority; it is not a VM/guest-to-host escape, IOMMU bypass, or other cross-boundary breakout.\nC:N - The defect is a pure NULL pointer dereference of strreset_chunk-\u003etransport in timer_delete() (KASAN range around offset 0x1e8). No out-of-bounds read, UAF object reuse, or other disclosure primitive is involved.\nI:N - Only a NULL transport pointer is loaded and passed to timer_delete(); there is no write, type confusion, or memory corruption that could hijack control flow or modify kernel state beyond the crash.\nA:H - timer_delete() on the NULL transport oopses/panics the kernel from SCTP receive softirq (documented KASAN null-ptr-deref in sctp_process_strreset_*), which is a full availability loss and can be repeated at will by the peer."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:26.175Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/79ff751311e80fa0370007e46a79a6d601685e75"
},
{
"url": "https://git.kernel.org/stable/c/53141db979687eae7dc6d29414cefc77034f967e"
},
{
"url": "https://git.kernel.org/stable/c/68891125af5a5dfbca728809a16637a869bbe0df"
},
{
"url": "https://git.kernel.org/stable/c/b2d6d873b4dfb5b84194061c4b40a1cd85b92ca4"
},
{
"url": "https://git.kernel.org/stable/c/77ea60f2d24002c308f224db44a4542c466489af"
},
{
"url": "https://git.kernel.org/stable/c/25419f516ea84b1e7d3d55aae5215ac86ece0c66"
},
{
"url": "https://git.kernel.org/stable/c/0ee697defc0594f1da810ed75d9d643fb46f5318"
},
{
"url": "https://git.kernel.org/stable/c/2db9bfa3e27bdea15e05ea70b56bad3d21e570ec"
}
],
"title": "sctp: fix NULL deref on untransmitted RECONF completion",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89477",
"datePublished": "2026-09-11T19:43:33.851Z",
"dateReserved": "2026-09-11T19:38:34.711Z",
"dateUpdated": "2026-10-19T08:47:26.175Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64414 (GCVE-0-2026-64414)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-08-17 04:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: handle unreadable frags
sashiko reports:
When an skb with unreadable fragments (such as from devmem TCP, where
skb_frags_readable(skb) returns false) is processed by the u32 module,
skb_copy_bits() will safely return a negative error code [..]
xt_u32: bail out with hotdrop in this case.
gather_frags: return -1, just as if we had no fragment header.
nfnetlink_queue: restrict to the linear part.
nfnetlink_log: restrict to the linear part.
v2:
- skb_zerocopy helpers don't copy readable flag, i.e. nfnetlink_queue
is broken too
xt_u32 shouldn't return true if hotdrop was set.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/nf_conntrack_reasm.c",
"net/netfilter/nfnetlink_log.c",
"net/netfilter/nfnetlink_queue.c",
"net/netfilter/xt_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3b13e7635795394705920cca1e1db7e4ca2e334b",
"status": "affected",
"version": "65249feb6b3df9e17bab5911ee56fa7b0971e231",
"versionType": "git"
},
{
"lessThan": "fc5bfe63bacf8a3ae307b62b34206406ca733354",
"status": "affected",
"version": "65249feb6b3df9e17bab5911ee56fa7b0971e231",
"versionType": "git"
},
{
"lessThan": "57056be3ec12e7d9ecd20a60d4060f510e4f284c",
"status": "affected",
"version": "65249feb6b3df9e17bab5911ee56fa7b0971e231",
"versionType": "git"
},
{
"lessThan": "da5b58478a9c1b85608c9e40a3b8432d071b409e",
"status": "affected",
"version": "65249feb6b3df9e17bab5911ee56fa7b0971e231",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/nf_conntrack_reasm.c",
"net/netfilter/nfnetlink_log.c",
"net/netfilter/nfnetlink_queue.c",
"net/netfilter/xt_u32.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: handle unreadable frags\n\nsashiko reports:\n When an skb with unreadable fragments (such as from devmem TCP, where\n skb_frags_readable(skb) returns false) is processed by the u32 module,\n skb_copy_bits() will safely return a negative error code [..]\n\nxt_u32: bail out with hotdrop in this case.\ngather_frags: return -1, just as if we had no fragment header.\nnfnetlink_queue: restrict to the linear part.\nnfnetlink_log: restrict to the linear part.\n\nv2:\n - skb_zerocopy helpers don\u0027t copy readable flag, i.e. nfnetlink_queue\n is broken too\n xt_u32 shouldn\u0027t return true if hotdrop was set."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Unreadable skbs arise on the receive side of device-memory TCP, and a remote peer can send packets that traverse netfilter hooks into u32, NFLOG, NFQUEUE, or IPv6 conntrack defragmentation. No local access is required in a network-exposed devmem TCP deployment.\nAC:L - Once devmem/header-split RX and an affected netfilter path are active, a sufficiently long payload or crafted IPv6 extension/fragment layout reliably reaches unreadable fragments. There is no race or condition the attacker must win, and triggering packets can be sent repeatedly.\nPR:N - The triggering packets are processed before application authentication, so the remote peer needs no account or kernel capability. CAP_NET_ADMIN is required for the operator\u0027s device and netfilter configuration, not for the attacker sending packets.\nUI:N - Packet reception and netfilter processing occur automatically without any victim action after the service and policy are configured.\nS:U - The resulting failure affects the same host kernel and does not cross a VM, IOMMU, or other distinct security authority boundary.\nC:N - skb_copy_bits() rejects the unreadable fragments before accessing their contents, while the NFQUEUE flag-loss path reaches an invalid page mapping. No attacker-accessible information-disclosure primitive was identified.\nI:N - The vulnerability causes BUG or invalid-access paths but provides no out-of-bounds write, use-after-free, type confusion, or attacker-controlled data modification.\nA:H - The u32, NFLOG, and IPv6 paths execute BUG(), and the NFQUEUE path can dereference an invalid page during netlink recvmsg. These can produce a kernel oops or panic and can be triggered repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:13.439Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3b13e7635795394705920cca1e1db7e4ca2e334b"
},
{
"url": "https://git.kernel.org/stable/c/fc5bfe63bacf8a3ae307b62b34206406ca733354"
},
{
"url": "https://git.kernel.org/stable/c/57056be3ec12e7d9ecd20a60d4060f510e4f284c"
},
{
"url": "https://git.kernel.org/stable/c/da5b58478a9c1b85608c9e40a3b8432d071b409e"
}
],
"title": "netfilter: handle unreadable frags",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64414",
"datePublished": "2026-07-25T08:50:54.495Z",
"dateReserved": "2026-07-19T15:36:31.786Z",
"dateUpdated": "2026-08-17T04:55:13.439Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64173 (GCVE-0-2026-64173)
Vulnerability from cvelistv5
Published
2026-07-19 15:40
Modified
2026-07-19 15:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Do not call map->ops->elt_free() if elt_alloc() fails
In paths where tracing_map_elt_alloc() failed to allocate objects,
the map->ops->elt_alloc() call was never successful. In this case,
map->ops->elt_free() should not be called.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 Version: 2734b629525a9dae5bf217cbf0a9651da93d2108 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/tracing_map.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "49332e49ad5b20262cc719b03d4123b9362de701",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "b559a218eece132de0c58d444877b5627cbee524",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "b427e9f6d81c9341cba23ef92f860f99f830d91d",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "f383cff9fb382139980bac1bcd3f3f5d59f68435",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "1a150947f8480262a46c860f1acb9c6597ca7097",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "798183376d9d3e278a270ea0e75a5769c8f145d9",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "b6723339736320b2e1784258ad4490cec7aac11a",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
},
{
"lessThan": "8f0f5c4fb9df0e19a341e0c6ed8dc4fda9124f03",
"status": "affected",
"version": "2734b629525a9dae5bf217cbf0a9651da93d2108",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/tracing_map.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.142",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.92",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.142",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Do not call map-\u003eops-\u003eelt_free() if elt_alloc() fails\n\nIn paths where tracing_map_elt_alloc() failed to allocate objects,\nthe map-\u003eops-\u003eelt_alloc() call was never successful. In this case,\nmap-\u003eops-\u003eelt_free() should not be called."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:40:58.251Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/49332e49ad5b20262cc719b03d4123b9362de701"
},
{
"url": "https://git.kernel.org/stable/c/b559a218eece132de0c58d444877b5627cbee524"
},
{
"url": "https://git.kernel.org/stable/c/b427e9f6d81c9341cba23ef92f860f99f830d91d"
},
{
"url": "https://git.kernel.org/stable/c/f383cff9fb382139980bac1bcd3f3f5d59f68435"
},
{
"url": "https://git.kernel.org/stable/c/1a150947f8480262a46c860f1acb9c6597ca7097"
},
{
"url": "https://git.kernel.org/stable/c/798183376d9d3e278a270ea0e75a5769c8f145d9"
},
{
"url": "https://git.kernel.org/stable/c/b6723339736320b2e1784258ad4490cec7aac11a"
},
{
"url": "https://git.kernel.org/stable/c/8f0f5c4fb9df0e19a341e0c6ed8dc4fda9124f03"
}
],
"title": "tracing: Do not call map-\u003eops-\u003eelt_free() if elt_alloc() fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64173",
"datePublished": "2026-07-19T15:40:58.251Z",
"dateReserved": "2026-07-19T07:54:57.039Z",
"dateUpdated": "2026-07-19T15:40:58.251Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74267 (GCVE-0-2026-74267)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen
Whenever codel drops packets during peek, it calls
qdisc_tree_reduce_backlog. An issue arises because it calls
qdisc_tree_reduce_backlog before it reincrements the qlen. If qlen drops
to zero, but peek returns an skb, the parent's qlen_notify callback will
be executed even though codel still has 1 packet on the queue and, thus,
will mistakenly deactivate the parent's class causing issues like a wild
memory access when qfq has codel as a child:
[ 36.339843][ T370] Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI
[ 36.340408][ T370] KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127]
[ 36.340737][ T370] CPU: 2 UID: 0 PID: 370 Comm: tc Not tainted 7.1.0-rc5-00287-g66e13b626592 #87 PREEMPT(full)
[ 36.341113][ T370] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 36.341357][ T370] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:1029 (discriminator 2) include/linux/list.h:1043 (discriminator 2) net/sched/sch_qfq.c:1369 (discriminator 2) net/sched/sch_qfq.c:1395 (discriminator 2)) sch_qfq
[ 36.342221][ T370] RSP: 0018:ffff8881100ef370 EFLAGS: 00010216
[ 36.342422][ T370] RAX: 0000000000000000 RBX: ffff8881058a9568 RCX: dffffc0000000000
[ 36.342664][ T370] RDX: 1ffff11021064dc3 RSI: ffff888108326e00 RDI: dffffc0000000000
[ 36.342905][ T370] RBP: ffff8881058a8280 R08: dead000000000122 R09: 1bd5a00000000024
[ 36.343140][ T370] R10: fffffbfff2940329 R11: fffffbfff2940329 R12: 0000000000000000
[ 36.343383][ T370] R13: dead000000000100 R14: ffff8881058a9580 R15: ffff8881058a9578
[ 36.343631][ T370] FS: 00007fc04b0ca780(0000) GS:ffff888184fef000(0000) knlGS:0000000000000000
[ 36.343911][ T370] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 36.344116][ T370] CR2: 0000557c02c02000 CR3: 000000010e0ba000 CR4: 0000000000750ef0
[ 36.344359][ T370] PKRU: 55555554
[ 36.344481][ T370] Call Trace:
...
[ 36.345054][ T370] qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1487) sch_qfq
[ 36.345222][ T370] qdisc_reset (net/sched/sch_generic.c:1057)
[ 36.345503][ T370] __qdisc_destroy (net/sched/sch_generic.c:1096)
[ 36.345677][ T370] qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159)
[ 36.346335][ T370] tc_get_qdisc (net/sched/sch_api.c:1528 net/sched/sch_api.c:1556)
Fix this by only calling qdisc_tree_reduce_backlog in peek after the
qlen is restored.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cc71a757da78dd4aa1b4a9b19cb011833730ccf2 Version: eda741fe155ddf5ecd2dd3bfbd4fc3c0c7dbb450 Version: 829c49b6b2ff45b043739168fd1245e4e1a91a30 Version: 2f9761a94bae33d26e6a81b31b36e7d776d93dc1 Version: 4d55144b12e742404bb3f8fee6038bafbf45619d Version: 342debc12183b51773b3345ba267e9263bdfaaef Version: 342debc12183b51773b3345ba267e9263bdfaaef Version: 342debc12183b51773b3345ba267e9263bdfaaef Version: 7a742a9506849d1c1aa71e36c89855ceddc7d58e Version: e73c838c80dccb9e4f19becc11d9f3cb4a27d483 Version: a57fe60ef4cf96bfbb6b58397ec28bdb5a5c6b31 Version: 5.10.241 ≤ Version: 5.15.190 ≤ Version: 6.1.135 ≤ Version: 6.6.88 ≤ Version: 6.12.24 ≤ Version: 5.4.297 ≤ Version: 6.13.12 ≤ Version: 6.14.3 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74267",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:44.190573Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:28.845Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_codel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bb9cfd874ee884117b33e92a002b9a45b48202f4",
"status": "affected",
"version": "cc71a757da78dd4aa1b4a9b19cb011833730ccf2",
"versionType": "git"
},
{
"lessThan": "7a05af7f58566682b73578b72ca8e53a268c43bd",
"status": "affected",
"version": "eda741fe155ddf5ecd2dd3bfbd4fc3c0c7dbb450",
"versionType": "git"
},
{
"lessThan": "eba49fd85995a3851c597fa2d214f8d21736e1d8",
"status": "affected",
"version": "829c49b6b2ff45b043739168fd1245e4e1a91a30",
"versionType": "git"
},
{
"lessThan": "e8c6dbadf139cb14ea6ed14add6ed6e88504dedd",
"status": "affected",
"version": "2f9761a94bae33d26e6a81b31b36e7d776d93dc1",
"versionType": "git"
},
{
"lessThan": "e4615aa6bb7802944ae790cb4b3ef8c1b7491af3",
"status": "affected",
"version": "4d55144b12e742404bb3f8fee6038bafbf45619d",
"versionType": "git"
},
{
"lessThan": "755108bb7a5083e911294c416cfea605dc75632f",
"status": "affected",
"version": "342debc12183b51773b3345ba267e9263bdfaaef",
"versionType": "git"
},
{
"lessThan": "91e0a793a72374c20ab31a40ccec21373e82e973",
"status": "affected",
"version": "342debc12183b51773b3345ba267e9263bdfaaef",
"versionType": "git"
},
{
"lessThan": "52f1da34c9f4d5bdc1e8b44242da5c7ba8db85f3",
"status": "affected",
"version": "342debc12183b51773b3345ba267e9263bdfaaef",
"versionType": "git"
},
{
"status": "affected",
"version": "7a742a9506849d1c1aa71e36c89855ceddc7d58e",
"versionType": "git"
},
{
"status": "affected",
"version": "e73c838c80dccb9e4f19becc11d9f3cb4a27d483",
"versionType": "git"
},
{
"status": "affected",
"version": "a57fe60ef4cf96bfbb6b58397ec28bdb5a5c6b31",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.241",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.190",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.135",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.88",
"versionType": "semver"
},
{
"lessThan": "6.12.97",
"status": "affected",
"version": "6.12.24",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.297",
"versionType": "semver"
},
{
"lessThan": "6.14",
"status": "affected",
"version": "6.13.12",
"versionType": "semver"
},
{
"lessThan": "6.15",
"status": "affected",
"version": "6.14.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_codel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.241",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.190",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.135",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.88",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.12.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.297",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.13.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.14.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen\n\nWhenever codel drops packets during peek, it calls\nqdisc_tree_reduce_backlog. An issue arises because it calls\nqdisc_tree_reduce_backlog before it reincrements the qlen. If qlen drops\nto zero, but peek returns an skb, the parent\u0027s qlen_notify callback will\nbe executed even though codel still has 1 packet on the queue and, thus,\nwill mistakenly deactivate the parent\u0027s class causing issues like a wild\nmemory access when qfq has codel as a child:\n\n[ 36.339843][ T370] Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI\n[ 36.340408][ T370] KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127]\n[ 36.340737][ T370] CPU: 2 UID: 0 PID: 370 Comm: tc Not tainted 7.1.0-rc5-00287-g66e13b626592 #87 PREEMPT(full)\n[ 36.341113][ T370] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011\n[ 36.341357][ T370] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:1029 (discriminator 2) include/linux/list.h:1043 (discriminator 2) net/sched/sch_qfq.c:1369 (discriminator 2) net/sched/sch_qfq.c:1395 (discriminator 2)) sch_qfq\n[ 36.342221][ T370] RSP: 0018:ffff8881100ef370 EFLAGS: 00010216\n[ 36.342422][ T370] RAX: 0000000000000000 RBX: ffff8881058a9568 RCX: dffffc0000000000\n[ 36.342664][ T370] RDX: 1ffff11021064dc3 RSI: ffff888108326e00 RDI: dffffc0000000000\n[ 36.342905][ T370] RBP: ffff8881058a8280 R08: dead000000000122 R09: 1bd5a00000000024\n[ 36.343140][ T370] R10: fffffbfff2940329 R11: fffffbfff2940329 R12: 0000000000000000\n[ 36.343383][ T370] R13: dead000000000100 R14: ffff8881058a9580 R15: ffff8881058a9578\n[ 36.343631][ T370] FS: 00007fc04b0ca780(0000) GS:ffff888184fef000(0000) knlGS:0000000000000000\n[ 36.343911][ T370] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 36.344116][ T370] CR2: 0000557c02c02000 CR3: 000000010e0ba000 CR4: 0000000000750ef0\n[ 36.344359][ T370] PKRU: 55555554\n[ 36.344481][ T370] Call Trace:\n...\n[ 36.345054][ T370] qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1487) sch_qfq\n[ 36.345222][ T370] qdisc_reset (net/sched/sch_generic.c:1057)\n[ 36.345503][ T370] __qdisc_destroy (net/sched/sch_generic.c:1096)\n[ 36.345677][ T370] qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159)\n[ 36.346335][ T370] tc_get_qdisc (net/sched/sch_api.c:1528 net/sched/sch_api.c:1556)\n\nFix this by only calling qdisc_tree_reduce_backlog in peek after the\nqlen is restored."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote senders reach the bug when packets traverse a QFQ (or other qlen_notify parent) with a codel child: qfq_enqueue() and qfq_dequeue() call the child peek handler during __dev_queue_xmit scheduling, and CoDel can drop there before qlen is restored.\nAC:L - The attacker controls traffic rate, packet size, and CoDel drop behavior to force drops during peek while qlen reads zero; this is a deterministic logic bug, not a race on uncontrollable kernel state or a rare compile-time configuration.\nPR:N - On systems where an operator has already deployed a parent qdisc with a codel child, any remote party that can send packets into the shaped class can trigger the faulty peek/drop path with no account or capabilities on the victim host.\nUI:N - Exploitation requires only attacker-generated traffic (and, for full crash during teardown, attacker-initiated tc reconfiguration); no independent action by another user or administrator is needed at trigger time.\nS:U - The flaw corrupts in-kernel QFQ/CoDel scheduler structures and memory within the same kernel security domain; it does not cross VM, container, or IOMMU authority boundaries.\nC:H - False qlen_notify prematurely deactivates QFQ aggregates while packets remain; the fix commit shows KASAN wild-memory-access on poisoned aggregate list nodes in qfq_deactivate_agg(), giving attacker-influenced reads from freed/corrupted scheduler memory.\nI:H - Corrupted aggregate/class linkage leads to invalid hlist operations and inconsistent scheduler state that can be steered with heap layout control, yielding memory corruption primitives usable for arbitrary kernel writes or control-flow hijack.\nA:H - The published oops is a general protection fault from corrupted QFQ state during qdisc teardown, and the same corruption during live packet scheduling can reliably kernel-panic or hang affected hosts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:13.330Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bb9cfd874ee884117b33e92a002b9a45b48202f4"
},
{
"url": "https://git.kernel.org/stable/c/7a05af7f58566682b73578b72ca8e53a268c43bd"
},
{
"url": "https://git.kernel.org/stable/c/eba49fd85995a3851c597fa2d214f8d21736e1d8"
},
{
"url": "https://git.kernel.org/stable/c/e8c6dbadf139cb14ea6ed14add6ed6e88504dedd"
},
{
"url": "https://git.kernel.org/stable/c/e4615aa6bb7802944ae790cb4b3ef8c1b7491af3"
},
{
"url": "https://git.kernel.org/stable/c/755108bb7a5083e911294c416cfea605dc75632f"
},
{
"url": "https://git.kernel.org/stable/c/91e0a793a72374c20ab31a40ccec21373e82e973"
},
{
"url": "https://git.kernel.org/stable/c/52f1da34c9f4d5bdc1e8b44242da5c7ba8db85f3"
}
],
"title": "net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74267",
"datePublished": "2026-08-15T05:57:42.263Z",
"dateReserved": "2026-08-15T05:44:03.878Z",
"dateUpdated": "2026-10-16T18:55:28.845Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72052 (GCVE-0-2026-72052)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ip6_gre: require CAP_NET_ADMIN in the device netns for changelink
ip6gre_changelink() and ip6erspan_changelink() operate on at most two
netns, dev_net(dev) and the tunnel link netns t->net. They differ once
the device is created in or moved to a netns other than the one the
request runs in. The rtnl changelink path checks CAP_NET_ADMIN only
against dev_net(dev), so a caller privileged there but not in t->net can
rewrite a tunnel that lives in t->net.
Gate both ops on rtnl_dev_link_net_capable() at their top, before any
attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: 690afc165bb314354667f67157c1a1aea7dc797a Version: d0201d2405dac8d9b16773e97709925e397552d0 Version: 7943bb0f06365cf5e32f3cf8a6b29eeae981fb8a Version: 4.19.100 ≤ Version: 5.4.16 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72052",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:53.707122Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:24.924Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_gre.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "129f8939e5af683cec3a1a5edcb40a64636ad81e",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "e3724dedf57761c6de52f4d604ec74f66fd61611",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "220162c9fedbe992da70d70f50a10da4f45f914c",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "1d4d8ee002083ca4ead5353662bf8362428af57f",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "0caa9f348f8b5356900de77b0bb89a697c4aff20",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "03d8843b143ebbbfaf48511922abc6e886575a61",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "c38c8b0db3c65b597e7ece317b6cb59de3d15e69",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"lessThan": "f00a50876d2818bd6dc86fa98b3ef360884c53c8",
"status": "affected",
"version": "690afc165bb314354667f67157c1a1aea7dc797a",
"versionType": "git"
},
{
"status": "affected",
"version": "d0201d2405dac8d9b16773e97709925e397552d0",
"versionType": "git"
},
{
"status": "affected",
"version": "7943bb0f06365cf5e32f3cf8a6b29eeae981fb8a",
"versionType": "git"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.100",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.16",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_gre.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"lessThan": "5.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.100",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ip6_gre: require CAP_NET_ADMIN in the device netns for changelink\n\nip6gre_changelink() and ip6erspan_changelink() operate on at most two\nnetns, dev_net(dev) and the tunnel link netns t-\u003enet. They differ once\nthe device is created in or moved to a netns other than the one the\nrequest runs in. The rtnl changelink path checks CAP_NET_ADMIN only\nagainst dev_net(dev), so a caller privileged there but not in t-\u003enet can\nrewrite a tunnel that lives in t-\u003enet.\n\nGate both ops on rtnl_dev_link_net_capable() at their top, before any\nattribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via rtnetlink (RTM_NEWLINK changelink) on a local NETLINK_ROUTE socket, not by processing attacker-controlled network packets; kernel guidance classifies rtnetlink control-plane bugs as Local.\nAC:L - With CAP_NET_ADMIN in dev_net(dev) (e.g. via user namespaces), an attacker can move a cross-netns ip6gre device or use an existing one, then issue a single deterministic changelink; no uncontrollable races or rare kernel configs are required.\nPR:L - Exploitation requires CAP_NET_ADMIN in dev_net(dev) to issue RTM_NEWLINK changelink; this capability is available to unprivileged users creating user+network namespaces (unshare -Urn), not only real init-namespace root.\nUI:N - No victim interaction is needed once the attacker has a suitable ip6gre/ip6gretap/ip6erspan netdev handle and issues rtnetlink changelink requests to rewrite tunnel parameters.\nS:C - The flaw crosses the network-namespace security boundary: a caller authorized only in dev_net(dev) can modify ip6gre state and routing tables in t-\u003enet (another tenant/host namespace), violating netns isolation relied on by containers and Kubernetes.\nC:H - changelink can point tunnels/ERSPAN mirroring at attacker-chosen IPv6 endpoints and keys, enabling interception and collection of traffic that other namespaces expect to be privately encapsulated or mirrored only to trusted collectors.\nI:H - The attacker can arbitrarily rewrite tunnel link parameters (local/remote addresses, keys, encap, fwmark, ERSPAN index) and rehash tunnel state in the victim link netns, redirecting or corrupting network paths outside their authorization.\nA:H - Rewriting or unlinking tunnel entries can immediately break GRE/ERSPAN connectivity depended on for production links, causing sustained network outage or repeated loss of availability without kernel interaction from the victim."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:48.851Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/129f8939e5af683cec3a1a5edcb40a64636ad81e"
},
{
"url": "https://git.kernel.org/stable/c/e3724dedf57761c6de52f4d604ec74f66fd61611"
},
{
"url": "https://git.kernel.org/stable/c/220162c9fedbe992da70d70f50a10da4f45f914c"
},
{
"url": "https://git.kernel.org/stable/c/1d4d8ee002083ca4ead5353662bf8362428af57f"
},
{
"url": "https://git.kernel.org/stable/c/0caa9f348f8b5356900de77b0bb89a697c4aff20"
},
{
"url": "https://git.kernel.org/stable/c/03d8843b143ebbbfaf48511922abc6e886575a61"
},
{
"url": "https://git.kernel.org/stable/c/c38c8b0db3c65b597e7ece317b6cb59de3d15e69"
},
{
"url": "https://git.kernel.org/stable/c/f00a50876d2818bd6dc86fa98b3ef360884c53c8"
}
],
"title": "net: ip6_gre: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72052",
"datePublished": "2026-08-15T05:52:09.194Z",
"dateReserved": "2026-08-09T03:40:39.902Z",
"dateUpdated": "2026-10-19T21:19:24.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74737 (GCVE-0-2026-74737)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-08-27 05:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG
On the packet reception path, the ID of the MAC Port on which the packet
was received, is embedded in the RX DMA Descriptor's metadata. The ID is
extracted using the helper function cppi5_desc_get_tags_ids() which fills
in the 16-bit Source Tag into the 'port_id' variable. However, it is only
the lower 8-bits of the 16-bit Source Tag that represent the MAC Port ID,
while the upper 8-bits are Hardware-Reserved and carry an arbitrary value.
With the existing logic, sporadic kernel crash is observed due to the
subsequent driver code accessing out-of-bound memory because of an invalid
port_id.
Hence, fix the port_id extraction logic to use only the lower 8-bits of the
Source Tag as the MAC Port ID.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 Version: 93a76530316a3d8cc2d82c3deca48424fee92100 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/ti/am65-cpsw-nuss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "14fc40bf28390e0ebee6a072457c36b82c614100",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "1c0e35ce761131f82062222779d8574849790892",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "9a220225efd6f58350bbb53fe70bdec08519267f",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "551688b410d3fb0dae7739724422f268cd9446d6",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "46a8e084a159e638ac2728e96980b65d752d65fd",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "72e4e3d7efc3b7d85f86abbe8b94f8e45074abe3",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "914e0100df3435bd14d09f397238e891cf9b7dce",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
},
{
"lessThan": "36a05d2820077bb3955acb8111e1041d39148037",
"status": "affected",
"version": "93a76530316a3d8cc2d82c3deca48424fee92100",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/ti/am65-cpsw-nuss.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.7"
},
{
"lessThan": "5.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG\n\nOn the packet reception path, the ID of the MAC Port on which the packet\nwas received, is embedded in the RX DMA Descriptor\u0027s metadata. The ID is\nextracted using the helper function cppi5_desc_get_tags_ids() which fills\nin the 16-bit Source Tag into the \u0027port_id\u0027 variable. However, it is only\nthe lower 8-bits of the 16-bit Source Tag that represent the MAC Port ID,\nwhile the upper 8-bits are Hardware-Reserved and carry an arbitrary value.\nWith the existing logic, sporadic kernel crash is observed due to the\nsubsequent driver code accessing out-of-bound memory because of an invalid\nport_id.\n\nHence, fix the port_id extraction logic to use only the lower 8-bits of the\nSource Tag as the MAC Port ID."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in am65_cpsw_nuss_rx_packets() on the NAPI RX path for TI AM65/J721E CPSW Ethernet; any remote host that can deliver L2 frames to a configured port triggers RX DMA completion and this handler without local access.\nAC:L - An attacker only needs to send Ethernet traffic to drive RX completions; although hardware upper source-tag bits make hits sporadic, sustained transmission reliably provokes the out-of-bounds port lookup without races or victim-specific state.\nPR:N - Exploitation requires no Linux credentials or capabilities\u2014the vulnerable code runs in kernel RX softirq before socket demux or authentication, reachable by any entity that can send frames to the NIC.\nUI:N - Packet reception and NAPI polling are automatic once the interface is up; no victim mount, click, or other local action is needed beyond normal network connectivity to the device.\nS:U - Impact is kernel memory corruption and crash within the host kernel security domain; there is no VM, container, or IOMMU boundary crossover typical of Scope Changed scenarios.\nC:H - Invalid port_id indexes far past the kmalloc\u0027d ports[] array (max eight) via am65_common_get_port(), causing out-of-bounds reads of adjacent kernel objects such as ndev pointers, xdp_prog, and other port fields.\nI:H - The same out-of-bounds port pointer drives writes including ndev stats increments, XDP processing, and skb association on attacker-supplied packet buffers, yielding a memory corruption primitive steerable toward kernel modification.\nA:H - The fix commit documents sporadic kernel oops/panics from out-of-bounds access when hardware source-tag upper bits inflate port_id beyond the small allocated ports array."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:00:59.630Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/14fc40bf28390e0ebee6a072457c36b82c614100"
},
{
"url": "https://git.kernel.org/stable/c/1c0e35ce761131f82062222779d8574849790892"
},
{
"url": "https://git.kernel.org/stable/c/9a220225efd6f58350bbb53fe70bdec08519267f"
},
{
"url": "https://git.kernel.org/stable/c/551688b410d3fb0dae7739724422f268cd9446d6"
},
{
"url": "https://git.kernel.org/stable/c/46a8e084a159e638ac2728e96980b65d752d65fd"
},
{
"url": "https://git.kernel.org/stable/c/72e4e3d7efc3b7d85f86abbe8b94f8e45074abe3"
},
{
"url": "https://git.kernel.org/stable/c/914e0100df3435bd14d09f397238e891cf9b7dce"
},
{
"url": "https://git.kernel.org/stable/c/36a05d2820077bb3955acb8111e1041d39148037"
}
],
"title": "net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74737",
"datePublished": "2026-08-26T14:36:50.544Z",
"dateReserved": "2026-08-15T05:44:03.930Z",
"dateUpdated": "2026-08-27T05:00:59.630Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74492 (GCVE-0-2026-74492)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: do not update comments from kernel-side hash adds
mtype_resize() copies comment pointers with memcpy(), not the comment
objects themselves. During the window after an entry has been copied but
before the table swap and backlog replay, the old table is still
published for packet-side updates while the replacement-table entry
already holds the same ip_set_comment_rcu pointer.
If xt_SET --add-set ... --exist hits that old entry in this window,
mtype_add() calls ip_set_init_comment() even though packet-side adds
carry no comment payload. That call frees the shared comment through the
old entry, so the replacement-table entry now holds a stale pointer.
When the queued add is replayed on the new table, mtype_add() calls
ip_set_init_comment() again and strlen() dereferences the stale pointer.
Fix this in mtype_add() by skipping ip_set_init_comment() when
ext->target marks a packet-side add. Userspace adds still update
comments, while packet-side adds can no longer free comment storage
shared with a resize copy.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: 5dd9488ae41070b69d2f4acb580f77db5705f9ca Version: a469bab3386aebff33c59506f3a95e35b91118fd Version: 5.4.24 ≤ Version: 5.5.8 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74492",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:58:08.112220Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:49.918Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6f13f4d52d06986c18f12e8bffaab944dd27ceab",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "f9d6cabff1fca010562dcdb0d22b296bdca3ba5a",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "16bfa7be2d76ca1e0aacfa363482e1bf8ab5042a",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "661ff9c0cfbe07f8eed920dde9f7781491738207",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "c710e9bf38e4e71a8db85d26a0f70c0674664207",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "4ae701848e4ba9e9713375fb7d82218cbd309da2",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "77dbb248a5cc7a5270cd37bbb0b635bf059a872a",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "f30415929be8aeb002d557c8d3f7ab2d2188003a",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"status": "affected",
"version": "5dd9488ae41070b69d2f4acb580f77db5705f9ca",
"versionType": "git"
},
{
"status": "affected",
"version": "a469bab3386aebff33c59506f3a95e35b91118fd",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.24",
"versionType": "semver"
},
{
"lessThan": "5.6",
"status": "affected",
"version": "5.5.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: do not update comments from kernel-side hash adds\n\nmtype_resize() copies comment pointers with memcpy(), not the comment\nobjects themselves. During the window after an entry has been copied but\nbefore the table swap and backlog replay, the old table is still\npublished for packet-side updates while the replacement-table entry\nalready holds the same ip_set_comment_rcu pointer.\n\nIf xt_SET --add-set ... --exist hits that old entry in this window,\nmtype_add() calls ip_set_init_comment() even though packet-side adds\ncarry no comment payload. That call frees the shared comment through the\nold entry, so the replacement-table entry now holds a stale pointer.\nWhen the queued add is replayed on the new table, mtype_add() calls\nip_set_init_comment() again and strlen() dereferences the stale pointer.\n\nFix this in mtype_add() by skipping ip_set_init_comment() when\next-\u003etarget marks a packet-side add. Userspace adds still update\ncomments, while packet-side adds can no longer free comment storage\nshared with a resize copy."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached via the netfilter xt_SET packet path (set_target_* -\u003e ip_set_add -\u003e kadt -\u003e mtype_add) during skb processing in iptables hooks; kernel CNA guidance treats netfilter/ipset as Local even when triggering packets arrive from the network.\nAC:L - An attacker can drive both sides of the resize race by filling a comment-enabled hash set and concurrently sending packets that hit SET --add-set --exist while mtype_resize() copies entries, making the shared-comment UAF window repeatable rather than dependent on uncontrollable timing.\nPR:N - Exploitation requires only sending traffic that matches an already-installed SET --exist rule on a comment-enabled ipset during resize; no local account or CAP_NET_ADMIN is needed, though unprivileged user namespaces can also obtain CAP_NET_ADMIN to configure the full attack chain.\nUI:N - Triggering is fully automatic through netfilter packet handling once the vulnerable ipset/iptables configuration exists; the attacker does not need the victim to click, mount, or perform any deliberate action beyond ordinary packet delivery.\nS:U - The flaw corrupts kernel heap memory and can yield host privilege escalation, but it does not cross a distinct security authority such as a VM/host, container/host, or IOMMU boundary; impact remains within the same kernel security domain.\nC:H - Packet-side mtype_add() frees a shared ip_set_comment_rcu during resize, leaving duplicate entries with dangling pointers; backlog replay calls ip_set_init_comment() and strlen() on freed kmalloc memory, a classic UAF that can disclose arbitrary kernel data with heap grooming.\nI:H - The UAF over RCU-freed comment objects lets an attacker reclaim and control freed slab memory, providing a standard path to arbitrary kernel writes, metadata corruption, and control-flow hijack rather than a bounded or crash-only integrity effect.\nA:H - Stale comment pointer dereference during resize backlog replay can immediately kernel-oops/panic the host, and the underlying UAF heap corruption can crash or hang the system even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:48.078Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6f13f4d52d06986c18f12e8bffaab944dd27ceab"
},
{
"url": "https://git.kernel.org/stable/c/f9d6cabff1fca010562dcdb0d22b296bdca3ba5a"
},
{
"url": "https://git.kernel.org/stable/c/16bfa7be2d76ca1e0aacfa363482e1bf8ab5042a"
},
{
"url": "https://git.kernel.org/stable/c/661ff9c0cfbe07f8eed920dde9f7781491738207"
},
{
"url": "https://git.kernel.org/stable/c/c710e9bf38e4e71a8db85d26a0f70c0674664207"
},
{
"url": "https://git.kernel.org/stable/c/4ae701848e4ba9e9713375fb7d82218cbd309da2"
},
{
"url": "https://git.kernel.org/stable/c/77dbb248a5cc7a5270cd37bbb0b635bf059a872a"
},
{
"url": "https://git.kernel.org/stable/c/f30415929be8aeb002d557c8d3f7ab2d2188003a"
}
],
"title": "netfilter: ipset: do not update comments from kernel-side hash adds",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74492",
"datePublished": "2026-08-15T12:27:21.365Z",
"dateReserved": "2026-08-15T05:44:03.906Z",
"dateUpdated": "2026-10-16T19:05:49.918Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90047 (GCVE-0-2026-90047)
Vulnerability from cvelistv5
Published
2026-09-16 10:33
Modified
2026-10-19 08:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Don't hand out the flat CCS storage as usable VRAM
get_flat_ccs_offset() reads the base of the flat CCS storage from the
hardware, scales it by the number of enabled L3 nodes, and rounds the
result up to 128K. Everything below that offset is then handed to the
VRAM allocator as usable memory.
Rounding a limit that means "usable memory ends here" upwards publishes
whatever lies between the real base and the rounded one as free memory,
and that memory belongs to the compression hardware. The scaled value
has no reason to be 128K aligned, and on a Battlemage G21 with 16 GiB it
is not:
flat CCS base: raw 0x3fafff800, rounded 0x3fb000000
so the last 2 KiB of page 0x3fafff000 is CCS storage, in the allocator's
pool. Whatever is allocated there gets that tail overwritten by the
compression hardware, which needs no page-table entry, no buffer object
and no GPU submission to do it, and does it before userspace exists.
On this machine a Mesa VM's level-3 page table landed on that page on
every cold boot. It lost the entry covering the compositor's
batch-buffer heap, so the compositor's first submission faulted fetching
its batch and gdm restarted it forever: a black screen on an otherwise
working machine. Restarting gdm cleared it because the next VM's page
tables were allocated somewhere else.
Round down instead, to the page size the allocator works in. On this
machine that excludes exactly one page.
Reading the reserved page afterwards shows what had been writing it:
[369] 0xcccc000000000000
[371] 0xcc77000000000000
[373] 0xcccc000000000000
[375] 0xcc77000000000000
compression metadata, two bytes per sixteen, sitting where the driver
used to hand out memory.
The assertion that should have caught this compares the offset against
GSMBASE - ccs_size for equality. That value is 128K aligned, so it
agrees with the rounded-up offset precisely when the base is not
aligned - the check cannot fail in the case it exists to catch, and is
compiled out unless CONFIG_DRM_XE_DEBUG is set. Replace it with one
that can fail: CCS storage must not run into GSM.
[ And this was a debug session from hell, enormously helped by an AI
doing much of the grunt-work.
I'd like to call it my tireless helper, but the AI several times
stated flat out that this was impossible and unsolvable and that we
should just write a report about it.
I suspect those things have been trained by people who may not be
quite as stubborn as I am.
But while the AI was ready to give up several times, it did keep
adding debug code and analyzing it faithfully when I pushed. So credit
where credit is due and I let the AI write the commit message above.
This is basically a one-liner fixing a bogus "round_up()" to a
"round_down()", but there were 24 patches adding more and more debug
information to this, and 18 kernel boot to finally narrow it down to
this. - Linus ]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_vram.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c96477e0cabf55bfbdf078078e9de1c8024f8060",
"status": "affected",
"version": "37173392741c425191b959acb3adf70c9a4610c0",
"versionType": "git"
},
{
"lessThan": "348c3db4f1520d36764ac8cae2492f50599714f6",
"status": "affected",
"version": "37173392741c425191b959acb3adf70c9a4610c0",
"versionType": "git"
},
{
"lessThan": "818bebeb63dd6bf5f4e07e145f6cdbace520a34c",
"status": "affected",
"version": "37173392741c425191b959acb3adf70c9a4610c0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_vram.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: Don\u0027t hand out the flat CCS storage as usable VRAM\n\nget_flat_ccs_offset() reads the base of the flat CCS storage from the\nhardware, scales it by the number of enabled L3 nodes, and rounds the\nresult up to 128K. Everything below that offset is then handed to the\nVRAM allocator as usable memory.\n\nRounding a limit that means \"usable memory ends here\" upwards publishes\nwhatever lies between the real base and the rounded one as free memory,\nand that memory belongs to the compression hardware. The scaled value\nhas no reason to be 128K aligned, and on a Battlemage G21 with 16 GiB it\nis not:\n\n\tflat CCS base: raw 0x3fafff800, rounded 0x3fb000000\n\nso the last 2 KiB of page 0x3fafff000 is CCS storage, in the allocator\u0027s\npool. Whatever is allocated there gets that tail overwritten by the\ncompression hardware, which needs no page-table entry, no buffer object\nand no GPU submission to do it, and does it before userspace exists.\n\nOn this machine a Mesa VM\u0027s level-3 page table landed on that page on\nevery cold boot. It lost the entry covering the compositor\u0027s\nbatch-buffer heap, so the compositor\u0027s first submission faulted fetching\nits batch and gdm restarted it forever: a black screen on an otherwise\nworking machine. Restarting gdm cleared it because the next VM\u0027s page\ntables were allocated somewhere else.\n\nRound down instead, to the page size the allocator works in. On this\nmachine that excludes exactly one page.\n\nReading the reserved page afterwards shows what had been writing it:\n\n\t[369] 0xcccc000000000000\n\t[371] 0xcc77000000000000\n\t[373] 0xcccc000000000000\n\t[375] 0xcc77000000000000\n\ncompression metadata, two bytes per sixteen, sitting where the driver\nused to hand out memory.\n\nThe assertion that should have caught this compares the offset against\nGSMBASE - ccs_size for equality. That value is 128K aligned, so it\nagrees with the rounded-up offset precisely when the base is not\naligned - the check cannot fail in the case it exists to catch, and is\ncompiled out unless CONFIG_DRM_XE_DEBUG is set. Replace it with one\nthat can fail: CCS storage must not run into GSM.\n\n[ And this was a debug session from hell, enormously helped by an AI\n doing much of the grunt-work.\n\n I\u0027d like to call it my tireless helper, but the AI several times\n stated flat out that this was impossible and unsolvable and that we\n should just write a report about it.\n\n I suspect those things have been trained by people who may not be\n quite as stubborn as I am.\n\n But while the AI was ready to give up several times, it did keep\n adding debug code and analyzing it faithfully when I pushed. So credit\n where credit is due and I let the AI write the commit message above.\n\n This is basically a one-liner fixing a bogus \"round_up()\" to a\n \"round_down()\", but there were 24 patches adding more and more debug\n information to this, and 18 kernel boot to finally narrow it down to\n this. - Linus ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The oversized VRAM pool is used through local DRM render-node ioctls (DRM_IOCTL_XE_GEM_CREATE, DRM_IOCTL_XE_VM_CREATE/BIND) on /dev/dri/renderD*; xe_vram_probe() only runs at PCI driver init. There is no network, Bluetooth, or USB path into this Xe VRAM accounting code.\nAC:L - On affected Xe2 discrete GPUs the flat CCS base is not 128K-aligned, so one extra 4K CCS page is always in the TTM pool. 4K GPU page-table BOs land on that leftover fragment (every cold boot on the reported hardware), and CCS hardware overwrites it with no GPU submission required.\nPR:L - XE_GEM_CREATE and XE_VM_CREATE are DRM_RENDER_ALLOW, so any unprivileged local user who can open the Xe render node (typical desktop, workstation, and GPU-compute clients) can allocate VRAM and GPU page tables from the oversized pool; root or init-namespace capabilities are not required.\nUI:N - Exploitation uses only the attacker\u0027s own GEM/VM ioctls, and the compression hardware writes CCS into the overlapping page with no victim GPU submission. The compositor-fault/black-screen outcome also occurs on ordinary GPU bring-up with no separate user action.\nS:U - Aliasing CCS storage with allocated VRAM corrupts GPU page tables and buffer objects inside the host kernel\u0027s Xe/TTM security authority. This is not a guest-to-host VM escape or IOMMU/DMA bypass; the SR-IOV VF probe path skips get_flat_ccs_offset() entirely.\nC:H - A client can receive the overlapping page as a mappable VRAM BO (XE_GEM_CREATE plus XE_GEM_MMAP_OFFSET) and read Flat CCS metadata for other surfaces. When that page is a GPU page table, CCS overwrites PTEs so the GPU may translate into unintended physical pages, disclosing other clients\u0027 GPU memory.\nI:H - CCS hardware writes into kernel-managed GPU page tables and user BOs with no PTE, corrupting translations and buffer contents. A client that maps the overlapping page can also write CCS storage, breaking other clients\u0027 compression state and GPU PTEs, which is memory corruption scored as High integrity impact.\nA:H - Overwritten GPU page-table entries cause GPU page faults on batch fetch; the reported effect is a compositor crash and persistent gdm restart/black-screen loop, and the same corruption can wedge or reset the Xe GT. Kernel CVSS treats GPU hangs and crashes as High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:57:06.434Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c96477e0cabf55bfbdf078078e9de1c8024f8060"
},
{
"url": "https://git.kernel.org/stable/c/348c3db4f1520d36764ac8cae2492f50599714f6"
},
{
"url": "https://git.kernel.org/stable/c/818bebeb63dd6bf5f4e07e145f6cdbace520a34c"
}
],
"title": "drm/xe: Don\u0027t hand out the flat CCS storage as usable VRAM",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90047",
"datePublished": "2026-09-16T10:33:43.851Z",
"dateReserved": "2026-09-11T19:38:34.783Z",
"dateUpdated": "2026-10-19T08:57:06.434Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74659 (GCVE-0-2026-74659)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-22 15:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: mrp: fix uninitialised bytes on the wire
br_mrp_alloc_test_skb() builds MRP test frames on an skb from
dev_alloc_skb(), which does not clear the linear data area. On the MRA
ring-role branch the sub-option TLV header is appended with
sub_tlv = skb_put(skb, sizeof(*sub_tlv));
sub_tlv->type = BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR;
so sub_tlv->length is never written, and the two trailing alignment bytes
are appended with a bare skb_put() that does not clear them either. The
neighbouring oui and sub_opt regions are explicitly zeroed, so three
uninitialised bytes are left in every MRA MRP_Test frame that goes out.
Put the sub-option TLV header and the alignment padding in a single
skb_put_zero(), which clears both. The AUTO_MGR sub-TLV carries no
payload, so the zeroed length field is already the value it should have.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 Version: f7458934b0791c39a001e4d902fc3bf697b439b5 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/br_mrp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "014c062d23c63ec77ef2cf17a0d9363c7441cc94",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "7ebc23ff03668042e0b0e4034bb1518d36198d9e",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "06d58b8d2f053ced82e01efaeb6e7c82891eed58",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "a5e385eeb2d6dbbbdebfa050e67c34734ae12693",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "5912cf1822fbe53ae275c147868740eb384a5d3e",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "e08665218040f8e312abe40f74543186f3c2c941",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
},
{
"lessThan": "63488dba65ef91373ef616575b32eb0eb21459f4",
"status": "affected",
"version": "f7458934b0791c39a001e4d902fc3bf697b439b5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/br_mrp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: mrp: fix uninitialised bytes on the wire\n\nbr_mrp_alloc_test_skb() builds MRP test frames on an skb from\ndev_alloc_skb(), which does not clear the linear data area. On the MRA\nring-role branch the sub-option TLV header is appended with\n\n\tsub_tlv = skb_put(skb, sizeof(*sub_tlv));\n\tsub_tlv-\u003etype = BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR;\n\nso sub_tlv-\u003elength is never written, and the two trailing alignment bytes\nare appended with a bare skb_put() that does not clear them either. The\nneighbouring oui and sub_opt regions are explicitly zeroed, so three\nuninitialised bytes are left in every MRA MRP_Test frame that goes out.\n\nPut the sub-option TLV header and the alignment padding in a single\nskb_put_zero(), which clears both. The AUTO_MGR sub-TLV carries no\npayload, so the zeroed length field is already the value it should have."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:32:32.926Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/014c062d23c63ec77ef2cf17a0d9363c7441cc94"
},
{
"url": "https://git.kernel.org/stable/c/7ebc23ff03668042e0b0e4034bb1518d36198d9e"
},
{
"url": "https://git.kernel.org/stable/c/06d58b8d2f053ced82e01efaeb6e7c82891eed58"
},
{
"url": "https://git.kernel.org/stable/c/a5e385eeb2d6dbbbdebfa050e67c34734ae12693"
},
{
"url": "https://git.kernel.org/stable/c/5912cf1822fbe53ae275c147868740eb384a5d3e"
},
{
"url": "https://git.kernel.org/stable/c/e08665218040f8e312abe40f74543186f3c2c941"
},
{
"url": "https://git.kernel.org/stable/c/63488dba65ef91373ef616575b32eb0eb21459f4"
}
],
"title": "net: bridge: mrp: fix uninitialised bytes on the wire",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74659",
"datePublished": "2026-08-22T15:32:32.926Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-08-22T15:32:32.926Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80840 (GCVE-0-2026-80840)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: seg6: clear IPv4 control block on IPIP decapsulation
End.DX4 and End.DT4 decapsulate an IPv4 packet through
decap_and_validate() and send it directly to IPv4 routing. The inner
packet therefore bypasses ip_rcv_core(), which normally clears IPCB
before IPv4 interprets skb->cb.
The skb instead retains IP6CB data from the outer packet. IP6CB and
IPCB use the same skb->cb storage, so IP6CB(skb)->lastopt overlaps
IPCB(skb)->opt.optlen and srr, while IP6CB(skb)->nhoff overlaps rr and
ts.
The sender can make the stale optlen byte nonzero with a valid outer
extension-header chain. The reproducers put an eight-byte Destination
Options header immediately after the 40-byte IPv6 header and before the
Segment Routing Header. ipv6_destopt_rcv() records the sender-controlled
Destination Options offset in both lastopt and nhoff, setting them to
40. On the reproduced little-endian x86-64 kernel, IPv4 therefore sees
optlen = 40 and rr = 40.
Both tcp_v4_save_options() and __ip_options_echo() skip option copying
when optlen is zero. Here optlen is 40, so the TCP SYN path allocates
room for 40 bytes of option data and calls __ip_options_echo(). The
stale rr value makes that function read inner packet byte 41 as the
Record Route option length. The reproducers set that sender-controlled
byte to 255, so __ip_options_echo() copies 255 bytes into the 40-byte
option-data area.
Separate End.DX4 and End.DT4 reproducers on the unpatched v7.2-rc5
kernel both produced:
BUG: KASAN: slab-out-of-bounds in __ip_options_echo()
Write of size 255
The relevant End.DX4 call path is:
__ip_options_echo
tcp_v4_route_req
tcp_conn_request
tcp_v4_conn_request
tcp_rcv_state_process
tcp_v4_do_rcv
tcp_v4_rcv
ip_protocol_deliver_rcu
ip_local_deliver_finish
ip_local_deliver
input_action_end_dx4_finish
input_action_end_dx4
The relevant End.DT4 call path is:
__ip_options_echo
tcp_v4_route_req
tcp_conn_request
tcp_v4_conn_request
tcp_rcv_state_process
tcp_v4_do_rcv
tcp_v4_rcv
ip_protocol_deliver_rcu
ip_local_deliver_finish
ip_local_deliver
input_action_end_dt4
tcp_v4_save_options() is inlined into the tcp_v4_route_req() path, so
it does not appear as a separate frame.
When decap_and_validate() handles IPPROTO_IPIP, save the ingress
interface from IP6CB, clear IPCB, and restore the saved value. Doing
this in the common decapsulation path covers End.DX4, End.DT4, and
End.DT46's IPv4 arm.
Use IP6CB(skb)->iif rather than skb->skb_iif. These actions run after
l3mdev processing, which can replace skb_iif with the L3 master;
IP6CB iif still records the receiving interface set at IPv6 ingress.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 Version: 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/seg6_local.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "10fd1a8f58ac619a9e251f2858e2e2c8fd6cd667",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "eb0f422487228e140f3d609b032ac61aedcab8fa",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "9039e4f3e1c0ffe2b575b655b3f58fdd10f7e40c",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "f52f1e75716d2ee49e013edf204ac92337c72fd8",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "0e3f01fe2e704e76af4385b8a1742641885a191c",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "3e4476e58343fb8f2fffced9e22d935376b17aaf",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "bf1c1151560d11036a144d917fa4c131831342d7",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "f4be3b391265e24c7720fc867c50062b436acf33",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
},
{
"lessThan": "44930446dde45a7a90fe1446fa38eb0e2c561646",
"status": "affected",
"version": "891ef8dd2a8d14e4e73a81dcdb135b574c57f556",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/seg6_local.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: seg6: clear IPv4 control block on IPIP decapsulation\n\nEnd.DX4 and End.DT4 decapsulate an IPv4 packet through\ndecap_and_validate() and send it directly to IPv4 routing. The inner\npacket therefore bypasses ip_rcv_core(), which normally clears IPCB\nbefore IPv4 interprets skb-\u003ecb.\n\nThe skb instead retains IP6CB data from the outer packet. IP6CB and\nIPCB use the same skb-\u003ecb storage, so IP6CB(skb)-\u003elastopt overlaps\nIPCB(skb)-\u003eopt.optlen and srr, while IP6CB(skb)-\u003enhoff overlaps rr and\nts.\n\nThe sender can make the stale optlen byte nonzero with a valid outer\nextension-header chain. The reproducers put an eight-byte Destination\nOptions header immediately after the 40-byte IPv6 header and before the\nSegment Routing Header. ipv6_destopt_rcv() records the sender-controlled\nDestination Options offset in both lastopt and nhoff, setting them to\n40. On the reproduced little-endian x86-64 kernel, IPv4 therefore sees\noptlen = 40 and rr = 40.\n\nBoth tcp_v4_save_options() and __ip_options_echo() skip option copying\nwhen optlen is zero. Here optlen is 40, so the TCP SYN path allocates\nroom for 40 bytes of option data and calls __ip_options_echo(). The\nstale rr value makes that function read inner packet byte 41 as the\nRecord Route option length. The reproducers set that sender-controlled\nbyte to 255, so __ip_options_echo() copies 255 bytes into the 40-byte\noption-data area.\n\nSeparate End.DX4 and End.DT4 reproducers on the unpatched v7.2-rc5\nkernel both produced:\n\n BUG: KASAN: slab-out-of-bounds in __ip_options_echo()\n Write of size 255\n\nThe relevant End.DX4 call path is:\n\n __ip_options_echo\n tcp_v4_route_req\n tcp_conn_request\n tcp_v4_conn_request\n tcp_rcv_state_process\n tcp_v4_do_rcv\n tcp_v4_rcv\n ip_protocol_deliver_rcu\n ip_local_deliver_finish\n ip_local_deliver\n input_action_end_dx4_finish\n input_action_end_dx4\n\nThe relevant End.DT4 call path is:\n\n __ip_options_echo\n tcp_v4_route_req\n tcp_conn_request\n tcp_v4_conn_request\n tcp_rcv_state_process\n tcp_v4_do_rcv\n tcp_v4_rcv\n ip_protocol_deliver_rcu\n ip_local_deliver_finish\n ip_local_deliver\n input_action_end_dt4\n\ntcp_v4_save_options() is inlined into the tcp_v4_route_req() path, so\nit does not appear as a separate frame.\n\nWhen decap_and_validate() handles IPPROTO_IPIP, save the ingress\ninterface from IP6CB, clear IPCB, and restore the saved value. Doing\nthis in the common decapsulation path covers End.DX4, End.DT4, and\nEnd.DT46\u0027s IPv4 arm.\n\nUse IP6CB(skb)-\u003eiif rather than skb-\u003eskb_iif. These actions run after\nl3mdev processing, which can replace skb_iif with the L3 master;\nIP6CB iif still records the receiving interface set at IPv6 ingress."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:33.475Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/10fd1a8f58ac619a9e251f2858e2e2c8fd6cd667"
},
{
"url": "https://git.kernel.org/stable/c/eb0f422487228e140f3d609b032ac61aedcab8fa"
},
{
"url": "https://git.kernel.org/stable/c/9039e4f3e1c0ffe2b575b655b3f58fdd10f7e40c"
},
{
"url": "https://git.kernel.org/stable/c/f52f1e75716d2ee49e013edf204ac92337c72fd8"
},
{
"url": "https://git.kernel.org/stable/c/0e3f01fe2e704e76af4385b8a1742641885a191c"
},
{
"url": "https://git.kernel.org/stable/c/3e4476e58343fb8f2fffced9e22d935376b17aaf"
},
{
"url": "https://git.kernel.org/stable/c/bf1c1151560d11036a144d917fa4c131831342d7"
},
{
"url": "https://git.kernel.org/stable/c/f4be3b391265e24c7720fc867c50062b436acf33"
},
{
"url": "https://git.kernel.org/stable/c/44930446dde45a7a90fe1446fa38eb0e2c561646"
}
],
"title": "ipv6: seg6: clear IPv4 control block on IPIP decapsulation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80840",
"datePublished": "2026-09-04T15:54:50.403Z",
"dateReserved": "2026-08-26T14:34:25.796Z",
"dateUpdated": "2026-10-19T08:44:33.475Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92508 (GCVE-0-2026-92508)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_free_cq()
When accessing a CQ via the netlink path the only synchronization
mechanism for the said CQ is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_free_cq(), which is too late, since by that point
vendor-specific resources associated with the CQ might already be
freed. This can leave a short window where the CQ remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_del() call to be before the freeing
of the vendor-specific resources ensuring that the CQ is removed from
restrack before its internal resources are released.
This guarantees that no new users hold references to a CQ that is in
the process of destruction.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 43d781b9fa562f0c6e50f62c870fbfeb9dc85213 Version: 7ac277a01f9017fcde4f3f81670c995992945433 Version: 093f87dda065e0f618dd577985eccbe85efb9b54 Version: 5.8.17 ≤ Version: 5.9.2 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/cq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a804b162f9bc2b38b2ed1b4752eea9faadb1645b",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "91f8a17a22ab615a03743120e19935e731f28fb9",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "76f2cb4f721815c3b6262a6dc2151de88646924c",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "b8dcca427096fc9c50f1b376847fea72bc842d31",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "9abea37942534eeb049335476178696b654b000c",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "43403fe45379c64fa6276e5a8ede44493e5d2d3d",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"lessThan": "29dc2f8e1c97372c2871a70088707933515fbd5b",
"status": "affected",
"version": "43d781b9fa562f0c6e50f62c870fbfeb9dc85213",
"versionType": "git"
},
{
"status": "affected",
"version": "7ac277a01f9017fcde4f3f81670c995992945433",
"versionType": "git"
},
{
"status": "affected",
"version": "093f87dda065e0f618dd577985eccbe85efb9b54",
"versionType": "git"
},
{
"lessThan": "5.9",
"status": "affected",
"version": "5.8.17",
"versionType": "semver"
},
{
"lessThan": "5.10",
"status": "affected",
"version": "5.9.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/cq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.9.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in ib_free_cq()\n\nWhen accessing a CQ via the netlink path the only synchronization\nmechanism for the said CQ is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nib_free_cq(), which is too late, since by that point\nvendor-specific resources associated with the CQ might already be\nfreed. This can leave a short window where the CQ remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_del() call to be before the freeing\nof the vendor-specific resources ensuring that the CQ is removed from\nrestrack before its internal resources are released.\nThis guarantees that no new users hold references to a CQ that is in\nthe process of destruction."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The use side is a local NETLINK_RDMA RDMA_NLDEV_CMD_RES_CQ_GET handled by nldev_res_get_cq_doit/dumpit \u2192 res_get_common_doit/dumpit, which rdma_restrack_get()s a CQ still in the xarray while ib_free_cq() is destroying it. No remote protocol message carries the lookup; the accessor is a netlink syscall.\nAC:L - The attacker drives both sides of the race: one thread loops RDMA_NLDEV_CMD_RES_CQ_GET while another opens and drops kernel-ULP RDMA connections so ib_free_cq() runs (svc_rdma_free() or smbdirect_connection_destroy_qp()). That is not a victim-only timing window.\nPR:L - RDMA_NLDEV_CMD_RES_CQ_GET in nldev_cb_table has no RDMA_NL_ADMIN_PERM, and NETLINK_RDMA is created with NL_CFG_F_NONROOT_RECV, so an ordinary user can dump CQs. Kernel CQ teardown via /dev/infiniband/rdma_cm (ucma_misc mode 0666) also does not need init-namespace root.\nUI:N - The attacker sends the RDMA_NLDEV_CMD_RES_CQ_GET dumps and tears down their own kernel-ULP RDMA connections; no other user must mount a volume, open a device, or confirm an action.\nS:U - The UAF is of host-kernel CQ vendor state (ib_cq buffers freed in destroy_cq/pre_destroy_cq) and stays inside the same kernel authority; it is not a VM escape, IOMMU bypass, or guest-to-host boundary cross.\nC:H - c4iw_destroy_cq() \u2192 destroy_cq() dma_free_coherent()s chp-\u003ecq.queue before rdma_restrack_del(); a concurrent fill_res_cq_entry \u2192 c4iw_fill_res_cq_entry still indexes that queue, so the UAF reads freed CQ-ring memory.\nI:H - The same ib_free_cq() window lets fill_res_cq_entry use vendor CQ resources already released by destroy_cq/pre_destroy_cq (Chelsio queue pages; mlx5 destroy_cq_kernel CQ buffers). Reclaiming that heap object yields an arbitrary write and control-flow hijack.\nA:H - fill_res_cq_entry walking a CQ whose queue or HW context was already freed in ib_free_cq() (after pre_destroy_cq/destroy_cq, before rdma_restrack_del) oopses or panics the kernel even without a crafted exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:14.344Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a804b162f9bc2b38b2ed1b4752eea9faadb1645b"
},
{
"url": "https://git.kernel.org/stable/c/91f8a17a22ab615a03743120e19935e731f28fb9"
},
{
"url": "https://git.kernel.org/stable/c/76f2cb4f721815c3b6262a6dc2151de88646924c"
},
{
"url": "https://git.kernel.org/stable/c/b8dcca427096fc9c50f1b376847fea72bc842d31"
},
{
"url": "https://git.kernel.org/stable/c/9abea37942534eeb049335476178696b654b000c"
},
{
"url": "https://git.kernel.org/stable/c/43403fe45379c64fa6276e5a8ede44493e5d2d3d"
},
{
"url": "https://git.kernel.org/stable/c/29dc2f8e1c97372c2871a70088707933515fbd5b"
}
],
"title": "RDMA/core: Fix potential use after free in ib_free_cq()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92508",
"datePublished": "2026-09-17T16:10:19.443Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-19T09:04:14.344Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72157 (GCVE-0-2026-72157)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: thunderbolt: Fix frags[] overflow by bounding frame_count
tbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The
first frame goes into the skb linear area and every further frame is added as
a page fragment.
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
page, hdr_size, frame_size,
TBNET_RX_PAGE_SIZE - hdr_size);
A packet of frame_count frames therefore ends up with frame_count - 1
fragments. tbnet_check_frame() only bounds the peer supplied frame_count to
TBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A
peer that sends a packet of 19 or more small frames pushes nr_frags past
MAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()->frags[] and
corrupts memory after the shared info.
Tighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never
produce more fragments than frags[] can hold. This matches the recent skb
frags overflow fixes in other receive paths, for example f0813bcd2d9d ("net:
wwan: t7xx: fix potential skb->frags overflow in RX path") and 600dc40554dc
("net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()").
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e Version: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72157",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:59.492495Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:59.473Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/thunderbolt/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f96b3b35c622d565eff2438993e028d280163f5c",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "6262f51e09d8dc8b07599a9e4f03bd3989d13fff",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "569ba39b2d12995a29dc158e5b4de6e449278f30",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "2b3b4e5ff5a58ad32817824b0310e63908b12052",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "e27beb4536cbf1d59e2d8c2840e87d972aba906f",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "e5824d5b841d99a2bcdd4e2c256643293bbc22c1",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "fe6b606fbf0c3beb94ccf17fcf31d8c2138264e3",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
},
{
"lessThan": "55d9895f89970501fe126d1026b586b04a224c27",
"status": "affected",
"version": "e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/thunderbolt/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.15"
},
{
"lessThan": "4.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: thunderbolt: Fix frags[] overflow by bounding frame_count\n\ntbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The\nfirst frame goes into the skb linear area and every further frame is added as\na page fragment.\n\n\tskb_add_rx_frag(skb, skb_shinfo(skb)-\u003enr_frags,\n\t\t\tpage, hdr_size, frame_size,\n\t\t\tTBNET_RX_PAGE_SIZE - hdr_size);\n\nA packet of frame_count frames therefore ends up with frame_count - 1\nfragments. tbnet_check_frame() only bounds the peer supplied frame_count to\nTBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A\npeer that sends a packet of 19 or more small frames pushes nr_frags past\nMAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()-\u003efrags[] and\ncorrupts memory after the shared info.\n\nTighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never\nproduce more fragments than frags[] can hold. This matches the recent skb\nfrags overflow fixes in other receive paths, for example f0813bcd2d9d (\"net:\nwwan: t7xx: fix potential skb-\u003efrags overflow in RX path\") and 600dc40554dc\n(\"net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()\")."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The flaw is triggered by malicious ThunderboltIP frames sent from a peer on the same direct Thunderbolt/USB4 link; exploitation is not Internet-routable but is reachable from an adjacent connected host, dock, or peripheral without local syscall access.\nAC:L - An adjacent peer can reliably trigger the overflow by sending a start-of-packet header with frame_count of 19-64 and delivering the matching small frames; no races or attacker-uncontrollable heap layout are required.\nPR:N - The attacker needs no account, capability, or privilege on the victim OS; a malicious Thunderbolt/USB4 peer that completes XDomain ThunderboltIP login can send the crafted RX frames directly over the established DMA path.\nUI:N - Once a ThunderboltIP session is active, which is common with docks, direct laptop-to-laptop links, and shared workstations, triggering the bug requires no further victim action beyond the existing link.\nS:U - Memory corruption occurs in the kernel Thunderbolt network driver during skb reassembly and does not by itself cross a VM, container, or IOMMU security boundary.\nC:H - skb_add_rx_frag() writes past skb_shinfo()-\u003efrags[], corrupting adjacent kernel memory; such out-of-bounds skb metadata corruption is reasonably leverageable for information disclosure as well as further exploitation.\nI:H - The overflow is an attacker-controlled out-of-bounds write of skb fragment descriptors beyond MAX_SKB_FRAGS, which can corrupt heap/skb metadata and be developed into arbitrary kernel memory modification or code execution.\nA:H - Corrupting memory past skb_shared_info can cause kernel oopses, panics, or unstable behavior during RX processing, and repeated malicious packets can deny service on affected systems."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:55.998Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f96b3b35c622d565eff2438993e028d280163f5c"
},
{
"url": "https://git.kernel.org/stable/c/6262f51e09d8dc8b07599a9e4f03bd3989d13fff"
},
{
"url": "https://git.kernel.org/stable/c/569ba39b2d12995a29dc158e5b4de6e449278f30"
},
{
"url": "https://git.kernel.org/stable/c/2b3b4e5ff5a58ad32817824b0310e63908b12052"
},
{
"url": "https://git.kernel.org/stable/c/e27beb4536cbf1d59e2d8c2840e87d972aba906f"
},
{
"url": "https://git.kernel.org/stable/c/e5824d5b841d99a2bcdd4e2c256643293bbc22c1"
},
{
"url": "https://git.kernel.org/stable/c/fe6b606fbf0c3beb94ccf17fcf31d8c2138264e3"
},
{
"url": "https://git.kernel.org/stable/c/55d9895f89970501fe126d1026b586b04a224c27"
}
],
"title": "net: thunderbolt: Fix frags[] overflow by bounding frame_count",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72157",
"datePublished": "2026-08-15T05:53:26.718Z",
"dateReserved": "2026-08-09T03:40:39.909Z",
"dateUpdated": "2026-10-16T18:44:59.473Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80909 (GCVE-0-2026-80909)
Vulnerability from cvelistv5
Published
2026-09-04 17:19
Modified
2026-09-07 14:21
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: Reject UVD message with invalid number of h265 refs
Same change as for h264, avoids overflow later when calculating
min dpb size.
(cherry picked from commit a4b0720e4f1601f97f59a2be9c1b4b94fa6527d5)
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Version: 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1facad2a78c1a8aeecc36eb4d560c7f1e10ce198",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "499907e5d46e575e96967c0230a0a6af980a17ab",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "cbf1c84bf5cac2b3742ea3d2085fa713424465cc",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "a930c54cb67200de8bc0de87480d09ece7dcd85d",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "2abcdc5f738574e7fcdd9417575dffb877fdc26f",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "e304c3e0d9ce251887be1f274aa0ed52219d5fd7",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "0acdf1a575f59bd46717d5c487d84575af5bee8f",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
},
{
"lessThan": "9fca434208f1f9ab977feac62df8ebb1cc7ce893",
"status": "affected",
"version": "86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: Reject UVD message with invalid number of h265 refs\n\nSame change as for h264, avoids overflow later when calculating\nmin dpb size.\n\n(cherry picked from commit a4b0720e4f1601f97f59a2be9c1b4b94fa6527d5)"
}
],
"providerMetadata": {
"dateUpdated": "2026-09-07T14:21:32.011Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1facad2a78c1a8aeecc36eb4d560c7f1e10ce198"
},
{
"url": "https://git.kernel.org/stable/c/499907e5d46e575e96967c0230a0a6af980a17ab"
},
{
"url": "https://git.kernel.org/stable/c/cbf1c84bf5cac2b3742ea3d2085fa713424465cc"
},
{
"url": "https://git.kernel.org/stable/c/a930c54cb67200de8bc0de87480d09ece7dcd85d"
},
{
"url": "https://git.kernel.org/stable/c/2abcdc5f738574e7fcdd9417575dffb877fdc26f"
},
{
"url": "https://git.kernel.org/stable/c/e304c3e0d9ce251887be1f274aa0ed52219d5fd7"
},
{
"url": "https://git.kernel.org/stable/c/0acdf1a575f59bd46717d5c487d84575af5bee8f"
},
{
"url": "https://git.kernel.org/stable/c/9fca434208f1f9ab977feac62df8ebb1cc7ce893"
}
],
"title": "drm/amdgpu: Reject UVD message with invalid number of h265 refs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80909",
"datePublished": "2026-09-04T17:19:20.085Z",
"dateReserved": "2026-08-26T14:34:25.801Z",
"dateUpdated": "2026-09-07T14:21:32.011Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89534 (GCVE-0-2026-89534)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Clear sc_cm_id when ADDR_CHANGE replacement fails
When svc_rdma_listen_handler() handles RDMA_CM_EVENT_ADDR_CHANGE,
it creates a replacement listener cm_id and returns 1, telling
the CM core to destroy the old one. If the replacement allocation
fails, sc_cm_id still points at the old cm_id that the CM core is
about to destroy. Any subsequent dereference of sc_cm_id --
such as svc_rdma_detach()'s rdma_disconnect() call -- is a
use-after-free.
NULL sc_cm_id on the failure path and guard svc_rdma_detach()'s
rdma_disconnect() call against NULL so that the listener can
be torn down safely when the server shuts down.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d1b586e75ec619dde1af47e21a41a6b1b51874c2 Version: d1b586e75ec619dde1af47e21a41a6b1b51874c2 Version: d1b586e75ec619dde1af47e21a41a6b1b51874c2 Version: d1b586e75ec619dde1af47e21a41a6b1b51874c2 Version: 5cd069ad1cf7fb46af31f0dbe2850868335f5272 Version: 6.6.160 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2a68aeb2de8ad0fef9c50e73a50622a35c6af1a8",
"status": "affected",
"version": "d1b586e75ec619dde1af47e21a41a6b1b51874c2",
"versionType": "git"
},
{
"lessThan": "65f0f82f20334e76acaf29087a59af7b3b9699ed",
"status": "affected",
"version": "d1b586e75ec619dde1af47e21a41a6b1b51874c2",
"versionType": "git"
},
{
"lessThan": "673e358ab7c11f8cec223c6a36a793056a67facd",
"status": "affected",
"version": "d1b586e75ec619dde1af47e21a41a6b1b51874c2",
"versionType": "git"
},
{
"lessThan": "01500306e1d50de7ca7a2cdcdfa28ac0523eb747",
"status": "affected",
"version": "d1b586e75ec619dde1af47e21a41a6b1b51874c2",
"versionType": "git"
},
{
"status": "affected",
"version": "5cd069ad1cf7fb46af31f0dbe2850868335f5272",
"versionType": "git"
},
{
"lessThan": "6.7",
"status": "affected",
"version": "6.6.160",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.6.160",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Clear sc_cm_id when ADDR_CHANGE replacement fails\n\nWhen svc_rdma_listen_handler() handles RDMA_CM_EVENT_ADDR_CHANGE,\nit creates a replacement listener cm_id and returns 1, telling\nthe CM core to destroy the old one. If the replacement allocation\nfails, sc_cm_id still points at the old cm_id that the CM core is\nabout to destroy. Any subsequent dereference of sc_cm_id --\nsuch as svc_rdma_detach()\u0027s rdma_disconnect() call -- is a\nuse-after-free.\n\nNULL sc_cm_id on the failure path and guard svc_rdma_detach()\u0027s\nrdma_disconnect() call against NULL so that the listener can\nbe torn down safely when the server shuts down."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - svcrdma is the in-kernel NFS/RDMA server listen path; RDMA_CM_EVENT_ADDR_CHANGE is raised only from cma_netdev_callback on NETDEV_BONDING_FAILOVER when the bound bond MAC changes, so an attacker on the RoCE/IB storage fabric inducing active-backup failover reaches the bug, matching ADDR_CHANGE scoring for RPC-over-RDMA.\nAC:L - svc_rdma_create_listen_id() binds the replacement while the old listen cm_id still owns the port, so rdma_bind_addr() fails deterministically with EADDRINUSE/EADDRNOTAVAIL; the handler still returns 1 and the CM core frees that id, leaving a dangling sc_cm_id the attacker can arm by inducing failover.\nPR:N - The NFS/RDMA listener is already running as a network service; bonding failover and RDMA CM ADDR_CHANGE delivery perform no RPC, NFS export, or other authentication, so an adjacent fabric attacker needs no account or capability on the victim host.\nUI:N - Exploitation uses attacker-induced link failover plus subsequent listener teardown (nfsd restart/shutdown, the normal operational response once the listen endpoint is dead); no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - The use-after-free corrupts the host kernel rdma_cm_id/rdma_id_private object used by nfsd\u0027s RDMA transport in the same kernel security authority and is not a VM, IOMMU, or sandbox escape.\nC:H - After the CM core destroys the listen id, sc_cm_id is a dangling pointer to a freed rdma_cm_id with an event_handler; later rdma_disconnect()/rdma_destroy_id() in svc_rdma_detach/free is a kernel heap UAF that enables arbitrary disclosure via controlled reuse.\nI:H - svc_rdma_detach() calls rdma_disconnect() on the freed cm_id and svc_rdma_free() may rdma_destroy_id() it again, yielding UAF writes, double-free, and function-pointer hijack of event_handler, so integrity impact is High per UAF guidance.\nA:H - Use-after-free of the listen rdma_cm_id during detach/free causes a kernel oops or panic even when not fully exploited, so availability impact is High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:44.767Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2a68aeb2de8ad0fef9c50e73a50622a35c6af1a8"
},
{
"url": "https://git.kernel.org/stable/c/65f0f82f20334e76acaf29087a59af7b3b9699ed"
},
{
"url": "https://git.kernel.org/stable/c/673e358ab7c11f8cec223c6a36a793056a67facd"
},
{
"url": "https://git.kernel.org/stable/c/01500306e1d50de7ca7a2cdcdfa28ac0523eb747"
}
],
"title": "svcrdma: Clear sc_cm_id when ADDR_CHANGE replacement fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89534",
"datePublished": "2026-09-11T19:44:12.987Z",
"dateReserved": "2026-09-11T19:38:34.720Z",
"dateUpdated": "2026-10-21T12:47:44.767Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64372 (GCVE-0-2026-64372)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cpufreq: pcc: fix use-after-free and double free in _OSC evaluation
pcc_cpufreq_do_osc() calls acpi_evaluate_object() twice for the
two-phase _OSC negotiation. Between the two calls it freed
output.pointer but left output.length unchanged. Since
acpi_evaluate_object() treats a non-zero length with a non-NULL
pointer as an existing buffer to write into, the second call wrote
into freed memory (use-after-free). The subsequent kfree(output.pointer)
at out_free then freed the same pointer a second time (double free).
Reset output.pointer to NULL and output.length to ACPI_ALLOCATE_BUFFER
after freeing the first result, so ACPICA allocates a fresh buffer for
each phase independently.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e Version: 0f1d683fb35d6c6f49ef696c95757f3970682a0e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64372",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:39:34.226056Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:25.140Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/pcc-cpufreq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8e454e9d0bc03446d610ee49abec9dfd424f6541",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "632666a63116d8061c62a988d1ca39dcd6d27c9b",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "5cdb25f144b101083d8bf3fd023ad87fbe6850d7",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "982c9f92d57bda2b769851ff6d90d43dcf5f3734",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "a36ca93a8ba57464e521d70a337d37f069064111",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "6ba6f6783be2ffeb2cbcdc9321c4b9f708f796f7",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "0e3c739a2f6fc1de5b19a8839ab80696b9cb2a29",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
},
{
"lessThan": "266d3dd8b757b48a576e90f018b51f7b7563cc32",
"status": "affected",
"version": "0f1d683fb35d6c6f49ef696c95757f3970682a0e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/cpufreq/pcc-cpufreq.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.34"
},
{
"lessThan": "2.6.34",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "2.6.34",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.34",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: pcc: fix use-after-free and double free in _OSC evaluation\n\npcc_cpufreq_do_osc() calls acpi_evaluate_object() twice for the\ntwo-phase _OSC negotiation. Between the two calls it freed\noutput.pointer but left output.length unchanged. Since\nacpi_evaluate_object() treats a non-zero length with a non-NULL\npointer as an existing buffer to write into, the second call wrote\ninto freed memory (use-after-free). The subsequent kfree(output.pointer)\nat out_free then freed the same pointer a second time (double free).\n\nReset output.pointer to NULL and output.length to ACPI_ALLOCATE_BUFFER\nafter freeing the first result, so ACPICA allocates a fresh buffer for\neach phase independently."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached during local initialization of the x86 PCC cpufreq driver on systems exposing the required ACPI PCC objects; no network, radio, or hot-plug input reaches this path.\nAC:L - Once two-phase _OSC negotiation succeeds, the stale-buffer write and subsequent double free occur deterministically without a race or other condition beyond attacker influence.\nPR:L - PCC platform-device creation and driver probing can occur automatically during boot or module autoload, leaving exploitable heap corruption without the attacker needing CAP_SYS_MODULE. A basic local user can groom and consume the resulting overlapping or corrupted slab objects.\nUI:N - The vulnerable driver probe and _OSC negotiation occur automatically and require no victim action.\nS:U - The corruption affects the host kernel within the same security authority and does not inherently cross a VM, IOMMU, or sandbox boundary.\nC:H - The use-after-free and double free can produce overlapping kernel heap objects, enabling disclosure of arbitrary kernel memory.\nI:H - The freed-object write and allocator freelist corruption can enable arbitrary kernel-memory modification and control-flow hijacking.\nA:H - Hardened allocators may immediately detect the double free and stop the kernel, while other configurations can crash or panic from the corrupted slab freelist."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:54:22.197Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8e454e9d0bc03446d610ee49abec9dfd424f6541"
},
{
"url": "https://git.kernel.org/stable/c/632666a63116d8061c62a988d1ca39dcd6d27c9b"
},
{
"url": "https://git.kernel.org/stable/c/5cdb25f144b101083d8bf3fd023ad87fbe6850d7"
},
{
"url": "https://git.kernel.org/stable/c/982c9f92d57bda2b769851ff6d90d43dcf5f3734"
},
{
"url": "https://git.kernel.org/stable/c/a36ca93a8ba57464e521d70a337d37f069064111"
},
{
"url": "https://git.kernel.org/stable/c/6ba6f6783be2ffeb2cbcdc9321c4b9f708f796f7"
},
{
"url": "https://git.kernel.org/stable/c/0e3c739a2f6fc1de5b19a8839ab80696b9cb2a29"
},
{
"url": "https://git.kernel.org/stable/c/266d3dd8b757b48a576e90f018b51f7b7563cc32"
}
],
"title": "cpufreq: pcc: fix use-after-free and double free in _OSC evaluation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64372",
"datePublished": "2026-07-25T08:50:24.733Z",
"dateReserved": "2026-07-19T15:36:31.783Z",
"dateUpdated": "2026-10-19T20:38:25.140Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72025 (GCVE-0-2026-72025)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-08-18 06:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/monwriter: Reject buffer reuse with different data length
When data buffers are reused, e.g. for interval sample records, the
first record determines the data length, and the size of the buffer for
user copy. Current monwriter code does not check if the data length was
changed for subsequent records, which also would never happen for valid
user programs.
However, a malicious user could change the data length, resulting in out
of bounds user copy to the kernel buffer, and memory corruption. By
default, the monwriter misc device is created with root-only permissions,
so practical impact is typically low.
Fix this by checking for changed data length and rejecting such records.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 Version: 31b58088292c7f00f0b81088bfb557285b0b6247 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/char/monwriter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "096dff1247037d329c04b3a5be0ecdfb1c5c7ac6",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "d39cf4a6d721b1ae21eb53bbf3e8cd984253d7ab",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "759d91378203ea35fa9bca6726dcf0010de081fb",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "036bc5661060702e798d215e81bb46da530965b3",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "01f3ce411711c2c919598ea25320a5a48f71edbc",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "f0745496f7c171271cafd9457df3b914a483ddeb",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "ae5347f3db1782c6118f6cc0d9fd8b1d43397db3",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
},
{
"lessThan": "2995ccec260caa9e85b3301a4aba1e66ed80ad74",
"status": "affected",
"version": "31b58088292c7f00f0b81088bfb557285b0b6247",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/char/monwriter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.19"
},
{
"lessThan": "2.6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/monwriter: Reject buffer reuse with different data length\n\nWhen data buffers are reused, e.g. for interval sample records, the\nfirst record determines the data length, and the size of the buffer for\nuser copy. Current monwriter code does not check if the data length was\nchanged for subsequent records, which also would never happen for valid\nuser programs.\n\nHowever, a malicious user could change the data length, resulting in out\nof bounds user copy to the kernel buffer, and memory corruption. By\ndefault, the monwriter misc device is created with root-only permissions,\nso practical impact is typically low.\n\nFix this by checking for changed data length and rejecting such records."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-18T06:56:09.214Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/096dff1247037d329c04b3a5be0ecdfb1c5c7ac6"
},
{
"url": "https://git.kernel.org/stable/c/d39cf4a6d721b1ae21eb53bbf3e8cd984253d7ab"
},
{
"url": "https://git.kernel.org/stable/c/759d91378203ea35fa9bca6726dcf0010de081fb"
},
{
"url": "https://git.kernel.org/stable/c/036bc5661060702e798d215e81bb46da530965b3"
},
{
"url": "https://git.kernel.org/stable/c/01f3ce411711c2c919598ea25320a5a48f71edbc"
},
{
"url": "https://git.kernel.org/stable/c/f0745496f7c171271cafd9457df3b914a483ddeb"
},
{
"url": "https://git.kernel.org/stable/c/ae5347f3db1782c6118f6cc0d9fd8b1d43397db3"
},
{
"url": "https://git.kernel.org/stable/c/2995ccec260caa9e85b3301a4aba1e66ed80ad74"
}
],
"title": "s390/monwriter: Reject buffer reuse with different data length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72025",
"datePublished": "2026-08-15T05:51:49.928Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-08-18T06:56:09.214Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90228 (GCVE-0-2026-90228)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 09:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet: fix NULL pointer dereference in nvmet_execute_identify_ns_zns()
When a host issues an Identify command with CNS 05h (I/O Command Set
specific Identify Namespace) and CSI 02h (ZNS) targeting a file-backed
namespace, nvmet_execute_identify_ns_zns() calls bdev_is_zoned() on
req->ns->bdev. A file-backed namespace has no block device, so
req->ns->bdev is NULL and bdev_is_zoned() dereferences it, oopsing.
The I/O command set is selected by the host-supplied CSI field and the
command is routed here whenever CONFIG_BLK_DEV_ZONED is enabled,
independent of the namespace backing type, so any file-backed namespace
is exposed.
Reject the command with Invalid Field when the namespace is not backed
by a block device.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 Version: aaf2e048af2704da5869f27b508b288f36d5c7b7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/zns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1ce8faf90eb0bf5599b90db38500aefea9426485",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "b873099944dae5702b4b6db6814d1f1e8d4cfb00",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "ff28a93a895912010a7827a0e1445ebe8be53b4d",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "cc29f7082b7ab5e0337f27d1fef16359f05fcffa",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "1fb1236312ee1a600de6b3ca560f0b3fd5a50471",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "0b4cf43f9ca7118590a338de900edbd6047cd89f",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
},
{
"lessThan": "f594863967d87b7fcbff6e724d51135fd701a13d",
"status": "affected",
"version": "aaf2e048af2704da5869f27b508b288f36d5c7b7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/zns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: fix NULL pointer dereference in nvmet_execute_identify_ns_zns()\n\nWhen a host issues an Identify command with CNS 05h (I/O Command Set\nspecific Identify Namespace) and CSI 02h (ZNS) targeting a file-backed\nnamespace, nvmet_execute_identify_ns_zns() calls bdev_is_zoned() on\nreq-\u003ens-\u003ebdev. A file-backed namespace has no block device, so\nreq-\u003ens-\u003ebdev is NULL and bdev_is_zoned() dereferences it, oopsing.\n\nThe I/O command set is selected by the host-supplied CSI field and the\ncommand is routed here whenever CONFIG_BLK_DEV_ZONED is enabled,\nindependent of the namespace backing type, so any file-backed namespace\nis exposed.\n\nReject the command with Invalid Field when the namespace is not backed\nby a block device."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The host-controlled Identify capsule (opcode nvme_admin_identify) carries CNS 05h (NVME_ID_CNS_CS_NS) and CSI 02h (NVME_CSI_ZNS); nvmet-tcp receives that CapsuleCmd in nvmet_tcp_done_recv_pdu() after kernel_accept() and dispatches via nvmet_parse_admin_cmd()/nvmet_execute_identify() into nvmet_execute_identify_ns_zns().\nAC:L - The attacker sets identify.cns and identify.csi on Identify for any enabled file-backed NSID; nvmet_execute_identify() routes CSI=ZNS to nvmet_execute_identify_ns_zns() whenever CONFIG_BLK_DEV_ZONED is built in, then bdev_is_zoned(req-\u003ens-\u003ebdev) hits NULL with no race or layout dependency.\nPR:N - nvmet_check_ctrl_status() after Connect/CC.EN only enforces DH-HMAC-CHAP when a host_key exists; nvmet_check_auth_status() otherwise returns true, nvmet_host_allowed() treats host NQN as an asserted identifier, and allow_any_host subsystems accept any initiator with no Linux credentials.\nUI:N - The remote initiator itself sends Connect, Property Set of CC.EN, then the crafted Identify; no local user must mount a device, open a file, or otherwise interact.\nS:U - The oops occurs in the target kernel\u0027s nvmet-tcp worker while executing nvmet_execute_identify_ns_zns() and stays in that host\u0027s kernel authority; it is not a VM escape or IOMMU/sandbox boundary bypass.\nC:N - bdev_is_zoned() only loads bdev-\u003ebd_queue through the NULL ns-\u003ebdev of a file-backed namespace; nvmet_execute_identify_ns_zns() crashes before nvmet_copy_to_sgl() of the identify buffer, so no kernel data is returned.\nI:N - The fault is a NULL read in bdev_get_queue() via bdev_is_zoned(); no kernel object is overwritten and a pure NULL dereference does not yield a write or control-flow primitive.\nA:H - Calling bdev_is_zoned(req-\u003ens-\u003ebdev) with a NULL file-backed bdev in nvmet_execute_identify_ns_zns() oopses the kernel, crashing the NVMe target."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:00:04.748Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ce8faf90eb0bf5599b90db38500aefea9426485"
},
{
"url": "https://git.kernel.org/stable/c/b873099944dae5702b4b6db6814d1f1e8d4cfb00"
},
{
"url": "https://git.kernel.org/stable/c/ff28a93a895912010a7827a0e1445ebe8be53b4d"
},
{
"url": "https://git.kernel.org/stable/c/cc29f7082b7ab5e0337f27d1fef16359f05fcffa"
},
{
"url": "https://git.kernel.org/stable/c/1fb1236312ee1a600de6b3ca560f0b3fd5a50471"
},
{
"url": "https://git.kernel.org/stable/c/0b4cf43f9ca7118590a338de900edbd6047cd89f"
},
{
"url": "https://git.kernel.org/stable/c/f594863967d87b7fcbff6e724d51135fd701a13d"
}
],
"title": "nvmet: fix NULL pointer dereference in nvmet_execute_identify_ns_zns()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90228",
"datePublished": "2026-09-17T16:07:36.625Z",
"dateReserved": "2026-09-11T19:38:34.794Z",
"dateUpdated": "2026-10-19T09:00:04.748Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89690 (GCVE-0-2026-89690)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: defer vfree of compound ops to fix rpc_status UAF
The rpc_status netlink dumpit walks every in-flight svc_rqst under
rcu_read_lock and, for NFSv4 requests, reads opnums out of
args->ops[]. But args->ops is a separate vmalloc buffer freed
synchronously by vfree() in nfsd4_release_compoundargs() at the end
of every compound. The dumpit's rcu_read_lock pins the svc_rqst
struct itself (freed via kfree_rcu), but nothing defers the vfree
of the ops buffer across the RCU grace period. A concurrent compound
completion can therefore free the buffer while the dumpit is reading
it — a use-after-free on vmalloc memory.
The trailing seqcount recheck (smp_load_acquire of rq_status_counter)
cannot undo a load that already retired against freed memory.
Fix by replacing vfree(args->ops) with kvfree_rcu_mightsleep(), which
defers the free until after an RCU grace period. This makes the
existing rcu_read_lock in the dumpit sufficient to protect the read.
The tradeoff is that completed compound ops buffers (up to
200 * sizeof(struct nfsd4_op)) persist in memory slightly longer,
across one grace period, before being reclaimed.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "48f72aff24f7a7329209dc6cbc27c869f3e3595c",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "6703199f4d7e7f37d6a726a849eb358e8fae72fb",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "19413ccc45070a7270b9e25c2a258daf7f91de42",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "fca26a3fc19ed02278aa2a150af82d43db0302cb",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: defer vfree of compound ops to fix rpc_status UAF\n\nThe rpc_status netlink dumpit walks every in-flight svc_rqst under\nrcu_read_lock and, for NFSv4 requests, reads opnums out of\nargs-\u003eops[]. But args-\u003eops is a separate vmalloc buffer freed\nsynchronously by vfree() in nfsd4_release_compoundargs() at the end\nof every compound. The dumpit\u0027s rcu_read_lock pins the svc_rqst\nstruct itself (freed via kfree_rcu), but nothing defers the vfree\nof the ops buffer across the RCU grace period. A concurrent compound\ncompletion can therefore free the buffer while the dumpit is reading\nit \u2014 a use-after-free on vmalloc memory.\n\nThe trailing seqcount recheck (smp_load_acquire of rq_status_counter)\ncannot undo a load that already retired against freed memory.\n\nFix by replacing vfree(args-\u003eops) with kvfree_rcu_mightsleep(), which\ndefers the free until after an RCU grace period. This makes the\nexisting rcu_read_lock in the dumpit sufficient to protect the read.\nThe tradeoff is that completed compound ops buffers (up to\n200 * sizeof(struct nfsd4_op)) persist in memory slightly longer,\nacross one grace period, before being reclaimed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is in nfsd_nl_rpc_status_get_dumpit(), reached only via the NFSD_CMD_RPC_STATUS_GET generic-netlink dump over AF_NETLINK. Remote NFSv4 compounds drive the vfree of args-\u003eops in nfsd4_release_compoundargs() but never enter dumpit, so exploitation requires local access.\nAC:L - The attacker fully controls the dumpit reader and can loop it while sending NFSv4 COMPOUNDs with more than eight ops so nfsd vcalloc()s args-\u003eops and vfree()s it on every request. That is an attacker-driven race; the seqcount recheck does not prevent the already-retired load against freed vmalloc memory.\nPR:L - NFSD_CMD_RPC_STATUS_GET is registered with GENL_CMD_CAP_DUMP and no GENL_ADMIN_PERM, so any unprivileged process in the nfsd network namespace can invoke the dump. Exploitation does not require CAP_NET_ADMIN or root.\nUI:N - The attacker issues the netlink dump themselves and can generate the concurrent NFSv4 compounds; no separate victim action such as mounting a filesystem or opening a device is required.\nS:U - This is a kernel vmalloc use-after-free in nfsd on the local host. Impact stays inside the kernel\u0027s security authority and does not cross a VM, IOMMU, or other security boundary.\nC:H - dumpit reads opnums from the vfree\u0027d args-\u003eops[] buffer and returns them to userspace via NFSD_A_RPC_STATUS_COMPOUND_OPS. A kernel UAF with reuse of that vmalloc region yields an arbitrary-read primitive, which CVSS treats as high confidentiality impact.\nI:H - This is a use-after-free of a vmalloc compound-ops array that dumpit walks under rcu_read_lock while nfsd vfree()s it. UAF of attacker-reclaimable kernel memory enables corruption and control-flow hijacking primitives, not crash-only impact.\nA:H - Use-after-free of a vfree\u0027d vmalloc buffer while dumpit still loads args-\u003eops[j].opnum oopses or panics the kernel even if the UAF is not turned into code execution, fully disrupting the NFS server host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:03.524Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/48f72aff24f7a7329209dc6cbc27c869f3e3595c"
},
{
"url": "https://git.kernel.org/stable/c/6703199f4d7e7f37d6a726a849eb358e8fae72fb"
},
{
"url": "https://git.kernel.org/stable/c/19413ccc45070a7270b9e25c2a258daf7f91de42"
},
{
"url": "https://git.kernel.org/stable/c/fca26a3fc19ed02278aa2a150af82d43db0302cb"
}
],
"title": "nfsd: defer vfree of compound ops to fix rpc_status UAF",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89690",
"datePublished": "2026-09-11T19:46:10.632Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-19T08:51:03.524Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72339 (GCVE-0-2026-72339)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
qede: fix off-by-one in BD ring consumption on build_skb failure
qede_rx_build_skb() and qede_tpa_rx_build_skb() do not check for a
NULL return from qede_build_skb(). When it returns NULL under memory
pressure, the functions still consume a BD from the ring before
returning NULL. The callers then recycle additional BDs, resulting in
one extra BD being consumed (off-by-one). This desynchronizes the BD
ring, which can corrupt DMA page reference counts and lead to SLUB
freelist corruption.
Commit 4e910dbe3650 ("qede: confirm skb is allocated before using")
added a NULL check inside qede_build_skb() to prevent a NULL pointer
dereference, but did not address the missing NULL checks in the
callers, making this off-by-one reachable.
Fix this by adding NULL checks for the return value of
qede_build_skb() in both qede_rx_build_skb() and
qede_tpa_rx_build_skb(), returning NULL immediately before any BD ring
manipulation.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e Version: 8a8633978b842c88fbcfe00d4e5dde96048f630e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72339",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:21.272710Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:18.961Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede_fp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ecc05d4b20220a09c9c69584fc46ca55248a374a",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "07be8b8adf91b7ada4c3dacce064d572a6066421",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "1624aa100c0b218181aa74e3696a389b509298cb",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "0bf78df2d3ecb1f4964ff42a7327d25845955153",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "814a5edac8c9fc04051808d5faaa93768e989281",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "b066420e57f3402a52c998678b4678252ac9bb63",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "982d6d6bc059c5dff37a2201c2f08c14bcfcbd20",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
},
{
"lessThan": "a0a558ca7e75b49e71f8c545c30e8c005e6e4e2f",
"status": "affected",
"version": "8a8633978b842c88fbcfe00d4e5dde96048f630e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/qlogic/qede/qede_fp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nqede: fix off-by-one in BD ring consumption on build_skb failure\n\nqede_rx_build_skb() and qede_tpa_rx_build_skb() do not check for a\nNULL return from qede_build_skb(). When it returns NULL under memory\npressure, the functions still consume a BD from the ring before\nreturning NULL. The callers then recycle additional BDs, resulting in\none extra BD being consumed (off-by-one). This desynchronizes the BD\nring, which can corrupt DMA page reference counts and lead to SLUB\nfreelist corruption.\n\nCommit 4e910dbe3650 (\"qede: confirm skb is allocated before using\")\nadded a NULL check inside qede_build_skb() to prevent a NULL pointer\ndereference, but did not address the missing NULL checks in the\ncallers, making this off-by-one reachable.\n\nFix this by adding NULL checks for the return value of\nqede_build_skb() in both qede_rx_build_skb() and\nqede_tpa_rx_build_skb(), returning NULL immediately before any BD ring\nmanipulation."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the qede NIC RX fastpath reached when remote Ethernet frames are received, hardware posts completion queue entries, and NAPI runs qede_poll() -\u003e qede_rx_int() -\u003e qede_rx_process_cqe()/qede_tpa_start() into qede_rx_build_skb() or qede_tpa_rx_build_skb().\nAC:L - An attacker can reliably trigger build_skb() NULL returns by flooding the interface with frames larger than rx_copybreak (256 bytes) to exhaust GFP_ATOMIC skb slab allocations, then the off-by-one BD consumption desynchronizes the ring without races or victim-specific state.\nPR:N - No local account, capability, or authentication is required; any unauthenticated remote host that can send IP/Ethernet traffic to a server using a Marvell/QLogic FastLinQ qede NIC can hit the vulnerable RX/TPA handlers.\nUI:N - Exploitation requires no victim interaction beyond normal network operation; packet reception, MSI-X interrupt handling, and NAPI polling process attacker-supplied frames automatically in kernel context.\nS:U - The flaw corrupts kernel heap metadata (DMA page refcounts and SLUB freelists) within the host kernel security boundary; it does not by itself cross VM, container, or IOMMU isolation boundaries.\nC:H - BD ring desynchronization corrupts DMA page reference counts and can corrupt SLUB freelists; this class of kernel heap corruption is exploitable for arbitrary kernel memory reads and information disclosure beyond a simple crash.\nI:H - SLUB freelist corruption from mismatched BD ring consumption enables arbitrary kernel memory writes and control-flow hijacking primitives, supporting local privilege escalation or arbitrary code execution in kernel context.\nA:H - Reference-count and SLUB corruption from the desynchronized BD ring can cause kernel BUG/oops/panic or a wedged RX datapath, resulting in complete loss of host availability on affected systems."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:57.907Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ecc05d4b20220a09c9c69584fc46ca55248a374a"
},
{
"url": "https://git.kernel.org/stable/c/07be8b8adf91b7ada4c3dacce064d572a6066421"
},
{
"url": "https://git.kernel.org/stable/c/1624aa100c0b218181aa74e3696a389b509298cb"
},
{
"url": "https://git.kernel.org/stable/c/0bf78df2d3ecb1f4964ff42a7327d25845955153"
},
{
"url": "https://git.kernel.org/stable/c/814a5edac8c9fc04051808d5faaa93768e989281"
},
{
"url": "https://git.kernel.org/stable/c/b066420e57f3402a52c998678b4678252ac9bb63"
},
{
"url": "https://git.kernel.org/stable/c/982d6d6bc059c5dff37a2201c2f08c14bcfcbd20"
},
{
"url": "https://git.kernel.org/stable/c/a0a558ca7e75b49e71f8c545c30e8c005e6e4e2f"
}
],
"title": "qede: fix off-by-one in BD ring consumption on build_skb failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72339",
"datePublished": "2026-08-15T05:55:46.480Z",
"dateReserved": "2026-08-09T03:40:39.920Z",
"dateUpdated": "2026-10-16T18:55:18.961Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46135 (GCVE-0-2026-46135)
Vulnerability from cvelistv5
Published
2026-05-28 09:35
Modified
2026-10-19 19:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: fix race between ICReq handling and queue teardown
nvmet_tcp_handle_icreq() updates queue->state after sending an
Initialization Connection Response (ICResp), but it does so without
serializing against target-side queue teardown.
If an NVMe/TCP host sends an Initialization Connection Request
(ICReq) and immediately closes the connection, target-side teardown
may start in softirq context before io_work drains the already
buffered ICReq. In that case, nvmet_tcp_schedule_release_queue()
sets queue->state to NVMET_TCP_Q_DISCONNECTING and drops the queue
reference under state_lock.
If io_work later processes that ICReq, nvmet_tcp_handle_icreq() can
still overwrite the state back to NVMET_TCP_Q_LIVE. That defeats the
DISCONNECTING-state guard in nvmet_tcp_schedule_release_queue() and
allows a later socket state change to re-enter teardown and issue a
second kref_put() on an already released queue.
The ICResp send failure path has the same problem. If teardown has
already moved the queue to DISCONNECTING, a send error can still
overwrite the state with NVMET_TCP_Q_FAILED, again reopening the
window for a second teardown path to drop the queue reference.
Fix this by serializing both post-send state transitions with
state_lock and bailing out if teardown has already started.
Use -ESHUTDOWN as an internal sentinel for that bail-out path rather
than propagating it as a transport error like -ECONNRESET. Keep
nvmet_tcp_socket_error() setting rcv_state to NVMET_TCP_RECV_ERR before
honoring that sentinel so receive-side parsing stays quiesced until the
existing release path completes.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 Version: 872d26a391da92ed8f0c0f5cb5fef428067b7f30 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-46135",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:20:14.078561Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T19:36:51.823Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b7dd4d27aa70bd98bb10572310e913668baf6a65",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "9c63cf80895a70eb4fcfcaa725bb1ac9ae76f02b",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "6f96dea4819d122737b217ea16660d255abbf8c6",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "5f0b95ef68ab9afba75b20eebf436130f80c161a",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "49891c8fe0cb43fbbe480da1cdccfbbaeb820cb3",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "67e1aaf93b495c2f10bc8a5fbba575fbb7f449b6",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "dcfe4d1f7960e7d1c01642318f3aae1a604f8508",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
},
{
"lessThan": "5293a8882c549fab4a878bc76b0b6c951f980a61",
"status": "affected",
"version": "872d26a391da92ed8f0c0f5cb5fef428067b7f30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.144",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.88",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.30",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.144",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.88",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.30",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.7",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: fix race between ICReq handling and queue teardown\n\nnvmet_tcp_handle_icreq() updates queue-\u003estate after sending an\nInitialization Connection Response (ICResp), but it does so without\nserializing against target-side queue teardown.\n\nIf an NVMe/TCP host sends an Initialization Connection Request\n(ICReq) and immediately closes the connection, target-side teardown\nmay start in softirq context before io_work drains the already\nbuffered ICReq. In that case, nvmet_tcp_schedule_release_queue()\nsets queue-\u003estate to NVMET_TCP_Q_DISCONNECTING and drops the queue\nreference under state_lock.\n\nIf io_work later processes that ICReq, nvmet_tcp_handle_icreq() can\nstill overwrite the state back to NVMET_TCP_Q_LIVE. That defeats the\nDISCONNECTING-state guard in nvmet_tcp_schedule_release_queue() and\nallows a later socket state change to re-enter teardown and issue a\nsecond kref_put() on an already released queue.\n\nThe ICResp send failure path has the same problem. If teardown has\nalready moved the queue to DISCONNECTING, a send error can still\noverwrite the state with NVMET_TCP_Q_FAILED, again reopening the\nwindow for a second teardown path to drop the queue reference.\n\nFix this by serializing both post-send state transitions with\nstate_lock and bailing out if teardown has already started.\n\nUse -ESHUTDOWN as an internal sentinel for that bail-out path rather\nthan propagating it as a transport error like -ECONNRESET. Keep\nnvmet_tcp_socket_error() setting rcv_state to NVMET_TCP_RECV_ERR before\nhonoring that sentinel so receive-side parsing stays quiesced until the\nexisting release path completes."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the NVMe-over-TCP target driver, which processes PDUs from remote network peers on a listening TCP port (default 4420); the race is triggered by sending an ICReq and closing the connection \u2014 purely remote network operations.\nAC:L - The attacker controls both sides of the race (sends the ICReq, then immediately closes the connection) and can open unlimited connections to reliably win the timing window between softirq teardown and io_work processing, so success does not depend on conditions beyond the attacker\u0027s control.\nPR:N - The ICReq is the first PDU of the NVMe/TCP connection handshake and is handled entirely pre-authentication; an unauthenticated remote attacker need only connect and send an ICReq, with no credentials required in the default non-TLS configuration.\nUI:N - The attacker initiates the connection and triggers the race entirely on their own; no action from any local user or victim is required.\nS:U - The corruption is confined to the kernel\u0027s own memory and security authority; there is no crossing of a VM, IOMMU, or sandbox boundary.\nC:H - The double kref_put produces a use-after-free of the queue object, and per kernel UAF guidance this gives the attacker control over freed object contents, enabling arbitrary kernel memory disclosure.\nI:H - The use-after-free / double-free enables heap spraying to reclaim the freed allocation, providing a write primitive and potential control-flow hijack, so integrity impact is high.\nA:H - The refcount underflow and resulting use-after-free reliably cause kernel oops/panic, taking down the target system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:29:58.184Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b7dd4d27aa70bd98bb10572310e913668baf6a65"
},
{
"url": "https://git.kernel.org/stable/c/9c63cf80895a70eb4fcfcaa725bb1ac9ae76f02b"
},
{
"url": "https://git.kernel.org/stable/c/6f96dea4819d122737b217ea16660d255abbf8c6"
},
{
"url": "https://git.kernel.org/stable/c/5f0b95ef68ab9afba75b20eebf436130f80c161a"
},
{
"url": "https://git.kernel.org/stable/c/49891c8fe0cb43fbbe480da1cdccfbbaeb820cb3"
},
{
"url": "https://git.kernel.org/stable/c/67e1aaf93b495c2f10bc8a5fbba575fbb7f449b6"
},
{
"url": "https://git.kernel.org/stable/c/dcfe4d1f7960e7d1c01642318f3aae1a604f8508"
},
{
"url": "https://git.kernel.org/stable/c/5293a8882c549fab4a878bc76b0b6c951f980a61"
}
],
"title": "nvmet-tcp: fix race between ICReq handling and queue teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46135",
"datePublished": "2026-05-28T09:35:49.828Z",
"dateReserved": "2026-05-13T15:03:33.099Z",
"dateUpdated": "2026-10-19T19:36:51.823Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74398 (GCVE-0-2026-74398)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: addrconf: bail out of dad_failure when state is no longer POSTDAD
addrconf_dad_failure() transitions ifp->state from DAD to POSTDAD
via addrconf_dad_end(), which drops ifp->lock on return. The lock
is re-acquired after net_info_ratelimited(). A concurrent
ipv6_del_addr() can take the lock in that window, set ifp->state
to DEAD and run list_del_rcu(&ifp->if_list).
addrconf_dad_failure() then overwrites DEAD with ERRDAD at errdad:
and schedules a new dad_work. The work calls ipv6_del_addr()
again, hitting the already-poisoned list entry:
general protection fault: 0000 [#1] SMP NOPTI
CPU: 4 PID: 217 Comm: kworker/4:1
Workqueue: ipv6_addrconf addrconf_dad_work
RIP: 0010:ipv6_del_addr+0xe9/0x280
RAX: dead000000000122
Call Trace:
addrconf_dad_stop+0x113/0x140
addrconf_dad_work+0x28c/0x430
process_one_work+0x1eb/0x3b0
worker_thread+0x4d/0x400
kthread+0x104/0x140
ret_from_fork+0x35/0x40
Fold the addrconf_dad_end() logic into addrconf_dad_failure() under
a single ifp->lock critical section. The STABLE_PRIVACY branch
temporarily drops ifp->lock around address regeneration, so at
lock_errdad: verify the state is still POSTDAD before transitioning
to ERRDAD; bail out otherwise to avoid overwriting a state set by
another path while the lock was released.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: c15b1ccadb323ea50023e8f1cca2954129a62b51 Version: 835b474b8f70fa68d68abffad37378e92f661802 Version: 3.10.105 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74398",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:29.102774Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:41.331Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/addrconf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "47b05836705b63dab93d9ac7c69a3a507375ef80",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "d21be7d051012c6b572fa4e3334443c250216f7b",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "875c284c0f98b042bb97abad460f63a24c977f88",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "8ed0ce9ea58d677d1bac92614ee5f60f8ea57363",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "3bdc86d89fd6c6523753fa6f42fcfaf30ee699cb",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "b61af0268e3d1308c466bf0be5dced844eafc1ef",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "e889aa99ad3ed48bb0ddcff6475b17542532d18b",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"lessThan": "627ac78f2741e2ebd2225e2e953b6964a8a9182f",
"status": "affected",
"version": "c15b1ccadb323ea50023e8f1cca2954129a62b51",
"versionType": "git"
},
{
"status": "affected",
"version": "835b474b8f70fa68d68abffad37378e92f661802",
"versionType": "git"
},
{
"lessThan": "3.11",
"status": "affected",
"version": "3.10.105",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/addrconf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.10.105",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: addrconf: bail out of dad_failure when state is no longer POSTDAD\n\naddrconf_dad_failure() transitions ifp-\u003estate from DAD to POSTDAD\nvia addrconf_dad_end(), which drops ifp-\u003elock on return. The lock\nis re-acquired after net_info_ratelimited(). A concurrent\nipv6_del_addr() can take the lock in that window, set ifp-\u003estate\nto DEAD and run list_del_rcu(\u0026ifp-\u003eif_list).\n\naddrconf_dad_failure() then overwrites DEAD with ERRDAD at errdad:\nand schedules a new dad_work. The work calls ipv6_del_addr()\nagain, hitting the already-poisoned list entry:\n\n general protection fault: 0000 [#1] SMP NOPTI\n CPU: 4 PID: 217 Comm: kworker/4:1\n Workqueue: ipv6_addrconf addrconf_dad_work\n RIP: 0010:ipv6_del_addr+0xe9/0x280\n RAX: dead000000000122\n Call Trace:\n addrconf_dad_stop+0x113/0x140\n addrconf_dad_work+0x28c/0x430\n process_one_work+0x1eb/0x3b0\n worker_thread+0x4d/0x400\n kthread+0x104/0x140\n ret_from_fork+0x35/0x40\n\nFold the addrconf_dad_end() logic into addrconf_dad_failure() under\na single ifp-\u003elock critical section. The STABLE_PRIVACY branch\ntemporarily drops ifp-\u003elock around address regeneration, so at\nlock_errdad: verify the state is still POSTDAD before transitioning\nto ERRDAD; bail out otherwise to avoid overwriting a state set by\nanother path while the lock was released."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from inbound ICMPv6 Neighbor Discovery (NS/NA) packets processed by icmp6_rcv()\u2192ndisc_rcv()\u2192addrconf_dad_failure(), the standard IPv6 network receive path on internet-facing servers, cloud VMs, phones, and IoT devices on shared L2 segments.\nAC:L - An attacker controls both sides of the race by flooding forged NS/NA during DAD while concurrently triggering ipv6_del_addr() via RTM_DELADDR/CAP_NET_ADMIN in a user namespace, CNI/orchestration address teardown, or interface-down processing; retries make the narrow window reliably winnable.\nPR:N - Triggering DAD failure requires only unauthenticated ND packet injection on the victim\u0027s link; the concurrent ipv6_del_addr() leg needs no victim credentials and can come from automatic address lifecycle events (CNI churn, SLAAC/privacy regeneration, netdev down) rather than attacker admin rights.\nUI:N - Exploitation does not require any victim user action such as opening files or mounting filesystems; it targets automatic IPv6 address configuration and DAD processing that occurs during normal network connectivity and boot.\nS:U - The corrupted inet6_ifaddr lifecycle and resulting kernel crash occur within kernel memory management; impact does not cross a VM, container, or IOMMU security boundary into a separate authority.\nC:H - The race leaves a freed/partially torn-down inet6_ifaddr with corrupted state and a poisoned RCU list entry (LIST_POISON2), constituting use-after-free class memory corruption that can expose adjacent kernel heap contents beyond a pure crash.\nI:H - Corrupting inet6_ifaddr state after list_del_rcu() and re-queuing dad_work on a dead object enables heap reuse and control of freed object contents, providing a path to arbitrary kernel memory writes and potential code execution beyond denial of service.\nA:H - The demonstrated failure is a general protection fault in ipv6_del_addr() from addrconf_dad_work on the ipv6_addrconf workqueue, causing a kernel oops/panic and complete loss of system availability on affected hosts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:43.132Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/47b05836705b63dab93d9ac7c69a3a507375ef80"
},
{
"url": "https://git.kernel.org/stable/c/d21be7d051012c6b572fa4e3334443c250216f7b"
},
{
"url": "https://git.kernel.org/stable/c/875c284c0f98b042bb97abad460f63a24c977f88"
},
{
"url": "https://git.kernel.org/stable/c/8ed0ce9ea58d677d1bac92614ee5f60f8ea57363"
},
{
"url": "https://git.kernel.org/stable/c/3bdc86d89fd6c6523753fa6f42fcfaf30ee699cb"
},
{
"url": "https://git.kernel.org/stable/c/b61af0268e3d1308c466bf0be5dced844eafc1ef"
},
{
"url": "https://git.kernel.org/stable/c/e889aa99ad3ed48bb0ddcff6475b17542532d18b"
},
{
"url": "https://git.kernel.org/stable/c/627ac78f2741e2ebd2225e2e953b6964a8a9182f"
}
],
"title": "ipv6: addrconf: bail out of dad_failure when state is no longer POSTDAD",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74398",
"datePublished": "2026-08-15T05:59:10.113Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-10-16T19:05:41.331Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89694 (GCVE-0-2026-89694)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: check client ownership when cancelling a copy-notify stateid
On the OFFLOAD_CANCEL path (clp != NULL), manage_cpntf_state() freed the
target cpntf state without checking ownership. The lookup key
st->si_opaque.so_id is allocated cyclically (guessable) and the embedded
clientid is the fixed per-net nn->s2s_cp_cl_id, so any authenticated
NFSv4.2 client could cancel and free another client's copy-notify
stateid.
Compare the creating clientid recorded in state->cp_p_clid against the
requesting client's cl_clientid and return nfserr_bad_stateid on a
mismatch instead of freeing the entry.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 Version: ce0887ac96d35c7105090e166bb0807dc0a0e838 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "88daaed26e17e1c7e851859b5bbb4f0e1ab6d0e9",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "81b2cfe767943922eca906a2a5af23a0ce5d0f35",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "6bba72b8ee68ad631b94bd439592cba46de54d7d",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "75268f6cfe26b09a7e4d3216367e87fe9e2a26aa",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "b1eca07303594ca27f5dc360a6946bd7e1f5b04c",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "b42dc26a14b4ad5d6daaada11ec4c70744141c25",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "d801906165cb5cc250d5cbe44935594e170be3e2",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
},
{
"lessThan": "6bdbfab96e0cf25e5f57dac5c09dc1749751a4bf",
"status": "affected",
"version": "ce0887ac96d35c7105090e166bb0807dc0a0e838",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: check client ownership when cancelling a copy-notify stateid\n\nOn the OFFLOAD_CANCEL path (clp != NULL), manage_cpntf_state() freed the\ntarget cpntf state without checking ownership. The lookup key\nst-\u003esi_opaque.so_id is allocated cyclically (guessable) and the embedded\nclientid is the fixed per-net nn-\u003es2s_cp_cl_id, so any authenticated\nNFSv4.2 client could cancel and free another client\u0027s copy-notify\nstateid.\n\nCompare the creating clientid recorded in state-\u003ecp_p_clid against the\nrequesting client\u0027s cl_clientid and return nfserr_bad_stateid on a\nmismatch instead of freeing the entry."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:07.514Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/88daaed26e17e1c7e851859b5bbb4f0e1ab6d0e9"
},
{
"url": "https://git.kernel.org/stable/c/81b2cfe767943922eca906a2a5af23a0ce5d0f35"
},
{
"url": "https://git.kernel.org/stable/c/6bba72b8ee68ad631b94bd439592cba46de54d7d"
},
{
"url": "https://git.kernel.org/stable/c/75268f6cfe26b09a7e4d3216367e87fe9e2a26aa"
},
{
"url": "https://git.kernel.org/stable/c/b1eca07303594ca27f5dc360a6946bd7e1f5b04c"
},
{
"url": "https://git.kernel.org/stable/c/b42dc26a14b4ad5d6daaada11ec4c70744141c25"
},
{
"url": "https://git.kernel.org/stable/c/d801906165cb5cc250d5cbe44935594e170be3e2"
},
{
"url": "https://git.kernel.org/stable/c/6bdbfab96e0cf25e5f57dac5c09dc1749751a4bf"
}
],
"title": "nfsd: check client ownership when cancelling a copy-notify stateid",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89694",
"datePublished": "2026-09-11T19:46:13.519Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-19T08:51:07.514Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53377 (GCVE-0-2026-53377)
Vulnerability from cvelistv5
Published
2026-07-19 10:02
Modified
2026-10-21 12:42
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/msm: always recover the gpu
Previously, in case there was no more work to do, recover worker
wouldn't trigger recovery and would instead rely on the gpu going to
sleep and then resuming when more work is submitted.
Recover_worker will first increment the fence of the hung ring so, if
there's only one job submitted to a ring and that causes an hang, it
will early out.
There's no guarantee that the gpu will suspend and resume before more
work is submitted and if the gpu is in a hung state it will stay in that
state and probably trigger a timeout again.
Just stop checking and always recover the gpu.
Patchwork: https://patchwork.freedesktop.org/patch/704066/
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/msm/msm_gpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "01930f94b8b13400f3346044cacf98f01d337f3d",
"status": "affected",
"version": "c8af219d18502c52319df8d4e3dcfe29a3ca31ab",
"versionType": "git"
},
{
"lessThan": "1c0034c1a614a118acbb4bdf7ab51490ee919ad2",
"status": "affected",
"version": "c8af219d18502c52319df8d4e3dcfe29a3ca31ab",
"versionType": "git"
},
{
"lessThan": "132b8d51f0ffbee6e4e1ebbe1a50330aaf2dbd5d",
"status": "affected",
"version": "c8af219d18502c52319df8d4e3dcfe29a3ca31ab",
"versionType": "git"
},
{
"lessThan": "2f5c90478749dfd9a32386100b6078a364298b01",
"status": "affected",
"version": "c8af219d18502c52319df8d4e3dcfe29a3ca31ab",
"versionType": "git"
},
{
"lessThan": "01a0d6cd7032e9993feea19fadb03ef9d5b488f2",
"status": "affected",
"version": "c8af219d18502c52319df8d4e3dcfe29a3ca31ab",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/msm/msm_gpu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.32",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.32",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.9",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: always recover the gpu\n\nPreviously, in case there was no more work to do, recover worker\nwouldn\u0027t trigger recovery and would instead rely on the gpu going to\nsleep and then resuming when more work is submitted.\n\nRecover_worker will first increment the fence of the hung ring so, if\nthere\u0027s only one job submitted to a ring and that causes an hang, it\nwill early out.\n\nThere\u0027s no guarantee that the gpu will suspend and resume before more\nwork is submitted and if the gpu is in a hung state it will stay in that\nstate and probably trigger a timeout again.\n\nJust stop checking and always recover the gpu.\n\nPatchwork: https://patchwork.freedesktop.org/patch/704066/"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:42:34.880Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/01930f94b8b13400f3346044cacf98f01d337f3d"
},
{
"url": "https://git.kernel.org/stable/c/1c0034c1a614a118acbb4bdf7ab51490ee919ad2"
},
{
"url": "https://git.kernel.org/stable/c/132b8d51f0ffbee6e4e1ebbe1a50330aaf2dbd5d"
},
{
"url": "https://git.kernel.org/stable/c/2f5c90478749dfd9a32386100b6078a364298b01"
},
{
"url": "https://git.kernel.org/stable/c/01a0d6cd7032e9993feea19fadb03ef9d5b488f2"
}
],
"title": "drm/msm: always recover the gpu",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53377",
"datePublished": "2026-07-19T10:02:00.168Z",
"dateReserved": "2026-06-09T07:44:35.401Z",
"dateUpdated": "2026-10-21T12:42:34.880Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64279 (GCVE-0-2026-64279)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-19 20:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
i2c: core: fix adapter deregistration race
Adapters can be looked up by their id using i2c_get_adapter() which
takes a reference to the embedded struct device.
Remove the adapter from the IDR before tearing it down during
deregistration (and on registration failure) to make sure its resources
are not accessed after having been freed (e.g. the device name).
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 Version: 35fc37f8188177e3ba3e7f99a6e3300e490e9181 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:23:33.930Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64279",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:38:16.822783Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:28:17.398Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d39282f552dd6c35b9b84b4af78f1198c24f3373",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "11dfa37bf544cc806f21742ca2fd2d841bd7032e",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "9882a9bd74db08e7bae5821a7050627ae92d3380",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "bb234487a447a99315add1b46aa57b72e163e1eb",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "b6d2af6fe9c1f5ec0484536753c979cbd40a8ac3",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "35dbd1f1f603401155cbd3a180bb18e3a3b675b8",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
},
{
"lessThan": "b1a58ed9eab146b36f41a55db8f5d7ce9fdedf3f",
"status": "affected",
"version": "35fc37f8188177e3ba3e7f99a6e3300e490e9181",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.31"
},
{
"lessThan": "2.6.31",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "2.6.31",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.31",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: core: fix adapter deregistration race\n\nAdapters can be looked up by their id using i2c_get_adapter() which\ntakes a reference to the embedded struct device.\n\nRemove the adapter from the IDR before tearing it down during\nderegistration (and on registration failure) to make sure its resources\nare not accessed after having been freed (e.g. the device name)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - An attacker reaches the vulnerable lookup through local open/openat calls on /dev/i2c-N and can trigger dynamic-adapter teardown through local usbfs ioctls. No network path directly reaches i2c_get_adapter().\nAC:L - An attacker with access to both device nodes can control both sides by racing parallel I2C opens against repeatable USBDEVFS_DISCONNECT and rebind operations. No victim-controlled timing or uncontrollable condition is required.\nPR:L - i2cdev_open() and the usbfs disconnect path impose device-node DAC, LSM, and device-cgroup checks but no capability requirement. A regular user granted I2C and USB-device access can trigger the race without init-namespace root.\nUI:N - The attacker can initiate the adapter lookup, software disconnect, and subsequent stale-adapter operations directly. No separate victim action is required.\nS:U - Exploitation corrupts or executes code within the same host kernel security authority. This is ordinary local kernel privilege escalation rather than a VM, IOMMU, or other scope-boundary escape.\nC:H - The race can return an adapter after its embedded device resources have been released, followed by freeing of the enclosing dynamic-adapter allocation. Reclaiming this heap object permits attacker-influenced pointer dereferences and potential arbitrary kernel-memory disclosure.\nI:H - The stale adapter contains algorithm and locking function pointers, while I2C ioctls also write mutable adapter fields. Heap reclamation can therefore provide memory-corruption and control-flow-hijacking primitives leading to kernel code execution.\nA:H - Refcount resurrection, stale device-resource accesses, and dereferences through a freed adapter can produce kernel warnings, oopses, or panics. An attacker controlling disconnect and rebind can repeat the trigger."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:52:34.328Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d39282f552dd6c35b9b84b4af78f1198c24f3373"
},
{
"url": "https://git.kernel.org/stable/c/11dfa37bf544cc806f21742ca2fd2d841bd7032e"
},
{
"url": "https://git.kernel.org/stable/c/9882a9bd74db08e7bae5821a7050627ae92d3380"
},
{
"url": "https://git.kernel.org/stable/c/bb234487a447a99315add1b46aa57b72e163e1eb"
},
{
"url": "https://git.kernel.org/stable/c/b6d2af6fe9c1f5ec0484536753c979cbd40a8ac3"
},
{
"url": "https://git.kernel.org/stable/c/35dbd1f1f603401155cbd3a180bb18e3a3b675b8"
},
{
"url": "https://git.kernel.org/stable/c/b1a58ed9eab146b36f41a55db8f5d7ce9fdedf3f"
}
],
"title": "i2c: core: fix adapter deregistration race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64279",
"datePublished": "2026-07-25T08:49:23.145Z",
"dateReserved": "2026-07-19T15:36:31.777Z",
"dateUpdated": "2026-10-19T20:28:17.398Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80663 (GCVE-0-2026-80663)
Vulnerability from cvelistv5
Published
2026-08-28 06:49
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tools/power/x86/intel-speed-select: Harden daemon pidfile open
Avoid symlink-based pidfile clobbering by opening the pidfile with
O_NOFOLLOW and validating it with fstat() before locking/writing.
The daemon currently uses a fixed pidfile path under /tmp. A local
unprivileged user can pre-create a symlink at that path and cause a
root-run daemon instance to write into an attacker-chosen file.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 Version: 7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80663",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:19:25.728205Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:32.045Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"tools/power/x86/intel-speed-select/isst-daemon.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "905493a6338c82a70da16f86e0a6215db5a3d73d",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
},
{
"lessThan": "db938eb9a3c1317596c28e94413b33426508d51b",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
},
{
"lessThan": "72a07abc6b9046f07a08bba353cad7667bcc9dce",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
},
{
"lessThan": "19ffeb30fdfce63f8d6aca71bcdddb3f69d46278",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
},
{
"lessThan": "e8adac69d1bdf035ef97cc914e845acd4ef08e28",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
},
{
"lessThan": "607af438e6430893a822964c841a1994b33acccc",
"status": "affected",
"version": "7fd786dfbd2c55ddee3b87f33c82f1c58bdb1dd6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"tools/power/x86/intel-speed-select/isst-daemon.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntools/power/x86/intel-speed-select: Harden daemon pidfile open\n\nAvoid symlink-based pidfile clobbering by opening the pidfile with\nO_NOFOLLOW and validating it with fstat() before locking/writing.\n\nThe daemon currently uses a fixed pidfile path under /tmp. A local\nunprivileged user can pre-create a symlink at that path and cause a\nroot-run daemon instance to write into an attacker-chosen file."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local filesystem access to plant a symlink at the fixed /tmp/hfi-events.pid path before the root-run intel-speed-select --oob daemon calls open(); there is no network, adjacent, or physical-device code path to daemonize().\nAC:L - The attacker fully controls symlink creation in world-writable /tmp and can leave it in place until the root daemon starts or restarts (e.g., via systemd on Sapphire Rapids datacenter hosts); no uncontrollable timing or memory-layout conditions are required.\nPR:L - Only an unprivileged local account is needed to create the /tmp/hfi-events.pid symlink; the attacker does not need init-namespace root, CAP_SYS_ADMIN, or any capability beyond ordinary local shell access.\nUI:N - Per CVSS 3.1, administrator installation or routine execution of the vulnerable daemon is not counted as user interaction; once the root OOB service is running, the attacker needs only the pre-planted symlink with no further victim action.\nS:U - The root daemon\u0027s misdirected open/write affects host filesystem objects within the same OS security authority; this is a local root-assisted file clobber, not a VM escape, container breakout, or IOMMU boundary bypass.\nC:N - The daemon only writes a short numeric PID string via write() and never reads from the opened descriptor; there is no memory corruption, out-of-bounds read, or other information-disclosure primitive.\nI:H - A symlink causes the root daemon\u0027s open(O_RDWR|O_CREAT) to follow into an attacker-chosen path, letting root truncate/overwrite the start of protected files (e.g., /etc/passwd, sudoers, unit files) or create new root-owned files in restricted directories.\nA:H - Overwriting the beginning of critical configuration or authentication files with root privileges can break login, service startup, or ISST OOB management, producing system-wide denial of service beyond a single daemon crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:21:48.835Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/905493a6338c82a70da16f86e0a6215db5a3d73d"
},
{
"url": "https://git.kernel.org/stable/c/db938eb9a3c1317596c28e94413b33426508d51b"
},
{
"url": "https://git.kernel.org/stable/c/72a07abc6b9046f07a08bba353cad7667bcc9dce"
},
{
"url": "https://git.kernel.org/stable/c/19ffeb30fdfce63f8d6aca71bcdddb3f69d46278"
},
{
"url": "https://git.kernel.org/stable/c/e8adac69d1bdf035ef97cc914e845acd4ef08e28"
},
{
"url": "https://git.kernel.org/stable/c/607af438e6430893a822964c841a1994b33acccc"
}
],
"title": "tools/power/x86/intel-speed-select: Harden daemon pidfile open",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80663",
"datePublished": "2026-08-28T06:49:06.882Z",
"dateReserved": "2026-08-26T14:34:25.781Z",
"dateUpdated": "2026-10-16T19:26:32.045Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80664 (GCVE-0-2026-80664)
Vulnerability from cvelistv5
Published
2026-08-28 06:49
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xt_nat: reject unsupported target families
xt_nat SNAT and DNAT target handlers assume IP-family conntrack state
is present and can dereference a NULL pointer when instantiated from an
unsupported family through nft_compat. A bridge-family compat rule can
therefore trigger a NULL-dereference in nf_nat_setup_info().
Reject non-IP families in xt_nat_checkentry() so unsupported targets
cannot be installed. Keep NFPROTO_INET allowed for valid inet NAT
compat users and leave the runtime fast path unchanged.
[ The crash was fixed via
9dbba7e694ec ("netfilter: nft_compat: ebtables emulation must reject non-bridge targets"),
so this patch is no longer critical.
Nevertheless, NAT is only relevant for ipv4/ipv6, so this extra
family check is a good idea in any case. ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 Version: c7232c9979cba684c50b64c513c4a83c9aa70563 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80664",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:19:29.866934Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:32.191Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_nat.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "49abe564391411057a26a9a943c8e17867c3b9b4",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "0afc9ad987c0faa80ab5f8d6e7815085ac8dbb82",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "4fbc2bac02edabb665beb2aa87ca6f1e1d4c4777",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "a842dab87cab29f2a5798a47b2dc5e6a449950bf",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "e35c048d7511e9d4c2a537b8a231c49606e97c16",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "679ced28a9dc2f6dc679eb05027d779693e60902",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "ec88fa71c82072e9189983b05b499d3507550271",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
},
{
"lessThan": "5d1a2240935ea47e2673d0ea17fdb058e4dc91dd",
"status": "affected",
"version": "c7232c9979cba684c50b64c513c4a83c9aa70563",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/xt_nat.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.7"
},
{
"lessThan": "3.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: xt_nat: reject unsupported target families\n\nxt_nat SNAT and DNAT target handlers assume IP-family conntrack state\nis present and can dereference a NULL pointer when instantiated from an\nunsupported family through nft_compat. A bridge-family compat rule can\ntherefore trigger a NULL-dereference in nf_nat_setup_info().\n\nReject non-IP families in xt_nat_checkentry() so unsupported targets\ncannot be installed. Keep NFPROTO_INET allowed for valid inet NAT\ncompat users and leave the runtime fast path unchanged.\n\n[ The crash was fixed via\n 9dbba7e694ec (\"netfilter: nft_compat: ebtables emulation must reject non-bridge targets\"),\n so this patch is no longer critical.\n Nevertheless, NAT is only relevant for ipv4/ipv6, so this extra\n family check is a good idea in any case. ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires installing a bridge-family nft_compat SNAT/DNAT rule via NETLINK_NETFILTER (nftables netlink), a local syscall path; although matching bridge traffic can trigger evaluation, the vulnerable rule state cannot be created without local netfilter administration.\nAC:L - Once CAP_NET_ADMIN is held in the target network namespace, xt_request_find_target() deterministically resolves UNSPEC-family SNAT/DNAT rev 1/2 targets for bridge chains, and sending bridge traffic through the committed rule reliably reaches nf_nat_setup_info() with a NULL nf_conn from nf_ct_get().\nPR:L - All nfnetlink handlers are gated by netlink_net_capable(skb, CAP_NET_ADMIN), which checks capability in the socket network namespace user namespace; unprivileged local users routinely obtain CAP_NET_ADMIN via user and network namespaces (unshare -Urn), enabling installation of the malicious bridge compat rule.\nUI:N - No victim interaction is required beyond the attacker obtaining namespace-local CAP_NET_ADMIN, creating a bridge nftables chain with a compat SNAT/DNAT target, and delivering matching bridge traffic; no third-party actions such as mounting filesystems or opening files are needed.\nS:U - Impact is confined to the host kernel netfilter/NAT subsystem within the same security authority; this is not a VM escape, hypervisor boundary crossing, or IOMMU/DMA sandbox bypass, but standard in-kernel misbehavior from an invalid family/target pairing.\nC:L - The primary runtime failure is a NULL nf_conn dereference in nf_nat_setup_info(), and the surrounding nft_compat bridge/xtables semantic mismatch can leak limited kernel information via oops register dumps and crash logs readable by the local attacker who triggered the fault.\nI:H - Missing family validation lets IP-family NAT targets execute under bridge nft_compat semantics where nf_ct_get() yields NULL, constituting a type/family confusion that can corrupt netfilter verdict and NAT handling before faulting; mis-instantiated SNAT/DNAT targets should not run in bridge context at all.\nA:H - Passing bridge traffic through a bridge-family compat SNAT/DNAT rule causes nf_nat_setup_info() to dereference the NULL connection from nf_ct_get(), producing a kernel oops or panic; repeated matching traffic can retrigger the crash for sustained denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:21:50.580Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/49abe564391411057a26a9a943c8e17867c3b9b4"
},
{
"url": "https://git.kernel.org/stable/c/0afc9ad987c0faa80ab5f8d6e7815085ac8dbb82"
},
{
"url": "https://git.kernel.org/stable/c/4fbc2bac02edabb665beb2aa87ca6f1e1d4c4777"
},
{
"url": "https://git.kernel.org/stable/c/a842dab87cab29f2a5798a47b2dc5e6a449950bf"
},
{
"url": "https://git.kernel.org/stable/c/e35c048d7511e9d4c2a537b8a231c49606e97c16"
},
{
"url": "https://git.kernel.org/stable/c/679ced28a9dc2f6dc679eb05027d779693e60902"
},
{
"url": "https://git.kernel.org/stable/c/ec88fa71c82072e9189983b05b499d3507550271"
},
{
"url": "https://git.kernel.org/stable/c/5d1a2240935ea47e2673d0ea17fdb058e4dc91dd"
}
],
"title": "netfilter: xt_nat: reject unsupported target families",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80664",
"datePublished": "2026-08-28T06:49:07.478Z",
"dateReserved": "2026-08-26T14:34:25.781Z",
"dateUpdated": "2026-10-16T19:26:32.191Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80844 (GCVE-0-2026-80844)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: ah6: validate routing header segments_left
AH6 rearranges routing-header addresses before computing or verifying the
ICV. ipv6_rearrange_rthdr() assumes that segments_left is not larger than
the number of addresses described by the routing header's hdrlen field.
That assumption does not hold for raw IPv6 HDRINCL packets. A packet with
hdrlen equal to 2 describes one address, but can carry an arbitrary
segments_left value. With segments_left equal to 255, the function moves
its address pointer 4,064 bytes backwards and passes a 4,064-byte length to
memmove(), resulting in an out-of-bounds access.
Validate the invariant locally before modifying the routing header or
performing any address-pointer arithmetic, and propagate malformed-header
errors to the existing AH6 input and output error paths.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ah6.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2dc650956e4e163b879b3fb1027f9557abc5c985",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "48b0e36cf54358276ee7aa897034c973097d2bc9",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1b7e066eabcc7d6d8f476c34739b45932f2f4c31",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f00df8500e5a36ba70d336fd34bd2152ea074e5f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1516e31ac458a738be485620579d8f7fb2700fcb",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6733ae71268a27d598cfb3f3339a3c950b9b656d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0bf11081ad3753938a2b48723ce6298dbac743a1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "46640c814f25f096b0b0045ca50e1b7030cd8a30",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7bad4bda74dc4713f398d3b7624ff05478e3a568",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ah6.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: ah6: validate routing header segments_left\n\nAH6 rearranges routing-header addresses before computing or verifying the\nICV. ipv6_rearrange_rthdr() assumes that segments_left is not larger than\nthe number of addresses described by the routing header\u0027s hdrlen field.\n\nThat assumption does not hold for raw IPv6 HDRINCL packets. A packet with\nhdrlen equal to 2 describes one address, but can carry an arbitrary\nsegments_left value. With segments_left equal to 255, the function moves\nits address pointer 4,064 bytes backwards and passes a 4,064-byte length to\nmemmove(), resulting in an out-of-bounds access.\n\nValidate the invariant locally before modifying the routing header or\nperforming any address-pointer arithmetic, and propagate malformed-header\nerrors to the existing AH6 input and output error paths."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:37.342Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2dc650956e4e163b879b3fb1027f9557abc5c985"
},
{
"url": "https://git.kernel.org/stable/c/48b0e36cf54358276ee7aa897034c973097d2bc9"
},
{
"url": "https://git.kernel.org/stable/c/1b7e066eabcc7d6d8f476c34739b45932f2f4c31"
},
{
"url": "https://git.kernel.org/stable/c/f00df8500e5a36ba70d336fd34bd2152ea074e5f"
},
{
"url": "https://git.kernel.org/stable/c/1516e31ac458a738be485620579d8f7fb2700fcb"
},
{
"url": "https://git.kernel.org/stable/c/6733ae71268a27d598cfb3f3339a3c950b9b656d"
},
{
"url": "https://git.kernel.org/stable/c/0bf11081ad3753938a2b48723ce6298dbac743a1"
},
{
"url": "https://git.kernel.org/stable/c/46640c814f25f096b0b0045ca50e1b7030cd8a30"
},
{
"url": "https://git.kernel.org/stable/c/7bad4bda74dc4713f398d3b7624ff05478e3a568"
}
],
"title": "xfrm: ah6: validate routing header segments_left",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80844",
"datePublished": "2026-09-04T15:54:54.295Z",
"dateReserved": "2026-08-26T14:34:25.796Z",
"dateUpdated": "2026-10-19T08:44:37.342Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72135 (GCVE-0-2026-72135)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tpm: Make the TPM character devices non-seekable
The TPM character devices expose a sequential command/response
interface, but their open handlers leave FMODE_PREAD and FMODE_PWRITE
enabled.
After a command leaves a response pending, pread(fd, buf, 16, 0x1400)
passes 0x1400 as *off to tpm_common_read(). The transfer length is
bounded by response_length, but the offset is used unchecked when
forming data_buffer + *off. A sufficiently large offset therefore causes
an out-of-bounds heap read through copy_to_user() and, if the copy
succeeds, an out-of-bounds zero-write through the following memset().
Positional I/O does not provide coherent semantics for this interface.
An arbitrary pread offset cannot represent how much of a response has
been consumed sequentially. The write callback always stores a command
at the start of data_buffer, while pwrite() does not update file->f_pos
and can leave the sequential read cursor stale.
Call nonseekable_open() from both open handlers. This removes
FMODE_PREAD and FMODE_PWRITE, causing positional reads and writes to
fail with -ESPIPE before reaching the TPM callbacks, and explicitly
marks the files non-seekable. Normal read() and write() continue to use
the existing sequential f_pos cursor, leaving the response state machine
unchanged.
Tested on Linux 6.12 with KASAN and a swtpm TPM2 device:
- sequential partial reads returned the complete response
- pread() and preadv() with offset 0x1400 returned -ESPIPE
- pwrite() and pwritev() with offset zero returned -ESPIPE
- the pending response remained intact after the rejected operations
- a subsequent normal command/response cycle completed normally
- no KASAN report was produced.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 Version: 9488585b21bef0df1217e510c7134905d1d376a7 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72135",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:38.338660Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:58.643Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/char/tpm/tpm-dev.c",
"drivers/char/tpm/tpmrm-dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ed0ffc2c016629e40ba041ed0424a772d8b02e2c",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "232dcf908eb7eb9d8046a9597975caf44270966e",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "dda695fab5e21f923d29e8cb01df256468ddfbd1",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "9c513dabd4540f811585a2087f23069767a284da",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "21a13f932972bc9836f58c44fcd47c62abdecd95",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "ada4b9a5087ea7f30dd8e4c6411a4fb6547eb1ed",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "947b773caaa548672184df025271b29bdc80b0f1",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
},
{
"lessThan": "f20d61c22bcaf172d6790b6500e3838e532e71c8",
"status": "affected",
"version": "9488585b21bef0df1217e510c7134905d1d376a7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/char/tpm/tpm-dev.c",
"drivers/char/tpm/tpmrm-dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntpm: Make the TPM character devices non-seekable\n\nThe TPM character devices expose a sequential command/response\ninterface, but their open handlers leave FMODE_PREAD and FMODE_PWRITE\nenabled.\n\nAfter a command leaves a response pending, pread(fd, buf, 16, 0x1400)\npasses 0x1400 as *off to tpm_common_read(). The transfer length is\nbounded by response_length, but the offset is used unchecked when\nforming data_buffer + *off. A sufficiently large offset therefore causes\nan out-of-bounds heap read through copy_to_user() and, if the copy\nsucceeds, an out-of-bounds zero-write through the following memset().\n\nPositional I/O does not provide coherent semantics for this interface.\nAn arbitrary pread offset cannot represent how much of a response has\nbeen consumed sequentially. The write callback always stores a command\nat the start of data_buffer, while pwrite() does not update file-\u003ef_pos\nand can leave the sequential read cursor stale.\n\nCall nonseekable_open() from both open handlers. This removes\nFMODE_PREAD and FMODE_PWRITE, causing positional reads and writes to\nfail with -ESPIPE before reaching the TPM callbacks, and explicitly\nmarks the files non-seekable. Normal read() and write() continue to use\nthe existing sequential f_pos cursor, leaving the response state machine\nunchanged.\n\nTested on Linux 6.12 with KASAN and a swtpm TPM2 device:\n\n - sequential partial reads returned the complete response\n - pread() and preadv() with offset 0x1400 returned -ESPIPE\n - pwrite() and pwritev() with offset zero returned -ESPIPE\n - the pending response remained intact after the rejected operations\n - a subsequent normal command/response cycle completed normally\n - no KASAN report was produced."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local pread()/write() syscalls on /dev/tpm0 or /dev/tpmrm0 character devices; there is no network, Bluetooth, or physical-bus code path to the vulnerable tpm_common_read() handler.\nAC:L - An attacker who can open the device reliably triggers the bug by writing any TPM command to create a pending response, then calling pread() with a large offset; no races or special memory layout are required.\nPR:L - Upstream tpm2-tss udev rules grant non-root users in the tss group read/write access to /dev/tpmrm0 (mode 0660), which is the standard TPM2 user-space interface on laptops and servers with TPM hardware.\nUI:N - No victim interaction is required; the attacker opens the TPM device, submits a command, and issues the malicious pread() themselves without relying on another user to mount, click, or configure anything.\nS:U - The vulnerability corrupts kernel heap memory in the TPM driver on the same host; it does not by itself cross a VM, container, or IOMMU security boundary to affect a different trust domain.\nC:H - Unchecked pread offsets cause copy_to_user() to read beyond the 4096-byte data_buffer into adjacent kmalloc slab memory (including tpm_space pointers), leaking kernel heap contents to userspace.\nI:H - A successful out-of-bounds pread also executes memset() past data_buffer, zeroing adjacent heap objects such as tpm_space session/context pointers and enabling further memory corruption or control-flow manipulation.\nA:H - KASAN reports slab-out-of-bounds faults on both the copy_to_user read and memset write; corrupting adjacent heap structures can oops or panic the kernel during subsequent TPM operations."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:45.521Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ed0ffc2c016629e40ba041ed0424a772d8b02e2c"
},
{
"url": "https://git.kernel.org/stable/c/232dcf908eb7eb9d8046a9597975caf44270966e"
},
{
"url": "https://git.kernel.org/stable/c/dda695fab5e21f923d29e8cb01df256468ddfbd1"
},
{
"url": "https://git.kernel.org/stable/c/9c513dabd4540f811585a2087f23069767a284da"
},
{
"url": "https://git.kernel.org/stable/c/21a13f932972bc9836f58c44fcd47c62abdecd95"
},
{
"url": "https://git.kernel.org/stable/c/ada4b9a5087ea7f30dd8e4c6411a4fb6547eb1ed"
},
{
"url": "https://git.kernel.org/stable/c/947b773caaa548672184df025271b29bdc80b0f1"
},
{
"url": "https://git.kernel.org/stable/c/f20d61c22bcaf172d6790b6500e3838e532e71c8"
}
],
"title": "tpm: Make the TPM character devices non-seekable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72135",
"datePublished": "2026-08-15T05:53:10.315Z",
"dateReserved": "2026-08-09T03:40:39.907Z",
"dateUpdated": "2026-10-16T18:44:58.643Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68290 (GCVE-0-2026-68290)
Vulnerability from cvelistv5
Published
2026-08-10 12:02
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
rds: tcp: unregister sysctl before tearing down listen socket
rds_tcp_exit_net() frees the per-netns RDS TCP listen socket via
rds_tcp_kill_sock() before unregistering the per-netns sysctl table. Since
rds_tcp_skbuf_handler() derives the netns from
rtn->rds_tcp_listen_sock->sk, a concurrent sysctl write can race with
netns teardown and dereference the freed socket/sk.
KASAN reports the race as:
BUG: KASAN: slab-use-after-free in rds_tcp_skbuf_handler+0x2aa/0x2e0
rds_tcp_skbuf_handler net/rds/tcp.c:721
proc_sys_call_handler fs/proc/proc_sysctl.c
vfs_write fs/read_write.c
__x64_sys_pwrite64 fs/read_write.c
Fix this by unregistering the RDS TCP sysctl table before calling
rds_tcp_kill_sock(). unregister_net_sysctl_table() prevents new sysctl
handlers from starting and waits for in-flight handlers to finish, so
the listen socket can then be released safely. The fix was tested
against the linked reproducer.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: de8d6de0ee27be4b2b1e5b06f04aeacbabbba492 Version: 7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c Version: 7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c Version: 7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c Version: 33b3e09a489a31b30342b77cc55290f025d95c7e Version: 6.12.10 ≤ Version: 6.6.160 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68290",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:38.665842Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:59.775Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/rds/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "80fffed08dc1c10e971066941d2daa56253f1552",
"status": "affected",
"version": "de8d6de0ee27be4b2b1e5b06f04aeacbabbba492",
"versionType": "git"
},
{
"lessThan": "16df2d154ec82e2f7e7585b4fa154751ba37729a",
"status": "affected",
"version": "7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c",
"versionType": "git"
},
{
"lessThan": "3aa13fe0c1bb7bc5312f878e61523e5d8cf3f85d",
"status": "affected",
"version": "7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c",
"versionType": "git"
},
{
"lessThan": "167e54c703ccd4fa028feb568b0d1002020cff86",
"status": "affected",
"version": "7f5611cbc4871c7fb1ad36c2e5a9edad63dca95c",
"versionType": "git"
},
{
"status": "affected",
"version": "33b3e09a489a31b30342b77cc55290f025d95c7e",
"versionType": "git"
},
{
"lessThan": "6.12.101",
"status": "affected",
"version": "6.12.10",
"versionType": "semver"
},
{
"lessThan": "6.7",
"status": "affected",
"version": "6.6.160",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/rds/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.12.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.6.160",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrds: tcp: unregister sysctl before tearing down listen socket\n\nrds_tcp_exit_net() frees the per-netns RDS TCP listen socket via\nrds_tcp_kill_sock() before unregistering the per-netns sysctl table. Since\nrds_tcp_skbuf_handler() derives the netns from\nrtn-\u003erds_tcp_listen_sock-\u003esk, a concurrent sysctl write can race with\nnetns teardown and dereference the freed socket/sk.\n\nKASAN reports the race as:\n\n BUG: KASAN: slab-use-after-free in rds_tcp_skbuf_handler+0x2aa/0x2e0\n rds_tcp_skbuf_handler net/rds/tcp.c:721\n proc_sys_call_handler fs/proc/proc_sysctl.c\n vfs_write fs/read_write.c\n __x64_sys_pwrite64 fs/read_write.c\n\nFix this by unregistering the RDS TCP sysctl table before calling\nrds_tcp_kill_sock(). unregister_net_sysctl_table() prevents new sysctl\nhandlers from starting and waits for in-flight handlers to finish, so\nthe listen socket can then be released safely. The fix was tested\nagainst the linked reproducer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerability is triggered by a local write() /pwrite64() to the per-netns sysctl file /proc/sys/net/rds/tcp/rds_tcp_{snd,rcv}buf racing with network namespace teardown; no network traffic reaches the vulnerable handler, so local syscall access is required.\nAC:L - Although this is a race, the attacker controls both sides: they create the netns, keep the sysctl fd open, choose when the netns is destroyed, and issue the concurrent sysctl write in a tight loop, so the race can be retried indefinitely until won.\nPR:L - Only an unprivileged local account is needed: unshare -Urn yields CAP_NET_ADMIN over the new netns\u0027s user_ns, and net_ctl_permissions()/net_ctl_set_ownership() then grant that user write access to the RDS TCP sysctls, while the rds_tcp module is autoloaded by an unprivileged AF_RDS socket.\nUI:N - The attacker performs every step itself \u2014 namespace creation, opening the sysctl file, triggering teardown and writing \u2014 with no action required from any other user or administrator.\nS:U - The use-after-free occurs on kernel slab objects belonging to the same kernel security authority; there is no crossing of a VM, IOMMU or other security boundary.\nC:H - The handler reads the freed listen socket and then dereferences lsock-\u003esk and sock_net(sk); by spraying the freed socket/sk slabs the attacker can steer these dereferences to chosen addresses, turning the use-after-free read into a kernel memory disclosure primitive.\nI:H - Reallocating the freed struct socket/sk with attacker-controlled data lets the attacker supply a bogus struct net pointer that drives rds_tcp_sysctl_reset()/rds_conn_path_drop() over the global RDS connection list, corrupting kernel state and giving the usual UAF path toward control-flow hijack.\nA:H - The confirmed KASAN slab-use-after-free on the freed listen socket readily oopses or panics the kernel, and the race can be repeated by an unprivileged user until it hits, giving a reliable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:43.436Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/80fffed08dc1c10e971066941d2daa56253f1552"
},
{
"url": "https://git.kernel.org/stable/c/16df2d154ec82e2f7e7585b4fa154751ba37729a"
},
{
"url": "https://git.kernel.org/stable/c/3aa13fe0c1bb7bc5312f878e61523e5d8cf3f85d"
},
{
"url": "https://git.kernel.org/stable/c/167e54c703ccd4fa028feb568b0d1002020cff86"
}
],
"title": "rds: tcp: unregister sysctl before tearing down listen socket",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68290",
"datePublished": "2026-08-10T12:02:23.425Z",
"dateReserved": "2026-07-30T09:28:09.380Z",
"dateUpdated": "2026-10-21T12:43:43.436Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63890 (GCVE-0-2026-63890)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-07-19 14:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker
drivers/scsi/fcoe/fcoe_ctlr.c::fcoe_ctlr_recv_clr_vlink() advanced the
descriptor cursor by an attacker-supplied fip_dlen without ever
requiring dlen >= sizeof(struct fip_desc) in the default branch. The
named descriptor cases (FIP_DT_MAC, FIP_DT_NAME, FIP_DT_VN_ID) checked
their per-type minimum lengths, but a FIP_DT_NON_CRITICAL descriptor
(fip_dtype >= 128, which the standard requires receivers to silently
ignore) skipped that check entirely.
An unauthenticated L2 peer on the FCoE control VLAN could hang
fcoe_ctlr_recv_work on an fcoe, qedf, or bnx2fc initiator indefinitely
by emitting one FIP CVL frame whose single descriptor had fip_dtype ==
FIP_DT_NON_CRITICAL and fip_dlen == 0: the cursor advanced zero bytes
per iteration and the loop condition rlen >= sizeof(*desc) stayed true
forever, blocking every subsequent FIP frame on that controller.
Tighten the outer dlen guard to also reject dlen < sizeof(struct
fip_desc), so a malformed descriptor whose length cannot even cover the
descriptor header is rejected before the switch. This is the same
lower-bound the named cases already apply and is the minimum scope that
closes the loop.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 Version: 97c8389d54b9665c38105ea72a428a44b97ff2f6 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/fcoe/fcoe_ctlr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d179949d2175d2857d1c3a275a22bea58bcc5d36",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "fda976f7390bb5d1e9b84ef11ebb17323038e0c6",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "80a0cd307205236ca28aa49bc553f58edcb9bf3a",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "0e3c6e5a8fc15a74dfb1e0c1df9f1da73600a81a",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "549859a1131052b07dff11a448e9f3221a40f260",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "14dd80a20a72ce334adcc2d67402360527065948",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "d537d29d51c8b808469e5adacf3e5a0092700738",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
},
{
"lessThan": "9eed1bd59937e6828b00d2f2dfef631d964f3636",
"status": "affected",
"version": "97c8389d54b9665c38105ea72a428a44b97ff2f6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/fcoe/fcoe_ctlr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.30"
},
{
"lessThan": "2.6.30",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.30",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker\n\ndrivers/scsi/fcoe/fcoe_ctlr.c::fcoe_ctlr_recv_clr_vlink() advanced the\ndescriptor cursor by an attacker-supplied fip_dlen without ever\nrequiring dlen \u003e= sizeof(struct fip_desc) in the default branch. The\nnamed descriptor cases (FIP_DT_MAC, FIP_DT_NAME, FIP_DT_VN_ID) checked\ntheir per-type minimum lengths, but a FIP_DT_NON_CRITICAL descriptor\n(fip_dtype \u003e= 128, which the standard requires receivers to silently\nignore) skipped that check entirely.\n\nAn unauthenticated L2 peer on the FCoE control VLAN could hang\nfcoe_ctlr_recv_work on an fcoe, qedf, or bnx2fc initiator indefinitely\nby emitting one FIP CVL frame whose single descriptor had fip_dtype ==\nFIP_DT_NON_CRITICAL and fip_dlen == 0: the cursor advanced zero bytes\nper iteration and the loop condition rlen \u003e= sizeof(*desc) stayed true\nforever, blocking every subsequent FIP frame on that controller.\n\nTighten the outer dlen guard to also reject dlen \u003c sizeof(struct\nfip_desc), so a malformed descriptor whose length cannot even cover the\ndescriptor header is rejected before the switch. This is the same\nlower-bound the named cases already apply and is the minimum scope that\ncloses the loop."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T14:55:02.195Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d179949d2175d2857d1c3a275a22bea58bcc5d36"
},
{
"url": "https://git.kernel.org/stable/c/fda976f7390bb5d1e9b84ef11ebb17323038e0c6"
},
{
"url": "https://git.kernel.org/stable/c/80a0cd307205236ca28aa49bc553f58edcb9bf3a"
},
{
"url": "https://git.kernel.org/stable/c/0e3c6e5a8fc15a74dfb1e0c1df9f1da73600a81a"
},
{
"url": "https://git.kernel.org/stable/c/549859a1131052b07dff11a448e9f3221a40f260"
},
{
"url": "https://git.kernel.org/stable/c/14dd80a20a72ce334adcc2d67402360527065948"
},
{
"url": "https://git.kernel.org/stable/c/d537d29d51c8b808469e5adacf3e5a0092700738"
},
{
"url": "https://git.kernel.org/stable/c/9eed1bd59937e6828b00d2f2dfef631d964f3636"
}
],
"title": "scsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63890",
"datePublished": "2026-07-19T14:55:02.195Z",
"dateReserved": "2026-07-19T07:54:57.018Z",
"dateUpdated": "2026-07-19T14:55:02.195Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80693 (GCVE-0-2026-80693)
Vulnerability from cvelistv5
Published
2026-08-28 06:52
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
idpf: bound interrupt-vector register fill to the allocated array
idpf_get_reg_intr_vecs() fills the caller-allocated reg_vals[] array from
the VIRTCHNL2_OP_ALLOC_VECTORS reply in adapter->req_vec_chunks, bounding
its inner loop only by the per-chunk num_vectors. The array is sized
separately: idpf_intr_reg_init() allocates
kzalloc_objs(struct idpf_vec_regs, total_vecs) from
caps.num_allocated_vectors and only checks the returned count after the
fill. The sum of per-chunk num_vectors is never reconciled against
total_vecs, so a reply with a small num_allocated_vectors but chunks
summing higher writes past the end of reg_vals[].
Impact: a control plane (a PF or hypervisor device model) that returns a
VIRTCHNL2_OP_ALLOC_VECTORS reply whose per-chunk num_vectors sum exceeds
num_allocated_vectors writes struct idpf_vec_regs entries past the end of
the reg_vals kmalloc allocation (KASAN slab-out-of-bounds write).
Bound the fill loop to the array capacity passed in by the callers,
mirroring the sibling idpf_vport_get_q_reg(). The existing
num_regs < num_vecs check then rejects an undersized reply without the
out-of-bounds write happening first.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80693",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:20:11.642760Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:33.729Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/idpf/idpf_dev.c",
"drivers/net/ethernet/intel/idpf/idpf_vf_dev.c",
"drivers/net/ethernet/intel/idpf/idpf_virtchnl.c",
"drivers/net/ethernet/intel/idpf/idpf_virtchnl.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a6447b6a9678e701ca4d32789f311067cf528c2d",
"status": "affected",
"version": "d4d5587182664b0c4ab6d3556ce881cb975507c2",
"versionType": "git"
},
{
"lessThan": "e299b7d1334ebec4d43a7bb697d10c12df1aaed3",
"status": "affected",
"version": "d4d5587182664b0c4ab6d3556ce881cb975507c2",
"versionType": "git"
},
{
"lessThan": "41bb8748124d0d8ee5d8e1eace9dfbc874bc9564",
"status": "affected",
"version": "d4d5587182664b0c4ab6d3556ce881cb975507c2",
"versionType": "git"
},
{
"lessThan": "9f7007ee9858c99aa43101bc8352c672fee85644",
"status": "affected",
"version": "d4d5587182664b0c4ab6d3556ce881cb975507c2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/idpf/idpf_dev.c",
"drivers/net/ethernet/intel/idpf/idpf_vf_dev.c",
"drivers/net/ethernet/intel/idpf/idpf_virtchnl.c",
"drivers/net/ethernet/intel/idpf/idpf_virtchnl.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nidpf: bound interrupt-vector register fill to the allocated array\n\nidpf_get_reg_intr_vecs() fills the caller-allocated reg_vals[] array from\nthe VIRTCHNL2_OP_ALLOC_VECTORS reply in adapter-\u003ereq_vec_chunks, bounding\nits inner loop only by the per-chunk num_vectors. The array is sized\nseparately: idpf_intr_reg_init() allocates\nkzalloc_objs(struct idpf_vec_regs, total_vecs) from\ncaps.num_allocated_vectors and only checks the returned count after the\nfill. The sum of per-chunk num_vectors is never reconciled against\ntotal_vecs, so a reply with a small num_allocated_vectors but chunks\nsumming higher writes past the end of reg_vals[].\n\nImpact: a control plane (a PF or hypervisor device model) that returns a\nVIRTCHNL2_OP_ALLOC_VECTORS reply whose per-chunk num_vectors sum exceeds\nnum_allocated_vectors writes struct idpf_vec_regs entries past the end of\nthe reg_vals kmalloc allocation (KASAN slab-out-of-bounds write).\n\nBound the fill loop to the array capacity passed in by the callers,\nmirroring the sibling idpf_vport_get_q_reg(). The existing\nnum_regs \u003c num_vecs check then rejects an undersized reply without the\nout-of-bounds write happening first."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only when the idpf driver processes a VIRTCHNL2_OP_ALLOC_VECTORS reply over the PCIe virtchnl/mailbox control queue during idpf_vc_core_init()/idpf_vport_intr_init(); there is no network packet, syscall, or netlink path into idpf_get_reg_intr_vecs().\nAC:L - A malicious control plane fully controls GET_CAPS num_allocated_vectors and per-chunk num_vectors in the ALLOC_VECTORS reply, so the slab out-of-bounds write is deterministic on driver init or hardware-reset re-init without races or attacker-uncontrollable memory layout.\nPR:N - Exploitation requires no credentials on the victim OS; a malicious PF, hypervisor device model, or NIC firmware can inject the crafted virtchnl reply during probe/reset before any local user action, including in cloud VMs where tenants never administer the control plane.\nUI:N - No victim interaction is required beyond normal driver bring-up; cloud and server images auto-probe the Intel idpf PF/VF and open netdevs at boot, so the attacker need not wait for a user to mount, click, or manually configure the interface.\nS:C - The attack crosses the SR-IOV/virtio control-plane boundary: a hypervisor or device firmware outside the guest/host kernel trust domain corrupts kernel heap memory inside the idpf driver security authority, matching other virtchnl isolation-breaker CVEs.\nC:H - The flaw is a kmalloc slab out-of-bounds write of attacker-influenced struct idpf_vec_regs entries (dyn_ctl_reg, itrn_reg, itrn_index_spacing); such heap corruption can disclose adjacent slab objects and be groomed into an arbitrary kernel read primitive.\nI:H - Each overfilled entry writes 12 bytes of control-plane-supplied register metadata past reg_vals[], giving a repeatable heap overflow primitive that can corrupt adjacent allocations and be leveraged for control-flow hijack or privilege escalation in the victim kernel.\nA:H - Writing far beyond the reg_vals[] allocation corrupts slab metadata or adjacent kernel objects and can immediately oops/panic the host or guest kernel; hardware-reset recovery re-enters idpf_vc_core_init(), allowing repeated crash or re-exploitation attempts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:53.892Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a6447b6a9678e701ca4d32789f311067cf528c2d"
},
{
"url": "https://git.kernel.org/stable/c/e299b7d1334ebec4d43a7bb697d10c12df1aaed3"
},
{
"url": "https://git.kernel.org/stable/c/41bb8748124d0d8ee5d8e1eace9dfbc874bc9564"
},
{
"url": "https://git.kernel.org/stable/c/9f7007ee9858c99aa43101bc8352c672fee85644"
}
],
"title": "idpf: bound interrupt-vector register fill to the allocated array",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80693",
"datePublished": "2026-08-28T06:52:56.131Z",
"dateReserved": "2026-08-26T14:34:25.785Z",
"dateUpdated": "2026-10-21T12:46:53.892Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74688 (GCVE-0-2026-74688)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: clear control chunk transport if it is being removed
sctp_make_heartbeat_ack() caches the destination transport in
chunk->transport without taking a reference. When src_out_of_asoc_ok is
enabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead
of being transmitted immediately.
If the peer transport is removed while the chunk is still queued,
sctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,
but only clears cached transport pointers in out_chunk_list. The queued
control chunk therefore retains a dangling transport pointer.
Once an ASCONF_ACK clears the suppression and the queued control chunk is
transmitted, SCTP dereferences the stale transport pointer, leading to a
use-after-free.
Fix this by also clearing chunk->transport for queued control chunks in
control_chunk_list when removing the transport.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef Version: 8a07eb0a50aebc8c95478d49c28c7f8419a26cef |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74688",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:32.502704Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:09.209Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "fad4766a74220fe579c6fcaa10ba01c23529814f",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "936658ec41c28c397ef390140e02d4c91ade92f0",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "8de65194a04d2552cd39b6c67d942d490f22d174",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "6160e756db81d6cb63e3e2952efcf6c5134be385",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "18d704bdd809377dfd81a3c2f42426763b5da227",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
},
{
"lessThan": "c9158ceaf27780ef64534ad72f44ffde3f8ccc49",
"status": "affected",
"version": "8a07eb0a50aebc8c95478d49c28c7f8419a26cef",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.1"
},
{
"lessThan": "3.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: clear control chunk transport if it is being removed\n\nsctp_make_heartbeat_ack() caches the destination transport in\nchunk-\u003etransport without taking a reference. When src_out_of_asoc_ok is\nenabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead\nof being transmitted immediately.\n\nIf the peer transport is removed while the chunk is still queued,\nsctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,\nbut only clears cached transport pointers in out_chunk_list. The queued\ncontrol chunk therefore retains a dangling transport pointer.\n\nOnce an ASCONF_ACK clears the suppression and the queued control chunk is\ntransmitted, SCTP dereferences the stale transport pointer, leading to a\nuse-after-free.\n\nFix this by also clearing chunk-\u003etransport for queued control chunks in\ncontrol_chunk_list when removing the transport."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from remotely received SCTP packets (HEARTBEAT, ASCONF, ASCONF_ACK) processed in sctp_rcv() and the association input state machine on internet-facing SCTP servers and telecom endpoints.\nAC:L - A remote SCTP peer controls packet sequencing and can send HEARTBEAT while src_out_of_asoc_ok blocks transmission, remove transports via ASCONF DEL_IP, then trigger flush when ASCONF_ACK clears suppression.\nPR:N - Exploitation requires only a network-reachable established SCTP association; the attacker needs no Linux credentials, capabilities, or namespaces\u2014only the ability to send valid SCTP traffic to the target.\nUI:N - No victim user action is required; the use-after-free is triggered entirely by SCTP protocol messages sent by a remote peer during normal association operation or address migration.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the host kernel; it does not cross VM, container, or IOMMU security boundaries.\nC:H - Stale chunk-\u003etransport pointers dereference RCU-freed sctp_transport objects in sctp_outq_select_transport() and sctp_packet_transmit(), a use-after-free that enables arbitrary kernel memory disclosure via heap grooming.\nI:H - Use-after-free of sctp_transport allows controlled reuse of freed kmalloc objects, providing a standard path to arbitrary kernel writes and local privilege escalation or remote code execution in kernel context.\nA:H - Dereferencing the freed transport during control-chunk transmission can immediately kernel oops or panic the system; use-after-free bugs inherently threaten availability even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:32.712Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886"
},
{
"url": "https://git.kernel.org/stable/c/fad4766a74220fe579c6fcaa10ba01c23529814f"
},
{
"url": "https://git.kernel.org/stable/c/936658ec41c28c397ef390140e02d4c91ade92f0"
},
{
"url": "https://git.kernel.org/stable/c/8de65194a04d2552cd39b6c67d942d490f22d174"
},
{
"url": "https://git.kernel.org/stable/c/6160e756db81d6cb63e3e2952efcf6c5134be385"
},
{
"url": "https://git.kernel.org/stable/c/18d704bdd809377dfd81a3c2f42426763b5da227"
},
{
"url": "https://git.kernel.org/stable/c/4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7"
},
{
"url": "https://git.kernel.org/stable/c/c9158ceaf27780ef64534ad72f44ffde3f8ccc49"
}
],
"title": "sctp: clear control chunk transport if it is being removed",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74688",
"datePublished": "2026-08-22T15:32:53.423Z",
"dateReserved": "2026-08-15T05:44:03.926Z",
"dateUpdated": "2026-10-16T19:16:09.209Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63794 (GCVE-0-2026-63794)
Vulnerability from cvelistv5
Published
2026-07-19 12:02
Modified
2026-08-17 04:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path
In sev_dbg_crypt(), the per-iteration transfer length is bounded by
the source page offset (PAGE_SIZE - s_off) but not by the destination
page offset (PAGE_SIZE - d_off). When d_off > s_off, the encrypt
path (__sev_dbg_encrypt_user) performs a read-modify-write using a
single-page intermediate buffer (dst_tpage):
1. __sev_dbg_decrypt() expands the size to round_up(len + (d_off & 15), 16)
before issuing the PSP command. If len + (d_off & 15) > PAGE_SIZE,
the PSP writes beyond the end of the 4096-byte dst_tpage allocation.
2. The subsequent memcpy()/copy_from_user() into
page_address(dst_tpage) + (d_off & 15) of 'len' bytes overflows
by up to 15 bytes under the same condition.
Trigger example: s_off = 0, d_off = 1, debug.len = PAGE_SIZE -
the PSP is instructed to write round_up(4097, 16) = 4112 bytes to
a 4096-byte buffer.
Fix by also bounding len by (PAGE_SIZE - d_off), the same check that
sev_send_update_data() already performs for its single-page guest
region.
==================================================================
BUG: KASAN: slab-use-after-free in sev_dbg_crypt+0x993/0xd10 [kvm_amd]
Write of size 4095 at addr ff110062293bb009 by task sev_dbg_test/228214
CPU: 96 UID: 0 PID: 228214 Comm: sev_dbg_test Tainted: G U W 7.0.0-smp--5ce9b0c48211-dbg #156 PREEMPTLAZY
Tainted: [U]=USER, [W]=WARN
Hardware name: Google Astoria/astoria, BIOS 0.20250817.1-0 08/25/2025
Call Trace:
<TASK>
dump_stack_lvl+0x54/0x70
print_report+0xbc/0x260
kasan_report+0xa2/0xd0
kasan_check_range+0x25f/0x2c0
__asan_memcpy+0x40/0x70
sev_dbg_crypt+0x993/0xd10 [kvm_amd]
sev_mem_enc_ioctl+0x33c/0x450 [kvm_amd]
kvm_vm_ioctl+0x65d/0x6d0 [kvm]
__se_sys_ioctl+0xb2/0x100
do_syscall_64+0xe8/0x870
entry_SYSCALL_64_after_hwframe+0x4b/0x53
</TASK>
The buggy address belongs to the physical page:
page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x7fe72b6a0 pfn:0x62293bb
memcg:ff11000112827d82
flags: 0x1400000000000000(node=1|zone=1)
raw: 1400000000000000 0000000000000000 dead000000000122 0000000000000000
raw: 00000007fe72b6a0 0000000000000000 00000001ffffffff ff11000112827d82
page dumped because: kasan: bad access detected
Memory state around the buggy address:
ff110062293bbf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ff110062293bbf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ff110062293bc000: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
^
ff110062293bc080: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
ff110062293bc100: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
==================================================================
Disabling lock debugging due to kernel taint
[sean: add sample KASAN splat, Fixes, and stable@]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a Version: 24f41fb23a39bc2b6f190dcef35a5813a4bf183a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f701ae476cb92a3a3d8844bb39bb63b4512684c8",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "64f2449841ffc7d203183aa4c748c9c77951ecc5",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "9349b50f4b11f135fe73b56cb2c2c872d8bc71d7",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "889c2a9c59897ca912bf39df5bb92555a0a13df4",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "e1a0fe288dee07b7da25a71e007c1ecd1080315b",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "720949ed666f34ff28ffdfe1471a5861d1e41fdf",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "2753a097d1fe24c4351c608048612c74108aa89f",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
},
{
"lessThan": "78ee2d50185a037b3d2452a97f3dad69c3f7f389",
"status": "affected",
"version": "24f41fb23a39bc2b6f190dcef35a5813a4bf183a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.16"
},
{
"lessThan": "4.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.260",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.211",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.177",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.144",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.95",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.38",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.260",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.211",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.177",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.144",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.95",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.38",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.3",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path\n\nIn sev_dbg_crypt(), the per-iteration transfer length is bounded by\nthe source page offset (PAGE_SIZE - s_off) but not by the destination\npage offset (PAGE_SIZE - d_off). When d_off \u003e s_off, the encrypt\npath (__sev_dbg_encrypt_user) performs a read-modify-write using a\nsingle-page intermediate buffer (dst_tpage):\n\n 1. __sev_dbg_decrypt() expands the size to round_up(len + (d_off \u0026 15), 16)\n before issuing the PSP command. If len + (d_off \u0026 15) \u003e PAGE_SIZE,\n the PSP writes beyond the end of the 4096-byte dst_tpage allocation.\n\n 2. The subsequent memcpy()/copy_from_user() into\n page_address(dst_tpage) + (d_off \u0026 15) of \u0027len\u0027 bytes overflows\n by up to 15 bytes under the same condition.\n\nTrigger example: s_off = 0, d_off = 1, debug.len = PAGE_SIZE -\nthe PSP is instructed to write round_up(4097, 16) = 4112 bytes to\na 4096-byte buffer.\n\nFix by also bounding len by (PAGE_SIZE - d_off), the same check that\nsev_send_update_data() already performs for its single-page guest\nregion.\n\n ==================================================================\n BUG: KASAN: slab-use-after-free in sev_dbg_crypt+0x993/0xd10 [kvm_amd]\n Write of size 4095 at addr ff110062293bb009 by task sev_dbg_test/228214\n\n CPU: 96 UID: 0 PID: 228214 Comm: sev_dbg_test Tainted: G U W 7.0.0-smp--5ce9b0c48211-dbg #156 PREEMPTLAZY\n Tainted: [U]=USER, [W]=WARN\n Hardware name: Google Astoria/astoria, BIOS 0.20250817.1-0 08/25/2025\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x54/0x70\n print_report+0xbc/0x260\n kasan_report+0xa2/0xd0\n kasan_check_range+0x25f/0x2c0\n __asan_memcpy+0x40/0x70\n sev_dbg_crypt+0x993/0xd10 [kvm_amd]\n sev_mem_enc_ioctl+0x33c/0x450 [kvm_amd]\n kvm_vm_ioctl+0x65d/0x6d0 [kvm]\n __se_sys_ioctl+0xb2/0x100\n do_syscall_64+0xe8/0x870\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \u003c/TASK\u003e\n\n The buggy address belongs to the physical page:\n page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x7fe72b6a0 pfn:0x62293bb\n memcg:ff11000112827d82\n flags: 0x1400000000000000(node=1|zone=1)\n raw: 1400000000000000 0000000000000000 dead000000000122 0000000000000000\n raw: 00000007fe72b6a0 0000000000000000 00000001ffffffff ff11000112827d82\n page dumped because: kasan: bad access detected\n\n Memory state around the buggy address:\n ff110062293bbf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n ff110062293bbf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n \u003eff110062293bc000: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc\n ^\n ff110062293bc080: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc\n ff110062293bc100: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc\n ==================================================================\n Disabling lock debugging due to kernel taint\n\n[sean: add sample KASAN splat, Fixes, and stable@]"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:50:58.924Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f701ae476cb92a3a3d8844bb39bb63b4512684c8"
},
{
"url": "https://git.kernel.org/stable/c/64f2449841ffc7d203183aa4c748c9c77951ecc5"
},
{
"url": "https://git.kernel.org/stable/c/9349b50f4b11f135fe73b56cb2c2c872d8bc71d7"
},
{
"url": "https://git.kernel.org/stable/c/889c2a9c59897ca912bf39df5bb92555a0a13df4"
},
{
"url": "https://git.kernel.org/stable/c/e1a0fe288dee07b7da25a71e007c1ecd1080315b"
},
{
"url": "https://git.kernel.org/stable/c/720949ed666f34ff28ffdfe1471a5861d1e41fdf"
},
{
"url": "https://git.kernel.org/stable/c/2753a097d1fe24c4351c608048612c74108aa89f"
},
{
"url": "https://git.kernel.org/stable/c/78ee2d50185a037b3d2452a97f3dad69c3f7f389"
}
],
"title": "KVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63794",
"datePublished": "2026-07-19T12:02:03.488Z",
"dateReserved": "2026-07-19T07:54:57.012Z",
"dateUpdated": "2026-08-17T04:50:58.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68367 (GCVE-0-2026-68367)
Vulnerability from cvelistv5
Published
2026-08-10 12:03
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_tcm: synchronize delayed set_alt with teardown
The f_tcm set_alt() path defers endpoint setup to a work item and
completes the delayed status response from process context. The delayed
work uses f_tcm private state and may complete the setup request after
disconnect or function teardown has already moved on.
Cancel and drain the delayed set_alt work when the function is unbound or
freed. For disable paths, which are reached under the composite device
lock, use a small state machine and a non-sleeping cancellation path
instead of cancel_work_sync(). If the work is already running, mark it
cancelled and let the worker own the cleanup; otherwise tcm_disable() can
cancel the queued work and clean up immediately.
Also serialize the final delayed-status completion with the cancellation
check while holding the composite device lock. This prevents a disconnect
from clearing delayed_status while the worker is about to complete the
control request.
Validation reproduced this kernel report:
BUG: KASAN: slab-use-after-free in tcm_delayed_set_alt+0x6c/0xef0
Call Trace:
<TASK>
dump_stack_lvl+0x66/0xa0
print_report+0xce/0x630
? tcm_delayed_set_alt+0x6c/0xef0
? srso_alias_return_thunk+0x5/0xfbef5
? __virt_addr_valid+0x188/0x320
? tcm_delayed_set_alt+0x6c/0xef0
kasan_report+0xe0/0x110
? tcm_delayed_set_alt+0x6c/0xef0
tcm_delayed_set_alt+0x6c/0xef0
? __pfx_tcm_delayed_set_alt+0x10/0x10
? process_one_work+0x4cb/0xb90
? rcu_is_watching+0x20/0x50
? tcm_delayed_set_alt+0x9/0xef0
process_one_work+0x4d7/0xb90
? __pfx_process_one_work+0x10/0x10
? srso_alias_return_thunk+0x5/0xfbef5
? __list_add_valid_or_report+0x37/0xf0
? __pfx_tcm_delayed_set_alt+0x10/0x10
? srso_alias_return_thunk+0x5/0xfbef5
worker_thread+0x2d8/0x570
? __pfx_worker_thread+0x10/0x10
kthread+0x1ad/0x1f0
? __pfx_kthread+0x10/0x10
ret_from_fork+0x3c9/0x540
? __pfx_ret_from_fork+0x10/0x10
? srso_alias_return_thunk+0x5/0xfbef5
? __switch_to+0x2e9/0x730
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
Allocated by task 544:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0x8f/0xa0
tcm_alloc+0x68/0x180
usb_get_function+0x36/0x60
config_usb_cfg_link+0x125/0x1b0
configfs_symlink+0x322/0x890
vfs_symlink+0xc2/0x270
filename_symlinkat+0x295/0x2f0
__x64_sys_symlinkat+0x62/0x90
do_syscall_64+0x115/0x6a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Freed by task 661:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
kasan_save_free_info+0x3b/0x60
__kasan_slab_free+0x43/0x70
kfree+0x2f9/0x530
config_usb_cfg_unlink+0x173/0x1e0
configfs_unlink+0x1fa/0x340
vfs_unlink+0x15c/0x510
filename_unlinkat+0x2ba/0x450
__x64_sys_unlinkat+0x63/0x90
do_syscall_64+0x115/0x6a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 Version: c52661d60f636d17e26ad834457db333bd1df494 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/function/f_tcm.c",
"drivers/usb/gadget/function/tcm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8fb317058d165c88f3344f59439c14872c162b3c",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "90431d8523c0c1c9f8e3e3f0895727063f93da85",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "ee07d09419f1c59c74f73107aa08444f2f2fc6c8",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "3118bb872c7dff653294f193d5328a476619e04d",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "a6eb5a0ae7cd313cfd7df78decd8f43b64c68703",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "f282242906c12fd476b86757afba51f211d4f959",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "4c6c6a5588b9a2f8437fb794e852d05fa60ebe53",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
},
{
"lessThan": "79e2d75725c85607f8a9d87ae9cace62a19f767d",
"status": "affected",
"version": "c52661d60f636d17e26ad834457db333bd1df494",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/function/f_tcm.c",
"drivers/usb/gadget/function/tcm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.5"
},
{
"lessThan": "3.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: f_tcm: synchronize delayed set_alt with teardown\n\nThe f_tcm set_alt() path defers endpoint setup to a work item and\ncompletes the delayed status response from process context. The delayed\nwork uses f_tcm private state and may complete the setup request after\ndisconnect or function teardown has already moved on.\n\nCancel and drain the delayed set_alt work when the function is unbound or\nfreed. For disable paths, which are reached under the composite device\nlock, use a small state machine and a non-sleeping cancellation path\ninstead of cancel_work_sync(). If the work is already running, mark it\ncancelled and let the worker own the cleanup; otherwise tcm_disable() can\ncancel the queued work and clean up immediately.\n\nAlso serialize the final delayed-status completion with the cancellation\ncheck while holding the composite device lock. This prevents a disconnect\nfrom clearing delayed_status while the worker is about to complete the\ncontrol request.\n\nValidation reproduced this kernel report:\nBUG: KASAN: slab-use-after-free in tcm_delayed_set_alt+0x6c/0xef0\n\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x66/0xa0\n print_report+0xce/0x630\n ? tcm_delayed_set_alt+0x6c/0xef0\n ? srso_alias_return_thunk+0x5/0xfbef5\n ? __virt_addr_valid+0x188/0x320\n ? tcm_delayed_set_alt+0x6c/0xef0\n kasan_report+0xe0/0x110\n ? tcm_delayed_set_alt+0x6c/0xef0\n tcm_delayed_set_alt+0x6c/0xef0\n ? __pfx_tcm_delayed_set_alt+0x10/0x10\n ? process_one_work+0x4cb/0xb90\n ? rcu_is_watching+0x20/0x50\n ? tcm_delayed_set_alt+0x9/0xef0\n process_one_work+0x4d7/0xb90\n ? __pfx_process_one_work+0x10/0x10\n ? srso_alias_return_thunk+0x5/0xfbef5\n ? __list_add_valid_or_report+0x37/0xf0\n ? __pfx_tcm_delayed_set_alt+0x10/0x10\n ? srso_alias_return_thunk+0x5/0xfbef5\n worker_thread+0x2d8/0x570\n ? __pfx_worker_thread+0x10/0x10\n kthread+0x1ad/0x1f0\n ? __pfx_kthread+0x10/0x10\n ret_from_fork+0x3c9/0x540\n ? __pfx_ret_from_fork+0x10/0x10\n ? srso_alias_return_thunk+0x5/0xfbef5\n ? __switch_to+0x2e9/0x730\n ? __pfx_kthread+0x10/0x10\n ret_from_fork_asm+0x1a/0x30\n \u003c/TASK\u003e\n\nAllocated by task 544:\n kasan_save_stack+0x33/0x60\n kasan_save_track+0x14/0x30\n __kasan_kmalloc+0x8f/0xa0\n tcm_alloc+0x68/0x180\n usb_get_function+0x36/0x60\n config_usb_cfg_link+0x125/0x1b0\n configfs_symlink+0x322/0x890\n vfs_symlink+0xc2/0x270\n filename_symlinkat+0x295/0x2f0\n __x64_sys_symlinkat+0x62/0x90\n do_syscall_64+0x115/0x6a0\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nFreed by task 661:\n kasan_save_stack+0x33/0x60\n kasan_save_track+0x14/0x30\n kasan_save_free_info+0x3b/0x60\n __kasan_slab_free+0x43/0x70\n kfree+0x2f9/0x530\n config_usb_cfg_unlink+0x173/0x1e0\n configfs_unlink+0x1fa/0x340\n vfs_unlink+0x15c/0x510\n filename_unlinkat+0x2ba/0x450\n __x64_sys_unlinkat+0x63/0x90\n do_syscall_64+0x115/0x6a0\n entry_SYSCALL_64_after_hwframe+0x77/0x7f"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:18.779Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8fb317058d165c88f3344f59439c14872c162b3c"
},
{
"url": "https://git.kernel.org/stable/c/90431d8523c0c1c9f8e3e3f0895727063f93da85"
},
{
"url": "https://git.kernel.org/stable/c/ee07d09419f1c59c74f73107aa08444f2f2fc6c8"
},
{
"url": "https://git.kernel.org/stable/c/3118bb872c7dff653294f193d5328a476619e04d"
},
{
"url": "https://git.kernel.org/stable/c/a6eb5a0ae7cd313cfd7df78decd8f43b64c68703"
},
{
"url": "https://git.kernel.org/stable/c/f282242906c12fd476b86757afba51f211d4f959"
},
{
"url": "https://git.kernel.org/stable/c/4c6c6a5588b9a2f8437fb794e852d05fa60ebe53"
},
{
"url": "https://git.kernel.org/stable/c/79e2d75725c85607f8a9d87ae9cace62a19f767d"
}
],
"title": "usb: gadget: f_tcm: synchronize delayed set_alt with teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68367",
"datePublished": "2026-08-10T12:03:44.600Z",
"dateReserved": "2026-07-30T09:28:09.385Z",
"dateUpdated": "2026-08-23T12:46:18.779Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93810 (GCVE-0-2026-93810)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cachefiles: Fix double fput
Fix a double fput() in error handling in cachefiles_create_tmpfile().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/cachefiles/namei.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e582a3e99584d5a634a3cbce4b12e9381fd5d964",
"status": "affected",
"version": "24a81759b65fa85767739999d91523691c5e2ea5",
"versionType": "git"
},
{
"lessThan": "246098a2b8e88761e92cf82c1be1ec576437b176",
"status": "affected",
"version": "24a81759b65fa85767739999d91523691c5e2ea5",
"versionType": "git"
},
{
"lessThan": "e9c2e68c3890a935abbd5f54dbce653f9a16836c",
"status": "affected",
"version": "24a81759b65fa85767739999d91523691c5e2ea5",
"versionType": "git"
},
{
"lessThan": "90b306eee037d0a6a8f4aac834b46e05c5ddd0bf",
"status": "affected",
"version": "24a81759b65fa85767739999d91523691c5e2ea5",
"versionType": "git"
},
{
"lessThan": "af6830cc12dfe86c832dccc9c9878a93aaa22f83",
"status": "affected",
"version": "24a81759b65fa85767739999d91523691c5e2ea5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/cachefiles/namei.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncachefiles: Fix double fput\n\nFix a double fput() in error handling in cachefiles_create_tmpfile()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The extra fput is in cachefiles_create_tmpfile(), reached from nfs_fscache_open_file() (or CIFS/9p/AFS/Ceph fscache_use_cookie()) \u2192 fscache_perform_lookup() \u2192 cachefiles_lookup_cookie() \u2192 cachefiles_look_up_object() \u2192 cachefiles_create_file(), or from cachefiles_invalidate_cookie(); a local open/inval of an fscache-backed file is the entry, not a remote protocol message.\nAC:H - The double fput runs only when kernel_tmpfile_open()\u0027s file has a NULL f_op-\u003eread_iter or f_op-\u003ewrite_iter. cachefiles_add_cache() requires tmpfile/xattr/sync_fs and s_blocksize\u003c=PAGE_SIZE but never checks those f_ops; the only in-tree tmpfile FS lacking write_iter is hugetlbfs, which add_cache rejects, so an attacker cannot make a bound ext4/xfs/btrfs/f2fs tmpfile take this branch.\nPR:L - nfs_fscache_open_file() and the sibling fscache_use_cookie() open paths have no capable() check, so an unprivileged user with read access on an already-bound cachefiles/fscache mount drives cookie lookup into cachefiles_create_tmpfile(); cachefiles_daemon_open() needs init-namespace CAP_SYS_ADMIN, but that is not this trigger.\nUI:N - The attacker themselves open or invalidate files on the fscache-enabled netfs mount, which queues fscache_perform_lookup() into cachefiles_create_tmpfile(); no other user must mount the volume or issue cachefilesd commands.\nS:U - Double-putting the cache tmpfile\u0027s struct file corrupts host kernel file-refcount and filp_cachep state only; it does not cross a KVM/Xen, IOMMU, or other distinct authority.\nC:H - On the !read_iter/!write_iter branch, cachefiles_create_tmpfile() fput()s then err_unuse calls file_inode(file) and fput()s again. fscache_perform_lookup() runs in a PF_KTHREAD worker so the first put is deferred via delayed_fput_work; a later file_inode() on that pointer is a UAF read of a SLAB_TYPESAFE_BY_RCU struct file.\nI:H - The leftover fput before goto err_unuse is a struct-file double-put: if delayed __fput() has already file_free()\u0027d the tmpfile, the second file_ref_put() writes a recycled filp_cachep object (or an underflowed live ref into the dead zone), a UAF write primitive against struct file.\nA:H - The second put hits __file_ref_put_badval()\u0027s \"imbalanced put on file reference count\" WARN_ONCE, and if delayed_fput already ran, file_inode()/inode_lock/fput in cachefiles_create_tmpfile() err_unuse dereference freed memory and oops the fscache worker."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:42.502Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e582a3e99584d5a634a3cbce4b12e9381fd5d964"
},
{
"url": "https://git.kernel.org/stable/c/246098a2b8e88761e92cf82c1be1ec576437b176"
},
{
"url": "https://git.kernel.org/stable/c/e9c2e68c3890a935abbd5f54dbce653f9a16836c"
},
{
"url": "https://git.kernel.org/stable/c/90b306eee037d0a6a8f4aac834b46e05c5ddd0bf"
},
{
"url": "https://git.kernel.org/stable/c/af6830cc12dfe86c832dccc9c9878a93aaa22f83"
}
],
"title": "cachefiles: Fix double fput",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93810",
"datePublished": "2026-09-24T16:02:46.426Z",
"dateReserved": "2026-09-18T17:59:28.790Z",
"dateUpdated": "2026-10-03T10:57:42.502Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97571 (GCVE-0-2026-97571)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Propagate TPA buffer allocation failures in bnxt_queue_mem_alloc()
bnxt_alloc_one_tpa_info_data() returns -ENOMEM as soon as one allocation
fails. This leaves the remaining rxr->rx_tpa[] entries zeroed.
bnxt_queue_mem_alloc() discards that return value, so the partially
initialized ring is installed by bnxt_queue_start().
Since the agg_id is picked by the hardware and bnxt_alloc_agg_idx maps
it to a SW index in rxr->rx_tpa[], it is possible that an uninitialized
slot can be chosen which would hand a zero DMA address to the device.
Fix this by checking the return value of bnxt_alloc_one_tpa_info_data
and unwinding, freeing the ring buffers.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d7db2e4953e4626339fd0075564a3e447650d37b",
"status": "affected",
"version": "0997443906b96a051011f220a61e6dce4602ec54",
"versionType": "git"
},
{
"lessThan": "c8050386a2209b2a474c1eb4bd1574dc19129bfb",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "37e08dc821a57fe0592c917486b638caa888b46d",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "b814dfbfeb0a68c9a52073f2caa05a2d5247a329",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "6.12.112",
"status": "affected",
"version": "6.12.20",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.12.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Propagate TPA buffer allocation failures in bnxt_queue_mem_alloc()\n\nbnxt_alloc_one_tpa_info_data() returns -ENOMEM as soon as one allocation\nfails. This leaves the remaining rxr-\u003erx_tpa[] entries zeroed.\n\nbnxt_queue_mem_alloc() discards that return value, so the partially\ninitialized ring is installed by bnxt_queue_start().\n\nSince the agg_id is picked by the hardware and bnxt_alloc_agg_idx maps\nit to a SW index in rxr-\u003erx_tpa[], it is possible that an uninitialized\nslot can be chosen which would hand a zero DMA address to the device.\n\nFix this by checking the return value of bnxt_alloc_one_tpa_info_data\nand unwinding, freeing the ring buffers."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:33.921Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d7db2e4953e4626339fd0075564a3e447650d37b"
},
{
"url": "https://git.kernel.org/stable/c/c8050386a2209b2a474c1eb4bd1574dc19129bfb"
},
{
"url": "https://git.kernel.org/stable/c/37e08dc821a57fe0592c917486b638caa888b46d"
},
{
"url": "https://git.kernel.org/stable/c/b814dfbfeb0a68c9a52073f2caa05a2d5247a329"
}
],
"title": "bnxt_en: Propagate TPA buffer allocation failures in bnxt_queue_mem_alloc()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97571",
"datePublished": "2026-09-25T10:21:56.208Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-19T09:09:33.921Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74440 (GCVE-0-2026-74440)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Wait on external BO kernel fences in exec IOCTL
Before arming a user job, xe_exec_ioctl() only added the VM's
dma-resv KERNEL slot as a dependency. That slot covers rebinds and
the kernel operations of the VM's private BOs, but not external BOs
(bo->vm == NULL), which carry their kernel operations (evictions,
moves, ...) in their own dma-resv KERNEL slot.
The DMA_RESV_USAGE_KERNEL slot is the cross-driver contract for
memory management operations that must complete before the BO or its
backing store may be used: any accessor is required to wait on the
KERNEL fences before touching the resv. By skipping the external BOs'
KERNEL slots, the exec path violated that contract and could schedule
a user job while a kernel operation on an external BO mapped by the VM
was still in flight, racing against it and potentially reading or
writing memory that was being moved.
Replace the VM-only dependency with an iteration over every object
locked by the exec, adding each object's KERNEL slot as a job
dependency. This covers the VM resv (rebinds and private BOs) as well
as every external BO, mirroring the drm_gpuvm_resv_add_fence() call
that later publishes the job fence to the same set of objects.
Long-running mode continues to skip this, as before.
(cherry picked from commit a6b842acf3ddd1efc53a56de9260cfa718fb35e7)
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74440",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:28.751745Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:45.489Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_exec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1738db550334adca0e7fcf0ef684198fb7462779",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "21976fe5258494ac38b63d103be81bf1180ae4ae",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "5d363d00bc9799b90a0dc89eb1c5dcb909c042ee",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "af80e2bfde9312c76b60cf9274248dce0410b30d",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_exec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: Wait on external BO kernel fences in exec IOCTL\n\nBefore arming a user job, xe_exec_ioctl() only added the VM\u0027s\ndma-resv KERNEL slot as a dependency. That slot covers rebinds and\nthe kernel operations of the VM\u0027s private BOs, but not external BOs\n(bo-\u003evm == NULL), which carry their kernel operations (evictions,\nmoves, ...) in their own dma-resv KERNEL slot.\n\nThe DMA_RESV_USAGE_KERNEL slot is the cross-driver contract for\nmemory management operations that must complete before the BO or its\nbacking store may be used: any accessor is required to wait on the\nKERNEL fences before touching the resv. By skipping the external BOs\u0027\nKERNEL slots, the exec path violated that contract and could schedule\na user job while a kernel operation on an external BO mapped by the VM\nwas still in flight, racing against it and potentially reading or\nwriting memory that was being moved.\n\nReplace the VM-only dependency with an iteration over every object\nlocked by the exec, adding each object\u0027s KERNEL slot as a job\ndependency. This covers the VM resv (rebinds and private BOs) as well\nas every external BO, mirroring the drm_gpuvm_resv_add_fence() call\nthat later publishes the job fence to the same set of objects.\nLong-running mode continues to skip this, as before.\n\n(cherry picked from commit a6b842acf3ddd1efc53a56de9260cfa718fb35e7)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through DRM_IOCTL_XE_EXEC on an Intel xe render node (/dev/dri/renderD*); xe_exec_ioctl() is the sole entry and there is no network, Bluetooth, or remote protocol path into this dma-resv synchronization code.\nAC:L - An attacker controls both sides: they create external BOs (vm_id=0), bind them into a non-LR VM, drive VRAM pressure to start kernel evictions/moves, and submit concurrent execs, so the missing external-BO KERNEL-fence wait is reliably triggerable without victim-dependent timing.\nPR:L - XE_EXEC is registered DRM_RENDER_ALLOW in xe_device.c, so any unprivileged local user with a render-node fd (typical desktop/Android/ChromeOS GPU clients) can reach xe_exec_ioctl(); no CAP_SYS_ADMIN or init-namespace root is required.\nUI:N - Exploitation is fully self-contained in the attacker\u0027s process via ordinary xe ioctls (GEM create, VM bind, exec queue create, exec); no victim mount, file open, or other cooperative action is needed beyond routine GPU access.\nS:U - The race corrupts GPU buffer backing stores and dma-resv ordering within the same kernel security authority; it does not cross a VM, hypervisor, or IOMMU isolation boundary and matches standard local kernel memory-safety impact rather than sandbox/VM escape.\nC:H - Skipping each external BO\u0027s DMA_RESV_USAGE_KERNEL fence lets a user GPU job run while TTM eviction/move blits are still copying that BO, so the engine can read stale or partially moved physical pages and disclose contents of memory the caller should not observe.\nI:H - The same unsynchronized window lets GPU writes land on a backing store being relocated or on pages whose PTEs no longer match the BO, yielding attacker-influenceable corruption of buffer objects and GPU page-table state usable for privilege escalation primitives.\nA:H - Racing user execs against in-flight kernel BO moves can hang or reset the GPU engine, trip fault handlers, and destabilize the xe driver stack; per kernel CVSS guidance, this class of memory-management race that can panic or wedge the device warrants High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:47:14.316Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1738db550334adca0e7fcf0ef684198fb7462779"
},
{
"url": "https://git.kernel.org/stable/c/21976fe5258494ac38b63d103be81bf1180ae4ae"
},
{
"url": "https://git.kernel.org/stable/c/5d363d00bc9799b90a0dc89eb1c5dcb909c042ee"
},
{
"url": "https://git.kernel.org/stable/c/af80e2bfde9312c76b60cf9274248dce0410b30d"
}
],
"title": "drm/xe: Wait on external BO kernel fences in exec IOCTL",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74440",
"datePublished": "2026-08-15T12:26:48.483Z",
"dateReserved": "2026-08-15T05:44:03.897Z",
"dateUpdated": "2026-10-16T19:05:45.489Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89683 (GCVE-0-2026-89683)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix dentry ref leak on V4ROOT export filehandle lookup
nfsd_set_fh_dentry() leaks the dentry reference from
exportfs_decode_fh_raw() when the NFS3_FHSIZE or NFS_FHSIZE
switch cases detect NFSEXP_V4ROOT and goto out. The out: label
calls exp_put() but never dput(dentry), and fhp->fh_dentry was
never assigned so fh_put() cannot compensate.
A crafted NFSv3 filehandle targeting a V4ROOT export's fsid
triggers the leak on every request.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsfh.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d493cf57f4c4dae5396cd6ad41e5c209d0615a81",
"status": "affected",
"version": "ef7f6c4904d03ccd7478e1ac20ed75f79c4ac444",
"versionType": "git"
},
{
"lessThan": "c1ae0f973bcba5730871e35976a0ab6878fdac34",
"status": "affected",
"version": "ef7f6c4904d03ccd7478e1ac20ed75f79c4ac444",
"versionType": "git"
},
{
"lessThan": "11db8df188b34bdb8c6a3a0bf438e5fc8cd75aca",
"status": "affected",
"version": "ef7f6c4904d03ccd7478e1ac20ed75f79c4ac444",
"versionType": "git"
},
{
"lessThan": "6247023fbbec1325029f2d5f2a7cdc0f9f9ea15a",
"status": "affected",
"version": "ef7f6c4904d03ccd7478e1ac20ed75f79c4ac444",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsfh.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix dentry ref leak on V4ROOT export filehandle lookup\n\nnfsd_set_fh_dentry() leaks the dentry reference from\nexportfs_decode_fh_raw() when the NFS3_FHSIZE or NFS_FHSIZE\nswitch cases detect NFSEXP_V4ROOT and goto out. The out: label\ncalls exp_put() but never dput(dentry), and fhp-\u003efh_dentry was\nnever assigned so fh_put() cannot compensate.\n\nA crafted NFSv3 filehandle targeting a V4ROOT export\u0027s fsid\ntriggers the leak on every request."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:56.607Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d493cf57f4c4dae5396cd6ad41e5c209d0615a81"
},
{
"url": "https://git.kernel.org/stable/c/c1ae0f973bcba5730871e35976a0ab6878fdac34"
},
{
"url": "https://git.kernel.org/stable/c/11db8df188b34bdb8c6a3a0bf438e5fc8cd75aca"
},
{
"url": "https://git.kernel.org/stable/c/6247023fbbec1325029f2d5f2a7cdc0f9f9ea15a"
}
],
"title": "nfsd: fix dentry ref leak on V4ROOT export filehandle lookup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89683",
"datePublished": "2026-09-11T19:46:05.635Z",
"dateReserved": "2026-09-11T19:38:34.748Z",
"dateUpdated": "2026-10-19T08:50:56.607Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89526 (GCVE-0-2026-89526)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Validate Read chunk positions before reconstruction
The RPC/RDMA Read chunk position field is supplied by the remote
client and stored verbatim in the parsed chunk list.
xdr_count_read_segments() checks only 4-byte alignment; it never
compares the position against the received inline body length.
In the single-chunk path, svc_rdma_read_complete_one() splits the
head and tail kvecs at ch_position. A position past the inline
body underflows the tail length, exposing adjacent slab memory to
the upper XDR decoder.
In the multi-chunk path, svc_rdma_read_multiple_chunks() computes
gap lengths between chunks as unsigned subtractions from
ch_position. Overlapping Read chunks cause these subtractions to
underflow. A final position past the inline body likewise
underflows the trailing gap length. svc_rdma_copy_inline_range()
then copies past the receive buffer into request pages that are
returned to the client through the Reply channel.
Bound inline-range copies in svc_rdma_copy_inline_range() against
the decoded inline RPC body saved in rc_saved_arg. Reject a
single Read chunk positioned beyond that body, and reject
multi-chunk lists where accumulated read bytes exceed the next
chunk's position. Apply the same position and overlap checks in
the call-chunk interleaving path.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89526",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:57.126783Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:40.839Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3861eeabaebe243050952b34063763527c44e1fe",
"status": "affected",
"version": "d96962e6d0e281bab6a48e83b42f5dce6eb28bf4",
"versionType": "git"
},
{
"lessThan": "5ab3f6d882fe07ae5e61d0bcfeea00b9409155c2",
"status": "affected",
"version": "d96962e6d0e281bab6a48e83b42f5dce6eb28bf4",
"versionType": "git"
},
{
"lessThan": "f84ec84d8d4bc65f9ae23372570349687f66fa39",
"status": "affected",
"version": "d96962e6d0e281bab6a48e83b42f5dce6eb28bf4",
"versionType": "git"
},
{
"lessThan": "577097455d084610fc31e91e6a61c5793b6f04ba",
"status": "affected",
"version": "d96962e6d0e281bab6a48e83b42f5dce6eb28bf4",
"versionType": "git"
},
{
"lessThan": "3779b7b9e7d1c8ba4738f9d327de3b0288cefe9b",
"status": "affected",
"version": "d96962e6d0e281bab6a48e83b42f5dce6eb28bf4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Validate Read chunk positions before reconstruction\n\nThe RPC/RDMA Read chunk position field is supplied by the remote\nclient and stored verbatim in the parsed chunk list.\nxdr_count_read_segments() checks only 4-byte alignment; it never\ncompares the position against the received inline body length.\n\nIn the single-chunk path, svc_rdma_read_complete_one() splits the\nhead and tail kvecs at ch_position. A position past the inline\nbody underflows the tail length, exposing adjacent slab memory to\nthe upper XDR decoder.\n\nIn the multi-chunk path, svc_rdma_read_multiple_chunks() computes\ngap lengths between chunks as unsigned subtractions from\nch_position. Overlapping Read chunks cause these subtractions to\nunderflow. A final position past the inline body likewise\nunderflows the trailing gap length. svc_rdma_copy_inline_range()\nthen copies past the receive buffer into request pages that are\nreturned to the client through the Reply channel.\n\nBound inline-range copies in svc_rdma_copy_inline_range() against\nthe decoded inline RPC body saved in rc_saved_arg. Reject a\nsingle Read chunk positioned beyond that body, and reject\nmulti-chunk lists where accumulated read bytes exceed the next\nchunk\u0027s position. Apply the same position and overlap checks in\nthe call-chunk interleaving path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcrdma is nfsd\u0027s RPC-over-RDMA transport; a remote peer reaches Read-chunk reconstruction on an enabled NFS/RDMA listener over routable iWARP or RoCE, consistent with prior kernel CNA scores for this subsystem.\nAC:L - The attacker fully controls the wire-supplied Read-chunk position (only 4-byte alignment is checked) and can deterministically underflow gap/tail lengths or copy past the receive buffer, with no race or uncontrollable layout required.\nPR:N - svc_rdma_process_read_list() and svc_rdma_read_complete_one() run in svc_rdma_recvfrom() while assembling the transport message, before svc_process() performs RPC or NFS authentication, and RDMA CM accept has no credential check.\nUI:N - Sending a crafted RPC-over-RDMA message with a malicious Read list is sufficient; no victim mount, click, or other user action is required.\nS:U - The vulnerable NFS/RDMA service and the affected kernel memory belong to the same host kernel security authority; this is not a VM, IOMMU, or sandbox escape.\nC:H - A position past the inline body underflows the tail kvec so the XDR decoder reads adjacent slab, and overlapping chunks make svc_rdma_copy_inline_range() memcpy past the receive buffer into request pages returned on the Reply channel, disclosing kernel memory.\nI:H - The reconstructed xdr_buf uses attacker-controlled head/tail lengths pointing into adjacent slab; XDR shift/copy helpers then memcpy through those kvecs, producing an out-of-bounds kernel write that can corrupt adjacent objects and hijack control flow.\nA:H - The unbounded inline copy and inflated kvec lengths walk unmapped memory or trip decoder/WARN paths, causing a kernel oops or panic that an unauthenticated peer can trigger repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:39.359Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3861eeabaebe243050952b34063763527c44e1fe"
},
{
"url": "https://git.kernel.org/stable/c/5ab3f6d882fe07ae5e61d0bcfeea00b9409155c2"
},
{
"url": "https://git.kernel.org/stable/c/f84ec84d8d4bc65f9ae23372570349687f66fa39"
},
{
"url": "https://git.kernel.org/stable/c/577097455d084610fc31e91e6a61c5793b6f04ba"
},
{
"url": "https://git.kernel.org/stable/c/3779b7b9e7d1c8ba4738f9d327de3b0288cefe9b"
}
],
"title": "svcrdma: Validate Read chunk positions before reconstruction",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89526",
"datePublished": "2026-09-11T19:44:07.043Z",
"dateReserved": "2026-09-11T19:38:34.719Z",
"dateUpdated": "2026-10-21T12:47:39.359Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72351 (GCVE-0-2026-72351)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gue: validate REMCSUM private option length
GUE private flags can indicate that remote checksum offload metadata is
present. The private flags field itself is accounted for by
guehdr_flags_len(), but guehdr_priv_flags_len() currently returns 0 even
when GUE_PFLAG_REMCSUM is set.
This lets a packet with only the private flags field pass
validate_gue_flags(), after which gue_remcsum() and gue_gro_remcsum()
read the missing REMCSUM start/offset fields from the following bytes.
Account for GUE_PLEN_REMCSUM when GUE_PFLAG_REMCSUM is present so that
malformed packets are rejected during option validation.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 Version: c1aa8347e73e4092411fbd96cc59531fb7e76d04 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72351",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:48.615145Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:19.979Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/gue.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "158b9995d3c87f3b93f5c22df54a12e12a3438b3",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "7c6876ec1b227261b51803f784c7be1b2242a1a0",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "2c4de9988e9ddc760b750d6b6e701c35ff60ad14",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "2a99224c120823987e4d829726f4ecb33e03fc1e",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "61e78679c7c9ca685bff58e4b6348304dc60aafd",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "4a4a1d41c6e901e773bcf795f562a47fa71f692a",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "f618cbe9b24cd0202004d2db781d5f80ab77037f",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
},
{
"lessThan": "d335dcc6f521571d57117b8deeebc940836e5450",
"status": "affected",
"version": "c1aa8347e73e4092411fbd96cc59531fb7e76d04",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/gue.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngue: validate REMCSUM private option length\n\nGUE private flags can indicate that remote checksum offload metadata is\npresent. The private flags field itself is accounted for by\nguehdr_flags_len(), but guehdr_priv_flags_len() currently returns 0 even\nwhen GUE_PFLAG_REMCSUM is set.\n\nThis lets a packet with only the private flags field pass\nvalidate_gue_flags(), after which gue_remcsum() and gue_gro_remcsum()\nread the missing REMCSUM start/offset fields from the following bytes.\n\nAccount for GUE_PLEN_REMCSUM when GUE_PFLAG_REMCSUM is present so that\nmalformed packets are rejected during option validation."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Malformed GUE-over-UDP packets reach gue_udp_recv() and gue_gro_receive() through the normal IP/UDP receive path on hosts with FOU/GUE listeners, including internet-facing cloud overlay endpoints.\nAC:L - An attacker fully controls the crafted packet and can set GUE_PFLAG_REMCSUM with only the private-flags option present, reliably triggering gue_remcsum()/gue_gro_remcsum() without races or special timing.\nPR:N - Exploitation requires only sending UDP to a GUE listener port; no target credentials or local privileges are needed by the remote attacker even though tunnel setup itself requires admin configuration.\nUI:N - No victim interaction is required beyond the host already receiving GUE tunnel traffic as part of normal overlay networking operation.\nS:U - The flaw corrupts kernel packet buffers during GUE receive processing on the target host and does not inherently cross VM, container, or IOMMU security boundaries.\nC:H - Missing REMCSUM length validation lets attacker-controlled start/offset drive remcsum_adjust()/csum_partial() to read beyond the declared GUE options into adjacent skb bytes, enabling memory disclosure primitives.\nI:H - remcsum_adjust() performs an out-of-bounds 2-byte write at ptr+offset, and the default partial-checksum path stores attacker-controlled csum_start/csum_offset metadata that can corrupt subsequent checksum offload handling.\nA:H - Out-of-bounds REMCSUM processing can trigger kernel oops or panic from invalid memory access or corrupted packet state, causing denial of service on overlay endpoints under repeated attack."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:08.849Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/158b9995d3c87f3b93f5c22df54a12e12a3438b3"
},
{
"url": "https://git.kernel.org/stable/c/7c6876ec1b227261b51803f784c7be1b2242a1a0"
},
{
"url": "https://git.kernel.org/stable/c/2c4de9988e9ddc760b750d6b6e701c35ff60ad14"
},
{
"url": "https://git.kernel.org/stable/c/2a99224c120823987e4d829726f4ecb33e03fc1e"
},
{
"url": "https://git.kernel.org/stable/c/61e78679c7c9ca685bff58e4b6348304dc60aafd"
},
{
"url": "https://git.kernel.org/stable/c/4a4a1d41c6e901e773bcf795f562a47fa71f692a"
},
{
"url": "https://git.kernel.org/stable/c/f618cbe9b24cd0202004d2db781d5f80ab77037f"
},
{
"url": "https://git.kernel.org/stable/c/d335dcc6f521571d57117b8deeebc940836e5450"
}
],
"title": "gue: validate REMCSUM private option length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72351",
"datePublished": "2026-08-15T05:55:54.150Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-10-16T18:55:19.979Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74589 (GCVE-0-2026-74589)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf, sockmap: Fix sk_redir use-after-free in send verdict
sk_psock_msg_verdict() takes a socket reference for psock->sk_redir.
tcp_bpf_send_verdict() copies that pointer while holding the source socket
lock, but does not take a reference for the local copy before dropping the
lock around tcp_bpf_sendmsg_redir().
When apply_bytes keeps the cached verdict active, another sendmsg() on the
same source socket can consume the remaining bytes and release the cached
reference while the first thread still holds only the raw local pointer:
CPU 0 CPU 1
sk_redir = psock->sk_redir
apply_bytes remains nonzero
release_sock(sk)
lock_sock(sk)
apply_bytes reaches zero
psock->sk_redir = NULL
release_sock(sk)
tcp_bpf_sendmsg_redir(sk_redir)
sock_put(sk_redir)
tcp_bpf_sendmsg_redir(sk_redir)
The final sock_put() can free sk_redir before CPU 0 dereferences it.
KASAN reported:
BUG: KASAN: slab-use-after-free in tcp_bpf_sendmsg_redir+0xf39/0x1020
Read of size 8 at addr ffff888108537090 by task poc/87
Call Trace:
tcp_bpf_sendmsg_redir+0xf39/0x1020
tcp_bpf_sendmsg+0x977/0x1a50
__sys_sendto+0x32c/0x3a0
__x64_sys_sendto+0xdb/0x1b0
Allocated by task 85:
sk_prot_alloc+0x56/0x210
sk_clone+0x6f/0x14b0
inet_csk_clone_lock+0x24/0x740
tcp_create_openreq_child+0x25/0x2710
tcp_v4_syn_recv_sock+0x10a/0xe00
Freed by task 0:
__kasan_slab_free+0x43/0x70
slab_free_after_rcu_debug+0xa6/0x1e0
rcu_core+0x50a/0x1850
Last potentially related work creation:
__sk_destruct+0x3da/0x540
sk_psock_destroy+0x81e/0xab0
process_one_work+0x63a/0x1070
Take a temporary socket reference while the source socket lock still
protects psock->sk_redir, and drop it after tcp_bpf_sendmsg_redir()
returns. This keeps each unlocked use independent of cached-verdict
ownership.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c Version: 604326b41a6fb9b4a78b6179335decee0365cd8c |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74589",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:32.594795Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.193Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/tcp_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "41b7da0cb72ca5aa1e62b68dab323d0791fc6bdf",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "9b4fbc371a6ecf1b4e43b5a629015cc0830d8de3",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "90a19b0894ba79a699b48cf44421b36fbd566e99",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "d192cff2a37d59206dabe6ec2e60ceac6271f274",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "4c9d9aa809c261dc0490a0e19d675f7e8e4c85bf",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "a14e4ef1d90c3418f01b3b6b8fd3a40a0a208a10",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "1cec526cf0a2227395f2c2f4b671cb052ff0b00e",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
},
{
"lessThan": "a76624733730e541e4955fdecf506af2f6b20558",
"status": "affected",
"version": "604326b41a6fb9b4a78b6179335decee0365cd8c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/tcp_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.20"
},
{
"lessThan": "4.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.20",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf, sockmap: Fix sk_redir use-after-free in send verdict\n\nsk_psock_msg_verdict() takes a socket reference for psock-\u003esk_redir.\ntcp_bpf_send_verdict() copies that pointer while holding the source socket\nlock, but does not take a reference for the local copy before dropping the\nlock around tcp_bpf_sendmsg_redir().\n\nWhen apply_bytes keeps the cached verdict active, another sendmsg() on the\nsame source socket can consume the remaining bytes and release the cached\nreference while the first thread still holds only the raw local pointer:\n\n CPU 0 CPU 1\n sk_redir = psock-\u003esk_redir\n apply_bytes remains nonzero\n release_sock(sk)\n lock_sock(sk)\n apply_bytes reaches zero\n psock-\u003esk_redir = NULL\n release_sock(sk)\n tcp_bpf_sendmsg_redir(sk_redir)\n sock_put(sk_redir)\n tcp_bpf_sendmsg_redir(sk_redir)\n\nThe final sock_put() can free sk_redir before CPU 0 dereferences it.\n\nKASAN reported:\n\n BUG: KASAN: slab-use-after-free in tcp_bpf_sendmsg_redir+0xf39/0x1020\n Read of size 8 at addr ffff888108537090 by task poc/87\n Call Trace:\n tcp_bpf_sendmsg_redir+0xf39/0x1020\n tcp_bpf_sendmsg+0x977/0x1a50\n __sys_sendto+0x32c/0x3a0\n __x64_sys_sendto+0xdb/0x1b0\n Allocated by task 85:\n sk_prot_alloc+0x56/0x210\n sk_clone+0x6f/0x14b0\n inet_csk_clone_lock+0x24/0x740\n tcp_create_openreq_child+0x25/0x2710\n tcp_v4_syn_recv_sock+0x10a/0xe00\n Freed by task 0:\n __kasan_slab_free+0x43/0x70\n slab_free_after_rcu_debug+0xa6/0x1e0\n rcu_core+0x50a/0x1850\n Last potentially related work creation:\n __sk_destruct+0x3da/0x540\n sk_psock_destroy+0x81e/0xab0\n process_one_work+0x63a/0x1070\n\nTake a temporary socket reference while the source socket lock still\nprotects psock-\u003esk_redir, and drop it after tcp_bpf_sendmsg_redir()\nreturns. This keeps each unlocked use independent of cached-verdict\nownership."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached via local sendmsg/sendto on a TCP socket whose -\u003esendmsg was replaced by tcp_bpf_sendmsg() after BPF sockmap SK_MSG verdict attachment; per kernel CNA BPF/sockmap guidance this path is Local even when remote peers drive outbound traffic on internet-facing eBPF proxies.\nAC:L - The race needs two concurrent sendmsg() calls on the same sockmap-attached source socket while a cached __SK_REDIRECT verdict still has nonzero apply_bytes; the attacker controls both racing threads locally or can reliably create them on a multi-threaded server with concurrent client requests.\nPR:N - The highest-impact reasonable deployment is an internet-facing Cilium/service-mesh node with pre-installed sockmap SK_MSG redirect programs; an unauthenticated remote client can trigger concurrent outbound sends on enrolled sockets without any privileges on the victim host, while self-setup only raises the bar to CAP_NET_ADMIN in a user namespace.\nUI:N - Exploitation requires only network traffic to a vulnerable proxy or the attacker\u0027s own concurrent sendmsg threads; no victim user action such as mounting filesystems, opening files, or clicking links is needed.\nS:U - The slab use-after-free corrupts a struct sock in the host kernel security authority and enables standard kernel memory corruption or privilege escalation; it does not by itself cross VM, IOMMU, or container sandbox boundaries.\nC:H - KASAN reported slab-use-after-free in tcp_bpf_sendmsg_redir() with an 8-byte read through a freed struct sock; reclaiming that socket object enables attacker-controlled contents and arbitrary kernel memory disclosure via subsequent dereferences.\nI:H - Use-after-free on struct sock provides groomable heap control over sk_prot and callback pointers in tcp_bpf_sendmsg_redir(), yielding standard kernel UAF write primitives usable for arbitrary modification and privilege escalation.\nA:H - The published KASAN trace shows deterministic slab-use-after-free during send verdict redirect processing; UAF on struct sock can oops or panic the kernel during dereference even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:16.327Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/41b7da0cb72ca5aa1e62b68dab323d0791fc6bdf"
},
{
"url": "https://git.kernel.org/stable/c/9b4fbc371a6ecf1b4e43b5a629015cc0830d8de3"
},
{
"url": "https://git.kernel.org/stable/c/90a19b0894ba79a699b48cf44421b36fbd566e99"
},
{
"url": "https://git.kernel.org/stable/c/d192cff2a37d59206dabe6ec2e60ceac6271f274"
},
{
"url": "https://git.kernel.org/stable/c/4c9d9aa809c261dc0490a0e19d675f7e8e4c85bf"
},
{
"url": "https://git.kernel.org/stable/c/a14e4ef1d90c3418f01b3b6b8fd3a40a0a208a10"
},
{
"url": "https://git.kernel.org/stable/c/1cec526cf0a2227395f2c2f4b671cb052ff0b00e"
},
{
"url": "https://git.kernel.org/stable/c/a76624733730e541e4955fdecf506af2f6b20558"
}
],
"title": "bpf, sockmap: Fix sk_redir use-after-free in send verdict",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74589",
"datePublished": "2026-08-22T15:31:41.177Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:59.193Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74349 (GCVE-0-2026-74349)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: reject FITRIM ranges shorter than a cluster
ocfs2_trim_mainbm() trims the global bitmap in cluster units, but its
too-short range validation only checks sb->s_blocksize.
On filesystems with a cluster size larger than the block size, a FITRIM
range that is at least one block but shorter than one cluster is accepted
and shifted down to len == 0. The later start + len - 1 and len -= ...
arithmetic then underflows and can drive trimming past the requested
range.
Reject ranges shorter than s_clustersize instead. That preserves the
existing -EINVAL behavior for requests that cannot discard even one
allocation unit and keeps zero-cluster trims out of the group walk.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 Version: aa89762c54800208d5afdcd8e6bf124818f17fe0 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74349",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:14.069402Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:34.720Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/alloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d903d59c0315f59bdf0214b4f13d71c9feb2c45c",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "441abb77222f155e8d931dbabb465466db01cfd7",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "e652d0f5108e447b22da4249bcd23dd1b63c73dd",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "346314bb0cc2fc52b50b73d6ecc62e0217455c2e",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "06c0a0431b9856506fcd9b2c1b0c6136567d756d",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "3fa7139b5f42731a61f78c42433adae13f9adc21",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "2c13e02592b918be7725ab5965e01ef4e46c4b57",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
},
{
"lessThan": "ca1afd88f5eaaff9168e1466e5401385edf59543",
"status": "affected",
"version": "aa89762c54800208d5afdcd8e6bf124818f17fe0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/alloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: reject FITRIM ranges shorter than a cluster\n\nocfs2_trim_mainbm() trims the global bitmap in cluster units, but its\ntoo-short range validation only checks sb-\u003es_blocksize.\n\nOn filesystems with a cluster size larger than the block size, a FITRIM\nrange that is at least one block but shorter than one cluster is accepted\nand shifted down to len == 0. The later start + len - 1 and len -= ... \narithmetic then underflows and can drive trimming past the requested\nrange.\n\nReject ranges shorter than s_clustersize instead. That preserves the\nexisting -EINVAL behavior for requests that cannot discard even one\nallocation unit and keeps zero-cluster trims out of the group walk."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local FITRIM ioctl on an open OCFS2 mount (typically via fstrim or ioctl on the mountpoint); there is no network-facing OCFS2 handler or remote protocol path to this code.\nAC:L - An attacker with the required privileges can reliably trigger the bug by supplying a FITRIM range at least one block long but shorter than one cluster, which is common when OCFS2 cluster size exceeds the 4K block size.\nPR:L - The FITRIM handler explicitly requires capable(CAP_SYS_ADMIN) before calling ocfs2_trim_fs(); per kernel CNA guidance this maps to Low because CAP_SYS_ADMIN can be held by root inside a user namespace.\nUI:N - No victim interaction is required; the privileged attacker directly issues the FITRIM ioctl with crafted range parameters to trigger the faulty trim logic.\nS:U - Impact is confined to erroneous discard/trim operations within the same privileged filesystem context on the affected host and shared storage; it does not cross VM, container, or IOMMU security boundaries.\nC:N - The flaw causes incorrect discard of free clusters via sb_issue_discard and integer underflow in range arithmetic; it does not read kernel memory, leak pointers, or expose sensitive data to the attacker.\nI:H - Unsigned underflow can drive trimming far beyond the requested FITRIM range, issuing discard on extensive free-space regions on shared cluster storage and risking unintended loss or corruption of filesystem data integrity.\nA:H - Corrupted len/last_group values can cause prolonged iteration through cluster groups while holding the exclusive OCFS2 cluster-wide trim DLM lock, enabling severe denial of service or hang for the node and other cluster members."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:12.774Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d903d59c0315f59bdf0214b4f13d71c9feb2c45c"
},
{
"url": "https://git.kernel.org/stable/c/441abb77222f155e8d931dbabb465466db01cfd7"
},
{
"url": "https://git.kernel.org/stable/c/e652d0f5108e447b22da4249bcd23dd1b63c73dd"
},
{
"url": "https://git.kernel.org/stable/c/346314bb0cc2fc52b50b73d6ecc62e0217455c2e"
},
{
"url": "https://git.kernel.org/stable/c/06c0a0431b9856506fcd9b2c1b0c6136567d756d"
},
{
"url": "https://git.kernel.org/stable/c/3fa7139b5f42731a61f78c42433adae13f9adc21"
},
{
"url": "https://git.kernel.org/stable/c/2c13e02592b918be7725ab5965e01ef4e46c4b57"
},
{
"url": "https://git.kernel.org/stable/c/ca1afd88f5eaaff9168e1466e5401385edf59543"
}
],
"title": "ocfs2: reject FITRIM ranges shorter than a cluster",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74349",
"datePublished": "2026-08-15T05:58:36.630Z",
"dateReserved": "2026-08-15T05:44:03.886Z",
"dateUpdated": "2026-10-16T18:55:34.720Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89663 (GCVE-0-2026-89663)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: revoke copy-notify stateids before dropping their reference
Copy-notify stateids live in the s2s_cp_stateids IDR and on their parent
stid's sc_cp_list, pinned by a single membership reference.
_free_cpntf_state_locked() only unlinks an entry once its refcount reaches
zero, so any revoke path that runs while a concurrent
find_cpntf_state()/manage_cpntf_state() holder has elevated cs_count drops
the reference without unlinking, leaving the entry discoverable with its
membership reference already consumed. A second revoke or a laundromat tick
then frees it while the reader still holds the pointer -- a
KASAN-detectable use-after-free at the reader's nfs4_put_cpntf_state().
This affected all three revoke paths:
- The parent-stid drain (nfs4_free_cpntf_statelist()) repeatedly called
_free_cpntf_state_locked() on the first list entry; a holder that had
bumped cs_count made it return early, so the next iteration
re-decremented and burned the holder's reference.
- OFFLOAD_CANCEL (manage_cpntf_state()) and laundromat expiry likewise
used _free_cpntf_state_locked() and could drop 2->1 without unlinking.
Add revoke_cpntf_state_locked(), which unhashes the entry from the IDR and
sc_cp_list first (deferring the final free to any holder), and use it from
all three revoke paths. The drain now walks with list_for_each_entry_safe()
and revokes each entry unconditionally, so it terminates in one pass per
entry regardless of cs_count. The unhash is gated on
!list_empty(&cps->cp_list); the idr_remove() gate matters because
idr_alloc_cyclic() may have recycled the so_id by then. Keep
_free_cpntf_state_locked() for the reference-holder put path only, where a
concurrent revoke may already have unlinked the entry (its list_del_init()
then a no-op).
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5f00e0ab4de45d4f9e4bd0883cf2517acf63fc0d",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "06a62f6dbc60791f4229c6950b1eec6b18df9af1",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "a1fca0f7bbb7b100a39c7ba8dd7922c87c4237a3",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "caddbeffab1eaba1d2bcf5ceda35547863466705",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "6b8149448cdcb476fba4559d1ecc247efee9971b",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "b56d2c5f01cddbeca7d11cce81d97db4ec9a464f",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "ff8a3cff02b92b2a82f1a9876038fcf953ae9c25",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "3b0c3595db99bb4bebd7c8aa8a36f3c50e411bb7",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: revoke copy-notify stateids before dropping their reference\n\nCopy-notify stateids live in the s2s_cp_stateids IDR and on their parent\nstid\u0027s sc_cp_list, pinned by a single membership reference.\n_free_cpntf_state_locked() only unlinks an entry once its refcount reaches\nzero, so any revoke path that runs while a concurrent\nfind_cpntf_state()/manage_cpntf_state() holder has elevated cs_count drops\nthe reference without unlinking, leaving the entry discoverable with its\nmembership reference already consumed. A second revoke or a laundromat tick\nthen frees it while the reader still holds the pointer -- a\nKASAN-detectable use-after-free at the reader\u0027s nfs4_put_cpntf_state().\n\nThis affected all three revoke paths:\n\n - The parent-stid drain (nfs4_free_cpntf_statelist()) repeatedly called\n _free_cpntf_state_locked() on the first list entry; a holder that had\n bumped cs_count made it return early, so the next iteration\n re-decremented and burned the holder\u0027s reference.\n\n - OFFLOAD_CANCEL (manage_cpntf_state()) and laundromat expiry likewise\n used _free_cpntf_state_locked() and could drop 2-\u003e1 without unlinking.\n\nAdd revoke_cpntf_state_locked(), which unhashes the entry from the IDR and\nsc_cp_list first (deferring the final free to any holder), and use it from\nall three revoke paths. The drain now walks with list_for_each_entry_safe()\nand revokes each entry unconditionally, so it terminates in one pass per\nentry regardless of cs_count. The unhash is gated on\n!list_empty(\u0026cps-\u003ecp_list); the idr_remove() gate matters because\nidr_alloc_cyclic() may have recycled the so_id by then. Keep\n_free_cpntf_state_locked() for the reference-holder put path only, where a\nconcurrent revoke may already have unlinked the entry (its list_del_init()\nthen a no-op)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in the in-kernel NFS server (nfsd); COPY_NOTIFY, READ using a copy-notify stateid, CLOSE, and OFFLOAD_CANCEL are processed from NFSv4.2 compounds over TCP/2049, so a remote NFS client reaches the use-after-free over the network.\nAC:L - A malicious client fully controls both sides of the race: one compound READs with the copy-notify stateid so find_cpntf_state holds a cs_count reference while a concurrent CLOSE or OFFLOAD_CANCEL drains it; nfs4_free_cpntf_statelist then double-decrements and kfree\u0027s the still-linked object with no condition outside attacker control.\nPR:L - The attacker must be an established NFSv4.2 client of an export holding a valid open, lock, or delegation stateid to issue COPY_NOTIFY, which is authenticated low-privilege service access rather than a pre-authentication nfsd path.\nUI:N - No victim action is required; the attacking client drives COPY_NOTIFY, the concurrent READ that holds the cpntf reference, and CLOSE or OFFLOAD_CANCEL on its own NFS connections.\nS:U - The use-after-free corrupts kernel slab memory within the host nfsd security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Use-after-free of struct nfs4_cpntf_state lets a concurrent find_cpntf_state reader dereference a kfree\u0027d object; heap reuse of that slab gives the attacker control over freed contents, enabling arbitrary kernel memory disclosure.\nI:H - After the drain kfree, the holder still writes cpntf_time and later nfs4_put_cpntf_state runs _free_cpntf_state_locked on the freed object, a use-after-free write primitive usable for controlled memory modification and control-flow hijacking.\nA:H - The KASAN-detectable use-after-free at nfs4_put_cpntf_state oopses or panics nfsd worker threads, fully disrupting availability of the NFS server host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:34.792Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5f00e0ab4de45d4f9e4bd0883cf2517acf63fc0d"
},
{
"url": "https://git.kernel.org/stable/c/06a62f6dbc60791f4229c6950b1eec6b18df9af1"
},
{
"url": "https://git.kernel.org/stable/c/a1fca0f7bbb7b100a39c7ba8dd7922c87c4237a3"
},
{
"url": "https://git.kernel.org/stable/c/caddbeffab1eaba1d2bcf5ceda35547863466705"
},
{
"url": "https://git.kernel.org/stable/c/6b8149448cdcb476fba4559d1ecc247efee9971b"
},
{
"url": "https://git.kernel.org/stable/c/b56d2c5f01cddbeca7d11cce81d97db4ec9a464f"
},
{
"url": "https://git.kernel.org/stable/c/ff8a3cff02b92b2a82f1a9876038fcf953ae9c25"
},
{
"url": "https://git.kernel.org/stable/c/3b0c3595db99bb4bebd7c8aa8a36f3c50e411bb7"
}
],
"title": "nfsd: revoke copy-notify stateids before dropping their reference",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89663",
"datePublished": "2026-09-11T19:45:50.577Z",
"dateReserved": "2026-09-11T19:38:34.744Z",
"dateUpdated": "2026-10-19T08:50:34.792Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89531 (GCVE-0-2026-89531)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Reject connection when transport allocation fails
handle_connect_req() returns without action when
svc_rdma_create_xprt() fails to allocate the new transport.
The CM core returns 0 for CONNECT_REQUEST events, so it does
not destroy the new rdma_cm_id. Each allocation failure under
memory pressure leaks one rdma_cm_id, and a remote peer driving
connection attempts can amplify this.
Reject the connection by returning a non-zero status from the
CM event handler, which tells the CM core to destroy the
orphaned cm_id.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5bf47bbea3c22c0af2293b6c393ab04d5420f7ab",
"status": "affected",
"version": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
"versionType": "git"
},
{
"lessThan": "6e21754bbf75075f3fee1cebc79f3417364235ec",
"status": "affected",
"version": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
"versionType": "git"
},
{
"lessThan": "3cf372cec7ab2cd8c6002bf775cc14d90ccb098b",
"status": "affected",
"version": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
"versionType": "git"
},
{
"lessThan": "1f6a14c142fee4778c32709d1d54595c2e2b7991",
"status": "affected",
"version": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
"versionType": "git"
},
{
"lessThan": "0944462247dcb7de7622cdaaadf5f05c52707dab",
"status": "affected",
"version": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.25"
},
{
"lessThan": "2.6.25",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.25",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.25",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Reject connection when transport allocation fails\n\nhandle_connect_req() returns without action when\nsvc_rdma_create_xprt() fails to allocate the new transport.\nThe CM core returns 0 for CONNECT_REQUEST events, so it does\nnot destroy the new rdma_cm_id. Each allocation failure under\nmemory pressure leaks one rdma_cm_id, and a remote peer driving\nconnection attempts can amplify this.\n\nReject the connection by returning a non-zero status from the\nCM event handler, which tells the CM core to destroy the\norphaned cm_id."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:43.672Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5bf47bbea3c22c0af2293b6c393ab04d5420f7ab"
},
{
"url": "https://git.kernel.org/stable/c/6e21754bbf75075f3fee1cebc79f3417364235ec"
},
{
"url": "https://git.kernel.org/stable/c/3cf372cec7ab2cd8c6002bf775cc14d90ccb098b"
},
{
"url": "https://git.kernel.org/stable/c/1f6a14c142fee4778c32709d1d54595c2e2b7991"
},
{
"url": "https://git.kernel.org/stable/c/0944462247dcb7de7622cdaaadf5f05c52707dab"
}
],
"title": "svcrdma: Reject connection when transport allocation fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89531",
"datePublished": "2026-09-11T19:44:10.769Z",
"dateReserved": "2026-09-11T19:38:34.720Z",
"dateUpdated": "2026-10-21T12:47:43.672Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63993 (GCVE-0-2026-63993)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-10-19 20:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: do not reuse cached ip_hdr() value after skb_tunnel_check_pmtu()
skb_tunnel_check_pmtu() can change skb->head.
Reusing old_iph afer skb_tunnel_check_pmtu() can cause an UAF.
Use instead ip_hdr(skb) as done in drivers/net/bareudp.c
and drivers/net/geneve.c.
Found by Sashiko.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f Version: 4cb47a8644cc9eb8ec81190a50e79e6530d0297f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63993",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:34:49.188699Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:18:01.347Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6b8bfce9d2f774d2c2243e0248e03efb99bba6c0",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "9257f56ac47ef1976bcd056cf986a9988eeec67a",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "8d435d68d71fb875876b722f4136caf74f2f48bd",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "dc3bfa050f873371e745bdf478b1f5b738e5733d",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "609e63312c29aad18026a1d3222e123d4b6b0feb",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "5303925e360527243b46a440a04667826bbc72b7",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "a493efd4336cf19122ae0e4cbb3d31b32d70deea",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
},
{
"lessThan": "7d9ef0cb271555d8cf39fefe6c981e1493b25ecf",
"status": "affected",
"version": "4cb47a8644cc9eb8ec81190a50e79e6530d0297f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: do not reuse cached ip_hdr() value after skb_tunnel_check_pmtu()\n\nskb_tunnel_check_pmtu() can change skb-\u003ehead.\n\nReusing old_iph afer skb_tunnel_check_pmtu() can cause an UAF.\n\nUse instead ip_hdr(skb) as done in drivers/net/bareudp.c\nand drivers/net/geneve.c.\n\nFound by Sashiko."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in VXLAN transmit processing reached when network-originated packets are decapsulated, bridged, and re-encapsulated; VXLAN is a UDP-based overlay protocol reachable from remote peers over the network.\nAC:L - An attacker can reliably trigger the bug by sending crafted oversized inner IPv4/IPv6 packets (e.g., with DF set or ICMP/ICMPv6 payloads) through a bridged VXLAN interface to force skb_tunnel_check_pmtu() to reallocate skb-\u003ehead yet return 0, leaving the cached ip_hdr pointer stale.\nPR:N - Exploitation requires only the ability to send VXLAN/inner IP traffic to a host with an active VXLAN bridge port; no local account, capabilities, or authentication on the victim is needed.\nUI:N - No victim user action is required beyond normal network operation; triggering the bug is entirely driven by attacker-supplied packets forwarded through the VXLAN device.\nS:U - The vulnerability corrupts kernel heap memory on the host processing the VXLAN traffic; impact remains within the kernel\u0027s security authority and does not inherently cross a VM or sandbox boundary.\nC:H - This is a use-after-free where ip_tunnel_ecn_encap() reads from a freed skb head via the stale cached ip_hdr pointer, enabling kernel memory disclosure and supporting further exploitation.\nI:H - Use-after-free on skb data provides a foundation for heap grooming and arbitrary memory write primitives that could be leveraged for kernel code execution or privilege escalation.\nA:H - The UAF can cause kernel oops/panic during transmit processing and is independently exploitable for denial of service even when full code execution is not achieved."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:37:57.287Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6b8bfce9d2f774d2c2243e0248e03efb99bba6c0"
},
{
"url": "https://git.kernel.org/stable/c/9257f56ac47ef1976bcd056cf986a9988eeec67a"
},
{
"url": "https://git.kernel.org/stable/c/8d435d68d71fb875876b722f4136caf74f2f48bd"
},
{
"url": "https://git.kernel.org/stable/c/dc3bfa050f873371e745bdf478b1f5b738e5733d"
},
{
"url": "https://git.kernel.org/stable/c/609e63312c29aad18026a1d3222e123d4b6b0feb"
},
{
"url": "https://git.kernel.org/stable/c/5303925e360527243b46a440a04667826bbc72b7"
},
{
"url": "https://git.kernel.org/stable/c/a493efd4336cf19122ae0e4cbb3d31b32d70deea"
},
{
"url": "https://git.kernel.org/stable/c/7d9ef0cb271555d8cf39fefe6c981e1493b25ecf"
}
],
"title": "vxlan: do not reuse cached ip_hdr() value after skb_tunnel_check_pmtu()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63993",
"datePublished": "2026-07-19T14:56:13.218Z",
"dateReserved": "2026-07-19T07:54:57.025Z",
"dateUpdated": "2026-10-19T20:18:01.347Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80863 (GCVE-0-2026-80863)
Vulnerability from cvelistv5
Published
2026-09-04 15:55
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix OOB in free_rd_atomic_resources()
free_rd_atomic_resources() iterates using qp->attr.max_dest_rd_atomic.
Updating max_dest_rd_atomic before freeing the old array can make the
free path walk past the old allocation and trigger a slab out-of-bounds
write catched by KASAN:
==================================================================
BUG: KASAN: slab-out-of-bounds in free_rd_atomic_resource drivers/infiniband/sw/rxe/rxe_qp.c:180 [inline]
BUG: KASAN: slab-out-of-bounds in free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:171 [inline]
BUG: KASAN: slab-out-of-bounds in free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:163 [inline]
BUG: KASAN: slab-out-of-bounds in rxe_qp_from_attr+0x1e88/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:712
Write of size 4 at addr ffff88802b8dddb8 by task syz.3.451/11063
CPU: 0 UID: 0 PID: 11063 Comm: syz.3.451 Not tainted 7.1.0 #2 PREEMPT(full)
Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x10e/0x1f0 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0xf7/0x600 mm/kasan/report.c:482
kasan_report+0xe4/0x120 mm/kasan/report.c:595
free_rd_atomic_resource drivers/infiniband/sw/rxe/rxe_qp.c:180 [inline]
free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:171 [inline]
free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:163 [inline]
rxe_qp_from_attr+0x1e88/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:712
rxe_modify_qp+0x1e2/0x530 drivers/infiniband/sw/rxe/rxe_verbs.c:623
ib_security_modify_qp+0x223/0xfa0 drivers/infiniband/core/security.c:625
_ib_modify_qp+0x333/0xec0 drivers/infiniband/core/verbs.c:1915
modify_qp+0x13ca/0x1940 drivers/infiniband/core/uverbs_cmd.c:1932
ib_uverbs_modify_qp+0xcb/0x120 drivers/infiniband/core/uverbs_cmd.c:1958
ib_uverbs_write+0xb86/0x1030 drivers/infiniband/core/uverbs_main.c:680
vfs_write+0x2aa/0x1070 fs/read_write.c:686
ksys_write+0x1f8/0x250 fs/read_write.c:740
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fefc75a70cd
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 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 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fefc8495018 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007fefc7835fa0 RCX: 00007fefc75a70cd
RDX: 0000000000000078 RSI: 0000200000000240 RDI: 0000000000000007
RBP: 00007fefc764f10f R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fefc7836038 R14: 00007fefc7835fa0 R15: 00007ffcf0586aa0
</TASK>
Allocated by task 11063:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:57
kasan_save_track+0x14/0x30 mm/kasan/common.c:78
poison_kmalloc_redzone mm/kasan/common.c:398 [inline]
__kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:415
kasan_kmalloc include/linux/kasan.h:263 [inline]
__do_kmalloc_node mm/slub.c:5296 [inline]
__kmalloc_noprof+0x32a/0x850 mm/slub.c:5308
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
alloc_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:155 [inline]
rxe_qp_from_attr+0x3f8/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:714
rxe_modify_qp+0x1e2/0x530 drivers/infiniband/sw/rxe/rxe_verbs.c:623
ib_security_modify_qp+0x223/0xfa0 drivers/infiniband/core/security.c:625
_ib_modify_qp+0x333/0xec0 drivers/infiniband/core/verbs.c:1915
modify_qp+0x13ca/0x1940 drivers/infiniband/core/uverbs_cmd.c:1932
ib_uverbs_modify_qp+0xcb/0x120 drivers/infiniband/core/uverbs_cmd.c:1958
ib_uverbs_write+0xb86/0x1030 drivers/infiniband/core/uverbs_ma
---truncated---
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f Version: b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_qp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "142c8165b7974b40fa62c393653edb5c00b8b5fe",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "30b90b55201902b2b8edcdbe2315ccd4c7547002",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "9b7d66ea88ae9395e42766b94a5c717b158b940a",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "f5e6580a3a16a83c743ad5a7c16922854a0d8b71",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "bc6e943794515d2a8417b02597a27bd377468d04",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "bdf5deccfbf9f556a08d1d2ef52e9e48f969e53e",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "4e5f753e8c280278c09f68fe728abf846e2bdfc1",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "d219e7a8eed3802970c3e4d243d79c70ef0a31bf",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
},
{
"lessThan": "de329533792a373186d79dca1ca120f8fa0afd05",
"status": "affected",
"version": "b6bbee0d2438a2c9c7525f5bd7047a8b2ce4f38f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_qp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Fix OOB in free_rd_atomic_resources()\n\nfree_rd_atomic_resources() iterates using qp-\u003eattr.max_dest_rd_atomic.\nUpdating max_dest_rd_atomic before freeing the old array can make the\nfree path walk past the old allocation and trigger a slab out-of-bounds\nwrite catched by KASAN:\n==================================================================\nBUG: KASAN: slab-out-of-bounds in free_rd_atomic_resource drivers/infiniband/sw/rxe/rxe_qp.c:180 [inline]\nBUG: KASAN: slab-out-of-bounds in free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:171 [inline]\nBUG: KASAN: slab-out-of-bounds in free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:163 [inline]\nBUG: KASAN: slab-out-of-bounds in rxe_qp_from_attr+0x1e88/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:712\nWrite of size 4 at addr ffff88802b8dddb8 by task syz.3.451/11063\n\nCPU: 0 UID: 0 PID: 11063 Comm: syz.3.451 Not tainted 7.1.0 #2 PREEMPT(full)\nHardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\nCall Trace:\n \u003cTASK\u003e\n __dump_stack lib/dump_stack.c:94 [inline]\n dump_stack_lvl+0x10e/0x1f0 lib/dump_stack.c:120\n print_address_description mm/kasan/report.c:378 [inline]\n print_report+0xf7/0x600 mm/kasan/report.c:482\n kasan_report+0xe4/0x120 mm/kasan/report.c:595\n free_rd_atomic_resource drivers/infiniband/sw/rxe/rxe_qp.c:180 [inline]\n free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:171 [inline]\n free_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:163 [inline]\n rxe_qp_from_attr+0x1e88/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:712\n rxe_modify_qp+0x1e2/0x530 drivers/infiniband/sw/rxe/rxe_verbs.c:623\n ib_security_modify_qp+0x223/0xfa0 drivers/infiniband/core/security.c:625\n _ib_modify_qp+0x333/0xec0 drivers/infiniband/core/verbs.c:1915\n modify_qp+0x13ca/0x1940 drivers/infiniband/core/uverbs_cmd.c:1932\n ib_uverbs_modify_qp+0xcb/0x120 drivers/infiniband/core/uverbs_cmd.c:1958\n ib_uverbs_write+0xb86/0x1030 drivers/infiniband/core/uverbs_main.c:680\n vfs_write+0x2aa/0x1070 fs/read_write.c:686\n ksys_write+0x1f8/0x250 fs/read_write.c:740\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\nRIP: 0033:0x7fefc75a70cd\nCode: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 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 \u003c48\u003e 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48\nRSP: 002b:00007fefc8495018 EFLAGS: 00000246 ORIG_RAX: 0000000000000001\nRAX: ffffffffffffffda RBX: 00007fefc7835fa0 RCX: 00007fefc75a70cd\nRDX: 0000000000000078 RSI: 0000200000000240 RDI: 0000000000000007\nRBP: 00007fefc764f10f R08: 0000000000000000 R09: 0000000000000000\nR10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000\nR13: 00007fefc7836038 R14: 00007fefc7835fa0 R15: 00007ffcf0586aa0\n \u003c/TASK\u003e\n\nAllocated by task 11063:\n kasan_save_stack+0x33/0x60 mm/kasan/common.c:57\n kasan_save_track+0x14/0x30 mm/kasan/common.c:78\n poison_kmalloc_redzone mm/kasan/common.c:398 [inline]\n __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:415\n kasan_kmalloc include/linux/kasan.h:263 [inline]\n __do_kmalloc_node mm/slub.c:5296 [inline]\n __kmalloc_noprof+0x32a/0x850 mm/slub.c:5308\n kmalloc_noprof include/linux/slab.h:954 [inline]\n kzalloc_noprof include/linux/slab.h:1188 [inline]\n alloc_rd_atomic_resources drivers/infiniband/sw/rxe/rxe_qp.c:155 [inline]\n rxe_qp_from_attr+0x3f8/0x2150 drivers/infiniband/sw/rxe/rxe_qp.c:714\n rxe_modify_qp+0x1e2/0x530 drivers/infiniband/sw/rxe/rxe_verbs.c:623\n ib_security_modify_qp+0x223/0xfa0 drivers/infiniband/core/security.c:625\n _ib_modify_qp+0x333/0xec0 drivers/infiniband/core/verbs.c:1915\n modify_qp+0x13ca/0x1940 drivers/infiniband/core/uverbs_cmd.c:1932\n ib_uverbs_modify_qp+0xcb/0x120 drivers/infiniband/core/uverbs_cmd.c:1958\n ib_uverbs_write+0xb86/0x1030 drivers/infiniband/core/uverbs_ma\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:57.409Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/142c8165b7974b40fa62c393653edb5c00b8b5fe"
},
{
"url": "https://git.kernel.org/stable/c/30b90b55201902b2b8edcdbe2315ccd4c7547002"
},
{
"url": "https://git.kernel.org/stable/c/9b7d66ea88ae9395e42766b94a5c717b158b940a"
},
{
"url": "https://git.kernel.org/stable/c/f5e6580a3a16a83c743ad5a7c16922854a0d8b71"
},
{
"url": "https://git.kernel.org/stable/c/bc6e943794515d2a8417b02597a27bd377468d04"
},
{
"url": "https://git.kernel.org/stable/c/bdf5deccfbf9f556a08d1d2ef52e9e48f969e53e"
},
{
"url": "https://git.kernel.org/stable/c/4e5f753e8c280278c09f68fe728abf846e2bdfc1"
},
{
"url": "https://git.kernel.org/stable/c/d219e7a8eed3802970c3e4d243d79c70ef0a31bf"
},
{
"url": "https://git.kernel.org/stable/c/de329533792a373186d79dca1ca120f8fa0afd05"
}
],
"title": "RDMA/rxe: Fix OOB in free_rd_atomic_resources()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80863",
"datePublished": "2026-09-04T15:55:17.668Z",
"dateReserved": "2026-08-26T14:34:25.798Z",
"dateUpdated": "2026-10-19T08:44:57.409Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74692 (GCVE-0-2026-74692)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix TOCTOU race between smc_listen_out() and listener close
smc_listen_out() reads lsmc->sk.sk_state without the listener lock,
then acquires lock_sock_nested() only after the check passes. This
opens a window where smc_close_active() can transition the listener
to SMC_CLOSED, call smc_close_cleanup_listen() to drain the accept
queue, and release the lock, all between the lockless read and the
delayed lock acquisition:
smc_listen_work (smc_hs_wq) smc_close_active()
------------------------------- -------------------------
release_sock(child)
if (sk_state == SMC_LISTEN) TRUE
lock_sock(listener)
sk_state = SMC_CLOSED
smc_close_cleanup_listen()
release_sock(listener)
flush_work(tcp_listen_work)
lock_sock_nested(listener)
smc_accept_enqueue(listener, child) /* child enqueued on dead listener */
smc_close_active() flushes only tcp_listen_work. Work items already
dispatched onto smc_hs_wq for the CLC handshake continue running
unguarded. smc_accept_enqueue() takes a sock_hold() on the child that
is never released, so the child smc_sock, its clcsock, and the
reference all leak. A remote peer that opens TCP connections while the
server calls close() can exhaust kernel memory.
Move lock_sock_nested() to before the sk_state check so that the test
and the enqueue are atomic under the listener lock.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 Version: d1d004585b40c212b338fc8a40cbaaf230ea4703 Version: 4.19.299 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74692",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:39.954097Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:09.513Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "53c7938d8bcfde3296ec1a347ba2a9393c1fdcfa",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "feb71634bb1abab3e8fb5cde874b27001cc1282e",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "01865e1ddb126b25ac9eba5cdd7ec49e11183a64",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "00f89433777236ced4771211047fb5d4cd581cea",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "78e5ebcd1c10ed7c8bda0a99e0abd5b62da86d67",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "ff5bcd804b5bc5c64736b7d318c20e12ea9506b8",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"lessThan": "185a4caeecabc150106deda1da170b09f2ad803f",
"status": "affected",
"version": "fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9",
"versionType": "git"
},
{
"status": "affected",
"version": "d1d004585b40c212b338fc8a40cbaaf230ea4703",
"versionType": "git"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.299",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.299",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix TOCTOU race between smc_listen_out() and listener close\n\nsmc_listen_out() reads lsmc-\u003esk.sk_state without the listener lock,\nthen acquires lock_sock_nested() only after the check passes. This\nopens a window where smc_close_active() can transition the listener\nto SMC_CLOSED, call smc_close_cleanup_listen() to drain the accept\nqueue, and release the lock, all between the lockless read and the\ndelayed lock acquisition:\n\n smc_listen_work (smc_hs_wq) smc_close_active()\n ------------------------------- -------------------------\n release_sock(child)\n if (sk_state == SMC_LISTEN) TRUE\n lock_sock(listener)\n sk_state = SMC_CLOSED\n smc_close_cleanup_listen()\n release_sock(listener)\n flush_work(tcp_listen_work)\n lock_sock_nested(listener)\n smc_accept_enqueue(listener, child) /* child enqueued on dead listener */\n\nsmc_close_active() flushes only tcp_listen_work. Work items already\ndispatched onto smc_hs_wq for the CLC handshake continue running\nunguarded. smc_accept_enqueue() takes a sock_hold() on the child that\nis never released, so the child smc_sock, its clcsock, and the\nreference all leak. A remote peer that opens TCP connections while the\nserver calls close() can exhaust kernel memory.\n\nMove lock_sock_nested() to before the sk_state check so that the test\nand the enqueue are atomic under the listener lock."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug fires when smc_listen_work() on smc_hs_wq finishes an inbound SMC/TCP handshake queued by smc_tcp_listen_work() for each remote connection to an AF_SMC listener, so any network peer that reaches the listener port drives the full path via SYN and CLC messages.\nAC:L - The attacker controls handshake completions by flooding SMC-capable TCP connections and overlapping them with listener close(), either by timing floods against restarts or locally by running server and client together; smc_close_active() only flushes tcp_listen_work, leaving smc_hs_wq workers racing through the unlocked sk_state check.\nPR:N - SMC performs no authentication; smc_create() and smc_listen() enforce no capabilities, and smc_listen_work() processes the CLC handshake immediately after TCP accept before any credential verification, so an unauthenticated remote peer need only reach the listener port.\nUI:N - Exploitation requires only inbound network connections and kernel handshake/close processing; no end-user action such as opening a file or mounting a filesystem is needed, and listener shutdown during deployments or restarts is routine automated server behavior.\nS:U - The leak accumulates orphaned smc_sock structures and clcsock references within the kernel networking subsystem on the targeted host; it does not cross VM, container, IOMMU, or other security boundaries.\nC:N - The bug is an unreleased sock_hold() leaving child sockets on a closed listener accept queue; objects are never freed prematurely, so there is no out-of-bounds read, use-after-free dereference, or kernel data disclosure to the attacker.\nI:N - Only reference counts are incremented without matching decrements; no memory is written out of bounds, no freed object is reused, and no control-flow or integrity primitive is obtained\u2014only unreclaimable kernel allocations accumulate.\nA:H - Each successful race permanently leaks a child smc_sock, its clcsock, and sock references that smc_close_cleanup_listen() can never drain; a remote peer repeating handshakes during listener close can exhaust kernel memory and cause system-wide denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:37.608Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/53c7938d8bcfde3296ec1a347ba2a9393c1fdcfa"
},
{
"url": "https://git.kernel.org/stable/c/feb71634bb1abab3e8fb5cde874b27001cc1282e"
},
{
"url": "https://git.kernel.org/stable/c/01865e1ddb126b25ac9eba5cdd7ec49e11183a64"
},
{
"url": "https://git.kernel.org/stable/c/00f89433777236ced4771211047fb5d4cd581cea"
},
{
"url": "https://git.kernel.org/stable/c/78e5ebcd1c10ed7c8bda0a99e0abd5b62da86d67"
},
{
"url": "https://git.kernel.org/stable/c/ff5bcd804b5bc5c64736b7d318c20e12ea9506b8"
},
{
"url": "https://git.kernel.org/stable/c/185a4caeecabc150106deda1da170b09f2ad803f"
}
],
"title": "net/smc: fix TOCTOU race between smc_listen_out() and listener close",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74692",
"datePublished": "2026-08-22T15:32:55.873Z",
"dateReserved": "2026-08-15T05:44:03.926Z",
"dateUpdated": "2026-10-16T19:16:09.513Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74375 (GCVE-0-2026-74375)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid1,raid10: fix deadlock in read error recovery path
raid1d and raid10d may resubmit a split md cloned bio while handling
a read error. In this case, resubmitting the bio can lead to a deadlock
if the array is suspended before md_handle_request() acquires an
active_io reference via percpu_ref_tryget_live().
Since the cloned bio already holds an active_io reference,
trying to acquire another reference via percpu_ref_tryget_live()
can lead to a deadlock while the array is suspended.
Fix this by using percpu_ref_get() for md cloned bios.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/md.c",
"drivers/md/md.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "923a6f3172a362d6b2ff12386e376e0e47188f78",
"status": "affected",
"version": "bb2a9acefaf9ce5bbc1e70f407e34599233d0243",
"versionType": "git"
},
{
"lessThan": "0889242775340e2c5b69b1590bd71335dd4fdeda",
"status": "affected",
"version": "bb2a9acefaf9ce5bbc1e70f407e34599233d0243",
"versionType": "git"
},
{
"lessThan": "ea2d1d2ebf60b70b602a92261a567d5fc4575eab",
"status": "affected",
"version": "bb2a9acefaf9ce5bbc1e70f407e34599233d0243",
"versionType": "git"
},
{
"lessThan": "38777f014c37972868f1733a651c85288bb8a757",
"status": "affected",
"version": "bb2a9acefaf9ce5bbc1e70f407e34599233d0243",
"versionType": "git"
},
{
"lessThan": "7b15c24f805339a585cfe7d72f446b7e88b9bcc0",
"status": "affected",
"version": "bb2a9acefaf9ce5bbc1e70f407e34599233d0243",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/md.c",
"drivers/md/md.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid1,raid10: fix deadlock in read error recovery path\n\nraid1d and raid10d may resubmit a split md cloned bio while handling\na read error. In this case, resubmitting the bio can lead to a deadlock\nif the array is suspended before md_handle_request() acquires an\nactive_io reference via percpu_ref_tryget_live().\n\nSince the cloned bio already holds an active_io reference,\ntrying to acquire another reference via percpu_ref_tryget_live()\ncan lead to a deadlock while the array is suspended.\n\nFix this by using percpu_ref_get() for md cloned bios."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:32.765Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/923a6f3172a362d6b2ff12386e376e0e47188f78"
},
{
"url": "https://git.kernel.org/stable/c/0889242775340e2c5b69b1590bd71335dd4fdeda"
},
{
"url": "https://git.kernel.org/stable/c/ea2d1d2ebf60b70b602a92261a567d5fc4575eab"
},
{
"url": "https://git.kernel.org/stable/c/38777f014c37972868f1733a651c85288bb8a757"
},
{
"url": "https://git.kernel.org/stable/c/7b15c24f805339a585cfe7d72f446b7e88b9bcc0"
}
],
"title": "md/raid1,raid10: fix deadlock in read error recovery path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74375",
"datePublished": "2026-08-15T05:58:54.335Z",
"dateReserved": "2026-08-15T05:44:03.889Z",
"dateUpdated": "2026-10-21T12:45:32.765Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72398 (GCVE-0-2026-72398)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: add INIT verification after cookie unpacking
In SCTP handshake, the INIT chunk is initially processed by the server
and embedded into the cookie carried in INIT-ACK. The client then
returns this cookie via COOKIE-ECHO, where the server unpacks it and
reconstructs the original INIT chunk.
When cookie authentication is enabled, the cookie contents are protected
against tampering, so reusing the unpacked INIT without re-verification
is safe.
However, when cookie authentication is disabled, the reconstructed INIT
can no longer be trusted. In this case, the INIT must be explicitly
validated after unpacking to avoid processing potentially tampered data.
Add sctp_verify_init() checks after cookie unpacking in COOKIE-ECHO
processing paths (sctp_sf_do_5_1D_ce() and sctp_sf_do_5_2_4_dupcook())
when cookie_auth_enable is disabled. On failure, the new association is
freed and the packet is discarded.
Also tighten cookie validation in sctp_unpack_cookie() by verifying the
embedded chunk type is SCTP_CID_INIT before treating it as an INIT
chunk.
Finally, update sctp_verify_init() to validate parameter bounds using
the actual embedded INIT length instead of chunk->chunk_end, since the
INIT stored in COOKIE-ECHO may not span the entire chunk buffer.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72398",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:48:54.907256Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:21.540Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_make_chunk.c",
"net/sctp/sm_statefuns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "81892d83cc897331510f35b30d17f8b0dc285966",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "683a012b984fef4bc155e278742fbe01561e102a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "bca3100f550281c2f2418652338bced3b35af0e6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "062bcbf8d1f1051fdeb20b94920031b0e2cb95a2",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "414c5447fe6a200613dd46d7fdc8454622076cb1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_make_chunk.c",
"net/sctp/sm_statefuns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: add INIT verification after cookie unpacking\n\nIn SCTP handshake, the INIT chunk is initially processed by the server\nand embedded into the cookie carried in INIT-ACK. The client then\nreturns this cookie via COOKIE-ECHO, where the server unpacks it and\nreconstructs the original INIT chunk.\n\nWhen cookie authentication is enabled, the cookie contents are protected\nagainst tampering, so reusing the unpacked INIT without re-verification\nis safe.\n\nHowever, when cookie authentication is disabled, the reconstructed INIT\ncan no longer be trusted. In this case, the INIT must be explicitly\nvalidated after unpacking to avoid processing potentially tampered data.\n\nAdd sctp_verify_init() checks after cookie unpacking in COOKIE-ECHO\nprocessing paths (sctp_sf_do_5_1D_ce() and sctp_sf_do_5_2_4_dupcook())\nwhen cookie_auth_enable is disabled. On failure, the new association is\nfreed and the packet is discarded.\n\nAlso tighten cookie validation in sctp_unpack_cookie() by verifying the\nembedded chunk type is SCTP_CID_INIT before treating it as an INIT\nchunk.\n\nFinally, update sctp_verify_init() to validate parameter bounds using\nthe actual embedded INIT length instead of chunk-\u003echunk_end, since the\nINIT stored in COOKIE-ECHO may not span the entire chunk buffer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when a remote peer sends SCTP COOKIE-ECHO packets to a listening endpoint; packets enter through sctp_rcv()/IPv4/IPv6 SCTP handlers and are dispatched to COOKIE-ECHO state handlers without any local access requirement.\nAC:L - On deployments with SCTP cookie authentication disabled (supported via cookie_hmac_alg=none), an attacker can complete INIT/INIT-ACK, tamper with the embedded INIT in the returned cookie, and reliably trigger the vulnerable path with crafted COOKIE-ECHO traffic.\nPR:N - Exploitation is pre-authentication SCTP handshake processing on a listening server; the attacker only needs network reachability to the SCTP port and does not need local privileges, credentials, or CAP_NET_ADMIN on the target.\nUI:N - No victim user action is required beyond operating an SCTP listener; exploitation is achieved solely by sending attacker-crafted SCTP handshake packets over the network.\nS:U - The vulnerability affects the Linux kernel SCTP stack on the target host and does not cross a separate security boundary such as guest-to-host VM escape, container sandbox escape, or IOMMU/DMA isolation bypass.\nC:H - Without sctp_verify_init() and with incorrect INIT parameter bound checks, attacker-controlled embedded INIT lengths/types can drive sctp_walk_params() and kmemdup() beyond valid cookie data, enabling out-of-bounds kernel memory reads.\nI:H - Tampered or type-confused embedded INIT data is parsed into association/peer state via sctp_process_init() without full validation, causing kernel memory-safety corruption that can modify association structures and plausibly be leveraged for stronger write primitives.\nA:H - Malformed embedded INIT processing during COOKIE-ECHO handling can trigger kernel faults, KASAN/oops conditions, allocation failures, or repeated crashes of SCTP input processing, causing high availability impact on internet-facing SCTP services."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:49.503Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/81892d83cc897331510f35b30d17f8b0dc285966"
},
{
"url": "https://git.kernel.org/stable/c/683a012b984fef4bc155e278742fbe01561e102a"
},
{
"url": "https://git.kernel.org/stable/c/bca3100f550281c2f2418652338bced3b35af0e6"
},
{
"url": "https://git.kernel.org/stable/c/062bcbf8d1f1051fdeb20b94920031b0e2cb95a2"
},
{
"url": "https://git.kernel.org/stable/c/414c5447fe6a200613dd46d7fdc8454622076cb1"
}
],
"title": "sctp: add INIT verification after cookie unpacking",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72398",
"datePublished": "2026-08-15T05:56:24.306Z",
"dateReserved": "2026-08-09T03:40:39.925Z",
"dateUpdated": "2026-10-21T12:44:49.503Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90240 (GCVE-0-2026-90240)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Flush context cache with correct SID when tearing down aliases
domain_context_clear_one() and device_pasid_table_teardown() are both
invoked once per DMA alias of a device. Each function locates the context
entry using the bus/devfn pair provided by the pci_for_each_dma_alias()
callback, then calls intel_context_flush_no_pasid(), which constructs a
device-selective context-cache invalidation from info->bus and
info->devfn (that is, always the requester ID of the device itself).
As a result, for every alias other than the device’s own RID, the context
entry that was just cleared in memory is never invalidated in the context
cache. Hardware may continue using that stale cached entry. In the
scalable-mode teardown path, intel_pasid_free_table() can then free the
PASID directory still referenced by that stale entry, allowing the IOMMU
to walk freed memory.
Fix this by passing the source ID of the entry being torn down to
intel_context_flush_no_pasid(), instead of deriving it from @info.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c",
"drivers/iommu/intel/iommu.h",
"drivers/iommu/intel/pasid.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3eb6ad14ef359e426cff14942e220de101cdbe84",
"status": "affected",
"version": "f90584f4beb84211c4d21b319cc13f391fe9f3c2",
"versionType": "git"
},
{
"lessThan": "a803141597d61dc0511f7cd849625e17d042ca8a",
"status": "affected",
"version": "f90584f4beb84211c4d21b319cc13f391fe9f3c2",
"versionType": "git"
},
{
"lessThan": "5baddf100b3be730912485648cbaae5e3a251923",
"status": "affected",
"version": "f90584f4beb84211c4d21b319cc13f391fe9f3c2",
"versionType": "git"
},
{
"lessThan": "c54e4ae971b98e8d650400137d332cee56c03f55",
"status": "affected",
"version": "f90584f4beb84211c4d21b319cc13f391fe9f3c2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c",
"drivers/iommu/intel/iommu.h",
"drivers/iommu/intel/pasid.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Flush context cache with correct SID when tearing down aliases\n\ndomain_context_clear_one() and device_pasid_table_teardown() are both\ninvoked once per DMA alias of a device. Each function locates the context\nentry using the bus/devfn pair provided by the pci_for_each_dma_alias()\ncallback, then calls intel_context_flush_no_pasid(), which constructs a\ndevice-selective context-cache invalidation from info-\u003ebus and\ninfo-\u003edevfn (that is, always the requester ID of the device itself).\n\nAs a result, for every alias other than the device\u2019s own RID, the context\nentry that was just cleared in memory is never invalidated in the context\ncache. Hardware may continue using that stale cached entry. In the\nscalable-mode teardown path, intel_pasid_free_table() can then free the\nPASID directory still referenced by that stale entry, allowing the IOMMU\nto walk freed memory.\n\nFix this by passing the source ID of the entry being torn down to\nintel_context_flush_no_pasid(), instead of deriving it from @info."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - domain_context_clear_one() and device_pasid_table_teardown() run from local VFIO_DEVICE_DETACH_IOMMUFD_PT/ATTACH_IOMMUFD_PT (vfio_df_ioctl_detach_pt \u2192 iommufd_device_detach \u2192 blocking_domain_attach_dev \u2192 device_block_translation) and from intel_iommu_release_device on PCI removal. The bug is intel_context_flush_no_pasid() using the wrong SID, not bytes from a remote protocol.\nAC:L - For every pci_for_each_dma_alias() RID other than info-\u003ebus/info-\u003edevfn, intel_context_flush_no_pasid() issues DMA_CCMD_DEVICE_INVL with the device\u0027s own RID, so the alias context-cache entry is never invalidated. A VFIO user who owns a dma_alias_mask or PCI-bridge-aliased device then DMAs with that alias SID; there is no uncontrolled race.\nPR:L - vfio_device_fops_unl_ioctl handles VFIO_DEVICE_DETACH_IOMMUFD_PT with no capable() check; vfio_group_fops_open requires CAP_SYS_RAWIO only for VFIO_NO_IOMMU groups. A tenant VMM with a passed-through aliased PCI device (device-file access, not init-namespace root) can detach while keeping DMA active.\nUI:N - The attacker issues VFIO_DEVICE_DETACH_IOMMUFD_PT or closes the vfio device fd themselves, then continues DMA using the unflushed alias RID. No separate victim action such as mounting a filesystem is required.\nS:C - After the missed alias-SID flush, hardware keeps a Present context for that RID while intel_pasid_free_table() (scalable mode) or domain teardown (legacy domain_context_clear_one) frees the PASID directory or page tables. The IOMMU then walks those freed translation structures for device DMA, crossing the VT-d DMA isolation boundary.\nC:H - A stale cached context for the alias SID still points at the PASID directory that intel_pasid_free_table() just freed, or at second-level page tables already torn down. Device DMA with that RID is translated through attacker-influencable freed pages, reading host memory outside the assigned domain.\nI:H - The same leftover cached page-table or PASID-directory pointer for the unflushed alias SID lets the device DMA-write host memory that software has already freed or reassigned, giving an arbitrary cross-domain write primitive.\nA:H - IOMMU walks of the freed PASID directory or page tables via the stale alias-SID context cause DMAR faults, translation failures, and host oops/panic; the commit documents hardware continuing to use that cached entry after teardown."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:36.295Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3eb6ad14ef359e426cff14942e220de101cdbe84"
},
{
"url": "https://git.kernel.org/stable/c/a803141597d61dc0511f7cd849625e17d042ca8a"
},
{
"url": "https://git.kernel.org/stable/c/5baddf100b3be730912485648cbaae5e3a251923"
},
{
"url": "https://git.kernel.org/stable/c/c54e4ae971b98e8d650400137d332cee56c03f55"
}
],
"title": "iommu/vt-d: Flush context cache with correct SID when tearing down aliases",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90240",
"datePublished": "2026-09-17T16:07:44.445Z",
"dateReserved": "2026-09-11T19:38:34.795Z",
"dateUpdated": "2026-10-21T12:50:36.295Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89674 (GCVE-0-2026-89674)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget
The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has
multiple errors that can result in either an out-of-bounds write or
leaking uninitialized kernel memory to the client:
- fh_len doesn't account for XDR padding on the file handle data
- uid and gid lengths use "8 + len" but xdr_encode_opaque() actually
writes "4 + xdr_align_size(len)" bytes
- ds_len omits the flags and stats_collect_hint fields (8 bytes),
while len's header constant overestimates by 8 bytes -- these
partially cancel but leave a net mismatch
The worst case occurs with short strings (e.g. uid=0, gid=0 with an
odd-sized file handle), where the function writes up to 5 bytes past
the reserved XDR buffer. Conversely, when string lengths happen to be
4-byte aligned, the reservation is too large and stale buffer content
is sent to the client.
Fix this by breaking out every encoded field explicitly in the ds_len
calculation, using xdr_align_size() for all variable-length opaque
fields, and correcting the header constants.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 Version: 9b9960a0ca4773e21c4b153ed355583946346b25 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/flexfilelayoutxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3a7fd224df0fbb42167eb1b77be45d72fe0b1098",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "29e4478e2ed5a227e8f0c33cacb91bf227cedd47",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "65a72b721943618eeb3a41c8b36e915591f3f83f",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "bee826c00ac900473f91306f1f3e5a5a81fd4a74",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "e7d9d23ecd9172f05b09bb678ff22db8e361c428",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "0380129b1373c437eb35401a174671c8888f4b80",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "c81cef6a805dec266c10fc4f83c93d6fcf1a2b43",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
},
{
"lessThan": "f9868174af49d207fbaf0c5e055d088a983684af",
"status": "affected",
"version": "9b9960a0ca4773e21c4b153ed355583946346b25",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/flexfilelayoutxdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget\n\nThe XDR buffer size calculation in nfsd4_ff_encode_layoutget() has\nmultiple errors that can result in either an out-of-bounds write or\nleaking uninitialized kernel memory to the client:\n\n - fh_len doesn\u0027t account for XDR padding on the file handle data\n - uid and gid lengths use \"8 + len\" but xdr_encode_opaque() actually\n writes \"4 + xdr_align_size(len)\" bytes\n - ds_len omits the flags and stats_collect_hint fields (8 bytes),\n while len\u0027s header constant overestimates by 8 bytes -- these\n partially cancel but leave a net mismatch\n\nThe worst case occurs with short strings (e.g. uid=0, gid=0 with an\nodd-sized file handle), where the function writes up to 5 bytes past\nthe reserved XDR buffer. Conversely, when string lengths happen to be\n4-byte aligned, the reservation is too large and stale buffer content\nis sent to the client.\n\nFix this by breaking out every encoded field explicitly in the ds_len\ncalculation, using xdr_align_size() for all variable-length opaque\nfields, and correcting the header constants."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd\u0027s pNFS flexfile LAYOUTGET encoder (nfsd4_ff_encode_layoutget). A remote NFSv4.1 client reaches it over TCP/2049 via COMPOUND SEQUENCE, PUTFH, OPEN, and LAYOUTGET on the in-kernel NFS server.\nAC:L - A client that can OPEN a file on a flexfile pNFS export issues LAYOUTGET and hits the miscalculated xdr_reserve_space length. Root-owned files yield uid/gid \"0\", and PUTFH may append 1-3 bytes ignored by fh_verify so fh.size is odd; no race is required.\nPR:N - Typical nfsd deployments accept AUTH_SYS/AUTH_NULL without cryptographic authentication. Any host allowed by the export ACL can EXCHANGE_ID/CREATE_SESSION, PUTFH/OPEN, and LAYOUTGET; no local account on the NFS server is required.\nUI:N - The attacking NFS client drives the compounds that open a file and request a flexfile layout. No victim user action such as mounting a filesystem or opening a file on the server is required.\nS:U - The out-of-bounds write and kernel-memory leak occur in the NFS server host\u0027s XDR reply buffer. Impact stays in that kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - When the reservation is too large, stale uninitialized kernel bytes in the RPC reply are sent to the client. The matching out-of-bounds write is kernel memory corruption that can be leveraged for information disclosure per CVSS kernel guidance.\nI:H - Worst case the encoder writes up to 5 bytes past the xdr_reserve_space region, including across a reply-page boundary into adjacent kernel memory. Kernel CNA guidance scores out-of-bounds writes as High integrity impact.\nA:H - A write past the current XDR page (xdr-\u003eend) into an unmapped or unrelated page oopses or panics nfsd. The attacker can pad prior COMPOUND ops to place the LAYOUTGET encode at a page boundary and repeat the request to deny service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:47.609Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3a7fd224df0fbb42167eb1b77be45d72fe0b1098"
},
{
"url": "https://git.kernel.org/stable/c/29e4478e2ed5a227e8f0c33cacb91bf227cedd47"
},
{
"url": "https://git.kernel.org/stable/c/65a72b721943618eeb3a41c8b36e915591f3f83f"
},
{
"url": "https://git.kernel.org/stable/c/bee826c00ac900473f91306f1f3e5a5a81fd4a74"
},
{
"url": "https://git.kernel.org/stable/c/e7d9d23ecd9172f05b09bb678ff22db8e361c428"
},
{
"url": "https://git.kernel.org/stable/c/0380129b1373c437eb35401a174671c8888f4b80"
},
{
"url": "https://git.kernel.org/stable/c/c81cef6a805dec266c10fc4f83c93d6fcf1a2b43"
},
{
"url": "https://git.kernel.org/stable/c/f9868174af49d207fbaf0c5e055d088a983684af"
}
],
"title": "nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89674",
"datePublished": "2026-09-11T19:45:58.883Z",
"dateReserved": "2026-09-11T19:38:34.746Z",
"dateUpdated": "2026-10-19T08:50:47.609Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53284 (GCVE-0-2026-53284)
Vulnerability from cvelistv5
Published
2026-06-26 19:40
Modified
2026-10-21 12:42
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: only release the dirty pages io tree after successful writes
[WARNING]
With extra warning on dirty extent buffers at umount (aka, the next
patch in the series), test case generic/388 can trigger the following
warning about dirty extent buffers at unmount time:
BTRFS critical (device dm-2 state E): emergency shutdown
BTRFS error (device dm-2 state E): error while writing out transaction: -30
BTRFS warning (device dm-2 state E): Skipping commit of aborted transaction.
BTRFS error (device dm-2 state EA): Transaction 9 aborted (error -30)
BTRFS: error (device dm-2 state EA) in cleanup_transaction:2068: errno=-30 Readonly filesystem
BTRFS info (device dm-2 state EA): forced readonly
BTRFS info (device dm-2 state EA): last unmount of filesystem 4fbf2e15-f941-49a0-bc7c-716315d2777c
------------[ cut here ]------------
WARNING: disk-io.c:3311 at invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs], CPU#8: umount/914368
CPU: 8 UID: 0 PID: 914368 Comm: umount Tainted: G OE 7.1.0-rc1-custom+ #372 PREEMPT(full) 2de38db8d1deae71fde295430a0ff3ab98ccf596
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022
RIP: 0010:invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs]
Call Trace:
<TASK>
close_ctree+0x52e/0x574 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd]
generic_shutdown_super+0x89/0x1a0
kill_anon_super+0x16/0x40
btrfs_kill_super+0x16/0x20 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd]
deactivate_locked_super+0x2d/0xb0
cleanup_mnt+0xdc/0x140
task_work_run+0x5a/0xa0
exit_to_user_mode_loop+0x123/0x4b0
do_syscall_64+0x243/0x7c0
entry_SYSCALL_64_after_hwframe+0x4b/0x53
</TASK>
---[ end trace 0000000000000000 ]---
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30539776 owner 9 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30621696 owner 257 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30638080 owner 258 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30654464 owner 7 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30703616 owner 2 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30720000 owner 10 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30736384 owner 4 gen 9 refs 2 flags 0x7
BTRFS warning (device dm-2 state EA): unable to release extent buffer 30752768 owner 11 gen 9 refs 2 flags 0x7
I'm using a stripped down version, which seems to trigger the warning
more reliably:
_fsstress_pid=""
workload()
{
dmesg -C
mkfs.btrfs -f -K $dev > /dev/null
echo 1 > /sys/kernel/debug/clear_warn_once
mount $dev $mnt
$fsstress -w -n 1024 -p 4 -d $mnt &
_fsstress_pid=$!
sleep 0
$godown $mnt
pkill --echo -PIPE fsstress > /dev/null
wait $_fsstress_pid
unset _fsstress_pid
umount $mnt
if dmesg | grep -q "WARNING"; then
fail
fi
}
for (( i = 0; i < $runtime; i++ )); do
echo "=== $i/$runtime ==="
workload
done
[CAUSE]
Inside btrfs_write_and_wait_transaction(), we first try to write all
dirty ebs, then wait for them to finish.
After that we call btrfs_extent_io_tree_release() to free all
extent states from dirty_pages io tree.
However if we hit an error from btrfs_write_marked_extent(), then we
still call btrfs_extent_io_tree_release() to clear that dirty_pages io
tree, which may contain dirty records that we haven't yet submitted.
Furthermore, the later transaction cleanup path will utilize that
dirty_pages io tree to properly cleanup those dirty ebs, but since it's
already empty, no dirty ebs are properly cleaned up, thus will later
trigger the warnings inside invalidate_btree_folios().
---truncated---
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/disk-io.c",
"fs/btrfs/transaction.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7107b047e709ad258f7c29a342266a8e3653f370",
"status": "affected",
"version": "663dfbb07774e0fe1049e8db3054a08500122f18",
"versionType": "git"
},
{
"lessThan": "d915195c2f57794ed8ec4bf131bcead4b5dc29c1",
"status": "affected",
"version": "663dfbb07774e0fe1049e8db3054a08500122f18",
"versionType": "git"
},
{
"lessThan": "9ebb7eba1237dc198768b9c76506a79f924c82bb",
"status": "affected",
"version": "663dfbb07774e0fe1049e8db3054a08500122f18",
"versionType": "git"
},
{
"lessThan": "df03d67dc63722845cb9fe59d815d1225b04fd54",
"status": "affected",
"version": "663dfbb07774e0fe1049e8db3054a08500122f18",
"versionType": "git"
},
{
"lessThan": "4066c55e109475a06d18a1f127c939d551211956",
"status": "affected",
"version": "663dfbb07774e0fe1049e8db3054a08500122f18",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/disk-io.c",
"fs/btrfs/transaction.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.33",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.33",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.10",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: only release the dirty pages io tree after successful writes\n\n[WARNING]\nWith extra warning on dirty extent buffers at umount (aka, the next\npatch in the series), test case generic/388 can trigger the following\nwarning about dirty extent buffers at unmount time:\n\n BTRFS critical (device dm-2 state E): emergency shutdown\n BTRFS error (device dm-2 state E): error while writing out transaction: -30\n BTRFS warning (device dm-2 state E): Skipping commit of aborted transaction.\n BTRFS error (device dm-2 state EA): Transaction 9 aborted (error -30)\n BTRFS: error (device dm-2 state EA) in cleanup_transaction:2068: errno=-30 Readonly filesystem\n BTRFS info (device dm-2 state EA): forced readonly\n BTRFS info (device dm-2 state EA): last unmount of filesystem 4fbf2e15-f941-49a0-bc7c-716315d2777c\n ------------[ cut here ]------------\n WARNING: disk-io.c:3311 at invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs], CPU#8: umount/914368\n CPU: 8 UID: 0 PID: 914368 Comm: umount Tainted: G OE 7.1.0-rc1-custom+ #372 PREEMPT(full) 2de38db8d1deae71fde295430a0ff3ab98ccf596\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022\n RIP: 0010:invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs]\n Call Trace:\n \u003cTASK\u003e\n close_ctree+0x52e/0x574 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd]\n generic_shutdown_super+0x89/0x1a0\n kill_anon_super+0x16/0x40\n btrfs_kill_super+0x16/0x20 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd]\n deactivate_locked_super+0x2d/0xb0\n cleanup_mnt+0xdc/0x140\n task_work_run+0x5a/0xa0\n exit_to_user_mode_loop+0x123/0x4b0\n do_syscall_64+0x243/0x7c0\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \u003c/TASK\u003e\n ---[ end trace 0000000000000000 ]---\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30539776 owner 9 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30621696 owner 257 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30638080 owner 258 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30654464 owner 7 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30703616 owner 2 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30720000 owner 10 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30736384 owner 4 gen 9 refs 2 flags 0x7\n BTRFS warning (device dm-2 state EA): unable to release extent buffer 30752768 owner 11 gen 9 refs 2 flags 0x7\n\nI\u0027m using a stripped down version, which seems to trigger the warning\nmore reliably:\n\n _fsstress_pid=\"\"\n workload()\n {\n \tdmesg -C\n \tmkfs.btrfs -f -K $dev \u003e /dev/null\n \techo 1 \u003e /sys/kernel/debug/clear_warn_once\n \tmount $dev $mnt\n \t$fsstress -w -n 1024 -p 4 -d $mnt \u0026\n \t_fsstress_pid=$!\n \tsleep 0\n \t$godown $mnt\n \tpkill --echo -PIPE fsstress \u003e /dev/null\n \twait $_fsstress_pid\n \tunset _fsstress_pid\n \tumount $mnt\n\n \tif dmesg | grep -q \"WARNING\"; then\n \t\tfail\n \tfi\n }\n\n for (( i = 0; i \u003c $runtime; i++ )); do\n \techo \"=== $i/$runtime ===\"\n \tworkload\n done\n\n[CAUSE]\nInside btrfs_write_and_wait_transaction(), we first try to write all\ndirty ebs, then wait for them to finish.\n\nAfter that we call btrfs_extent_io_tree_release() to free all\nextent states from dirty_pages io tree.\n\nHowever if we hit an error from btrfs_write_marked_extent(), then we\nstill call btrfs_extent_io_tree_release() to clear that dirty_pages io\ntree, which may contain dirty records that we haven\u0027t yet submitted.\n\nFurthermore, the later transaction cleanup path will utilize that\ndirty_pages io tree to properly cleanup those dirty ebs, but since it\u0027s\nalready empty, no dirty ebs are properly cleaned up, thus will later\ntrigger the warnings inside invalidate_btree_folios().\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A writable Btrfs filesystem can be driven remotely when exported through kernel network file services such as nfsd or ksmbd, whose COMMIT/FLUSH/write-sync paths call VFS fsync and reach Btrfs transaction commit. This is a reasonable high-impact deployment for Btrfs-backed NAS or server shares.\nAC:L - The attacker can create dirty Btrfs metadata and force commits/syncs through normal file operations; in the highest reasonable scenario, storage/writeback failure can be induced by exhausting thin or shared backing storage. No race or precise memory layout is required.\nPR:N - There is no Btrfs capability check on the vulnerable transaction writeback path, and a remotely writable NFS/SMB export can expose it without local kernel privileges. Choosing the higher-severity case, an accessible writable export/guest-style share requires no privileges on the target host.\nUI:N - Exploitation is driven by attacker-controlled file operations and sync/flush requests. No victim user action is required beyond the system already serving or mounting the Btrfs filesystem.\nS:U - The impact remains within the kernel/filesystem security authority. It does not cross a VM, IOMMU, or sandbox boundary.\nC:N - The bug prematurely drops dirty extent tracking and prevents proper cleanup; it is not a use-after-free, out-of-bounds read, or information disclosure primitive. The investigated impact does not expose kernel or filesystem data to the attacker.\nI:N - The defect does not provide an arbitrary write or controlled data modification primitive. Any failed or late metadata write is part of transaction abort/cleanup behavior rather than attacker-controlled integrity compromise.\nA:H - Leftover dirty extent buffers can later be written back during teardown after workers are stopped, leading to NULL pointer dereferences or kernel warnings/panic conditions. This can crash the kernel or make the filesystem unavailable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:42:25.001Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7107b047e709ad258f7c29a342266a8e3653f370"
},
{
"url": "https://git.kernel.org/stable/c/d915195c2f57794ed8ec4bf131bcead4b5dc29c1"
},
{
"url": "https://git.kernel.org/stable/c/9ebb7eba1237dc198768b9c76506a79f924c82bb"
},
{
"url": "https://git.kernel.org/stable/c/df03d67dc63722845cb9fe59d815d1225b04fd54"
},
{
"url": "https://git.kernel.org/stable/c/4066c55e109475a06d18a1f127c939d551211956"
}
],
"title": "btrfs: only release the dirty pages io tree after successful writes",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53284",
"datePublished": "2026-06-26T19:40:45.444Z",
"dateReserved": "2026-06-09T07:44:35.396Z",
"dateUpdated": "2026-10-21T12:42:25.001Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80980 (GCVE-0-2026-80980)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: stop killed, freed and out_of_sync sharing a byte
The three connection state flags are single-bit bitfields, so they occupy
one byte of struct smc_connection and every store to one is a
read-modify-write of the other two:
u8 killed : 1;
u8 freed : 1;
u8 out_of_sync : 1;
They are not written under a common lock. smc_cdc_msg_validate() sets
out_of_sync from the receive tasklet, while smc_conn_kill() sets killed
from process context under lock_sock(), and the receive path does not defer
to the backlog when the socket is owned -- smc_cdc_msg_recv() takes only
bh_lock_sock().
Give each flag its own byte so a store no longer touches its neighbours.
All readers test them as booleans and are unchanged. struct smc_connection
grows by two bytes.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80980",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:47.866329Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:37.381Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "297e96f38d3e4f1a3b84068950dd5c7a55bbdc7b",
"status": "affected",
"version": "b286a0651e4404ab96cdfdcdad8a839a26b3751e",
"versionType": "git"
},
{
"lessThan": "09a9cbadc05f452405de31012bd2c428b601291a",
"status": "affected",
"version": "b286a0651e4404ab96cdfdcdad8a839a26b3751e",
"versionType": "git"
},
{
"lessThan": "313f79149eb337411c64e2c247234b62ef9a3cb9",
"status": "affected",
"version": "b286a0651e4404ab96cdfdcdad8a839a26b3751e",
"versionType": "git"
},
{
"lessThan": "2cb7a8d64b7e8ccdc69bbe48fe9c4eaa79c33aec",
"status": "affected",
"version": "b286a0651e4404ab96cdfdcdad8a839a26b3751e",
"versionType": "git"
},
{
"lessThan": "db51a8658c11a82432b64999519a269c3aabb447",
"status": "affected",
"version": "b286a0651e4404ab96cdfdcdad8a839a26b3751e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: stop killed, freed and out_of_sync sharing a byte\n\nThe three connection state flags are single-bit bitfields, so they occupy\none byte of struct smc_connection and every store to one is a\nread-modify-write of the other two:\n\n u8 killed : 1;\n u8 freed : 1;\n u8 out_of_sync : 1;\n\nThey are not written under a common lock. smc_cdc_msg_validate() sets\nout_of_sync from the receive tasklet, while smc_conn_kill() sets killed\nfrom process context under lock_sock(), and the receive path does not defer\nto the backlog when the socket is owned -- smc_cdc_msg_recv() takes only\nbh_lock_sock().\n\nGive each flag its own byte so a store no longer touches its neighbours.\nAll readers test them as booleans and are unchanged. struct smc_connection\ngrows by two bytes."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - smc_cdc_msg_validate() runs from the SMC-R CDC receive tasklet on RDMA completions, and teardown is driven by CLC DECLINE (FIRST_CONTACT) or LLC DELETE_LINK_ALL from the same peer. SMC-Rv2 is RoCEv2 over UDP/4791 (IP-routable) with the CLC handshake on plain TCP, so a remote host that can reach an AF_SMC listener hits the path.\nAC:L - The attacker controls both sides of the race: it sends CDC failover_validation messages that store out_of_sync from the receive tasklet (no sock lock) while concurrently forcing smc_conn_kill()/smc_conn_free() via CLC decline, CDC close/abort, or LLC link-delete, and can retry across many connections in the same link group.\nPR:N - SMC has no peer authentication. Completing the CLC handshake to a listening AF_SMC/IPPROTO_SMC socket and sending CDC/CLC/LLC messages requires no credentials, capabilities, or local account, matching other SMC remote bugs.\nUI:N - CDC is processed in a softirq tasklet from the RDMA completion queue and CLC decline is handled in the handshake worker; no local user or application action is required beyond the already-listening SMC server.\nS:U - The corrupted flags and resulting UAF stay inside kernel objects (smc_connection, smc_sock, smc_link_group) in the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - A lost killed/freed/out_of_sync bit from the shared-byte RMW lets CDC continue after unregister or lets smc_conn_free() run twice (duplicate smc_lgr_put), a use-after-free of the socket and link group that can be reallocated to disclose kernel memory.\nI:H - The same UAF/double-free writes through a reused smc_sock (sk_err, sk_data_ready, queue_work on abort_work/close_work) and link-group refcounts, giving heap-spray primitives for arbitrary kernel write and control-flow hijack.\nA:H - Use-after-free and double-free of the connection and link group oops or panic in softirq/workqueue context (refcount underflow, as in related SMC UAFs), and the attacker can trigger it repeatedly without authentication."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:21.045Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/297e96f38d3e4f1a3b84068950dd5c7a55bbdc7b"
},
{
"url": "https://git.kernel.org/stable/c/09a9cbadc05f452405de31012bd2c428b601291a"
},
{
"url": "https://git.kernel.org/stable/c/313f79149eb337411c64e2c247234b62ef9a3cb9"
},
{
"url": "https://git.kernel.org/stable/c/2cb7a8d64b7e8ccdc69bbe48fe9c4eaa79c33aec"
},
{
"url": "https://git.kernel.org/stable/c/db51a8658c11a82432b64999519a269c3aabb447"
}
],
"title": "net/smc: stop killed, freed and out_of_sync sharing a byte",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80980",
"datePublished": "2026-09-11T19:42:40.832Z",
"dateReserved": "2026-08-26T14:34:25.811Z",
"dateUpdated": "2026-10-21T12:47:21.045Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98003 (GCVE-0-2026-98003)
Vulnerability from cvelistv5
Published
2026-09-25 10:23
Modified
2026-10-21 12:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/amd: Do not reallocate GA log buffers on resume
Commit c5e1a1eb9279 ("iommu/amd: Simplify and Consolidate Virtual APIC
(AVIC) Enablement") moved the GA log allocation from iommu_init_pci()
to enable_iommus_vapic(), which is called on every resume.
iommu_init_ga_log() assigns iommu->ga_log and iommu->ga_log_tail
unconditionally. Each resume therefore replaces the boot-time pointers
and leaks both old allocations. The function also uses GFP_KERNEL from a
syscore resume callback, where interrupts are disabled and the non-boot
CPUs are offline.
Return early if both buffers are already allocated. Clear the pointers
in free_ga_log() so a partial allocation failure cannot leave ga_log
dangling.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/amd/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8b95269d7a43b737c2c0e2fa77bf00cc8a3a4434",
"status": "affected",
"version": "c5e1a1eb9279fdb28d47ca2a4493a4c53b7d6a0b",
"versionType": "git"
},
{
"lessThan": "ff85cdc2889e1c885eed218ee5bc0b59e0235b3f",
"status": "affected",
"version": "c5e1a1eb9279fdb28d47ca2a4493a4c53b7d6a0b",
"versionType": "git"
},
{
"lessThan": "94458b80d3b203c1c9e2c98aa7319b7713e006c0",
"status": "affected",
"version": "c5e1a1eb9279fdb28d47ca2a4493a4c53b7d6a0b",
"versionType": "git"
},
{
"lessThan": "b6be275d19cee01f8f1f08a2ff18337103d05d40",
"status": "affected",
"version": "c5e1a1eb9279fdb28d47ca2a4493a4c53b7d6a0b",
"versionType": "git"
},
{
"lessThan": "00a7dd64888d6dd72110b40e2824a088cf7b7386",
"status": "affected",
"version": "c5e1a1eb9279fdb28d47ca2a4493a4c53b7d6a0b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/amd/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/amd: Do not reallocate GA log buffers on resume\n\nCommit c5e1a1eb9279 (\"iommu/amd: Simplify and Consolidate Virtual APIC\n(AVIC) Enablement\") moved the GA log allocation from iommu_init_pci()\nto enable_iommus_vapic(), which is called on every resume.\n\niommu_init_ga_log() assigns iommu-\u003ega_log and iommu-\u003ega_log_tail\nunconditionally. Each resume therefore replaces the boot-time pointers\nand leaks both old allocations. The function also uses GFP_KERNEL from a\nsyscore resume callback, where interrupts are disabled and the non-boot\nCPUs are offline.\n\nReturn early if both buffers are already allocated. Clear the pointers\nin free_ga_log() so a partial allocation failure cannot leave ga_log\ndangling."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:54:02.989Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8b95269d7a43b737c2c0e2fa77bf00cc8a3a4434"
},
{
"url": "https://git.kernel.org/stable/c/ff85cdc2889e1c885eed218ee5bc0b59e0235b3f"
},
{
"url": "https://git.kernel.org/stable/c/94458b80d3b203c1c9e2c98aa7319b7713e006c0"
},
{
"url": "https://git.kernel.org/stable/c/b6be275d19cee01f8f1f08a2ff18337103d05d40"
},
{
"url": "https://git.kernel.org/stable/c/00a7dd64888d6dd72110b40e2824a088cf7b7386"
}
],
"title": "iommu/amd: Do not reallocate GA log buffers on resume",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98003",
"datePublished": "2026-09-25T10:23:30.522Z",
"dateReserved": "2026-09-25T10:19:56.068Z",
"dateUpdated": "2026-10-21T12:54:02.989Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64589 (GCVE-0-2026-64589)
Vulnerability from cvelistv5
Published
2026-08-06 07:13
Modified
2026-08-17 04:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
i2c: core: fix NULL-deref on adapter registration failure
If adapter registration ever fails the release callback would trigger a
NULL-pointer dereference as the completion struct has not been
initialised.
Note that before the offending commit this would instead have resulted
in a minor memory leak of the adapter name.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2ce0a74bfa3acdfcdb00cf02f181f2754b451f42",
"status": "affected",
"version": "e19f31169f85c712c9fca35bfd28ceb093a9f574",
"versionType": "git"
},
{
"lessThan": "3351c5e77749a0c8a1e252b95420c143ebcf07ac",
"status": "affected",
"version": "3f8c4f5e9a57868fa107016c81165686d23325f2",
"versionType": "git"
},
{
"lessThan": "034e307428119b67f5f18a35e4f4e7d15a2b9774",
"status": "affected",
"version": "3f8c4f5e9a57868fa107016c81165686d23325f2",
"versionType": "git"
},
{
"lessThan": "2295d2bb101faa663fbc45fadbb3fec45f107441",
"status": "affected",
"version": "3f8c4f5e9a57868fa107016c81165686d23325f2",
"versionType": "git"
},
{
"lessThan": "6.12.96",
"status": "affected",
"version": "6.12.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.12.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: core: fix NULL-deref on adapter registration failure\n\nIf adapter registration ever fails the release callback would trigger a\nNULL-pointer dereference as the completion struct has not been\ninitialised.\n\nNote that before the offending commit this would instead have resulted\nin a minor memory leak of the adapter name."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:10.524Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2ce0a74bfa3acdfcdb00cf02f181f2754b451f42"
},
{
"url": "https://git.kernel.org/stable/c/3351c5e77749a0c8a1e252b95420c143ebcf07ac"
},
{
"url": "https://git.kernel.org/stable/c/034e307428119b67f5f18a35e4f4e7d15a2b9774"
},
{
"url": "https://git.kernel.org/stable/c/2295d2bb101faa663fbc45fadbb3fec45f107441"
}
],
"title": "i2c: core: fix NULL-deref on adapter registration failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64589",
"datePublished": "2026-08-06T07:13:47.291Z",
"dateReserved": "2026-07-19T15:36:31.798Z",
"dateUpdated": "2026-08-17T04:58:10.524Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64474 (GCVE-0-2026-64474)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-08-17 04:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc
vfio_mig_get_next_state() walks vfio_from_fsm_table[] one step at a time,
looping to skip optional states the device does not support until
*next_fsm is supported. A blocked transition is encoded as
VFIO_DEVICE_STATE_ERROR, which the trailing return reports as -EINVAL.
The skip loop does not account for the ERROR sentinel.
state_flags_table[ERROR] is ~0U and vfio_from_fsm_table[ERROR][*] is
ERROR, so once *next_fsm becomes ERROR the loop condition stays true and
*next_fsm never changes. The blocked arcs STOP_COPY -> PRE_COPY and
STOP_COPY -> PRE_COPY_P2P map to ERROR yet pass the support check on a
precopy-capable device, causing the loop to spin forever while holding
the driver state mutex. This can result in a soft lockup, and a panic
with softlockup_panic set.
Terminate the skip loop on the ERROR sentinel so a blocked transition
falls through to the existing return and reports -EINVAL.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/vfio_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8e872c07e40d51a66dee7b280a23a460a2e1e3fa",
"status": "affected",
"version": "4db52602a6074e9cc523500b8304600ff63e7b85",
"versionType": "git"
},
{
"lessThan": "ed7d5599e6c398da74845767cd1e6a8370a160fc",
"status": "affected",
"version": "4db52602a6074e9cc523500b8304600ff63e7b85",
"versionType": "git"
},
{
"lessThan": "7f2d6b31089e48db4653df832c9a6afdde9a1c29",
"status": "affected",
"version": "4db52602a6074e9cc523500b8304600ff63e7b85",
"versionType": "git"
},
{
"lessThan": "a3a8afa2f6e7f0dc266d08f02be3f3054241ba47",
"status": "affected",
"version": "4db52602a6074e9cc523500b8304600ff63e7b85",
"versionType": "git"
},
{
"lessThan": "a26b499b757cfc8bbff1088bb1b844639e250893",
"status": "affected",
"version": "4db52602a6074e9cc523500b8304600ff63e7b85",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/vfio_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.2"
},
{
"lessThan": "6.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc\n\nvfio_mig_get_next_state() walks vfio_from_fsm_table[] one step at a time,\nlooping to skip optional states the device does not support until\n*next_fsm is supported. A blocked transition is encoded as\nVFIO_DEVICE_STATE_ERROR, which the trailing return reports as -EINVAL.\n\nThe skip loop does not account for the ERROR sentinel.\nstate_flags_table[ERROR] is ~0U and vfio_from_fsm_table[ERROR][*] is\nERROR, so once *next_fsm becomes ERROR the loop condition stays true and\n*next_fsm never changes. The blocked arcs STOP_COPY -\u003e PRE_COPY and\nSTOP_COPY -\u003e PRE_COPY_P2P map to ERROR yet pass the support check on a\nprecopy-capable device, causing the loop to spin forever while holding\nthe driver state mutex. This can result in a soft lockup, and a panic\nwith softlockup_panic set.\n\nTerminate the skip loop on the ERROR sentinel so a blocked transition\nfalls through to the existing return and reports -EINVAL."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:20.392Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8e872c07e40d51a66dee7b280a23a460a2e1e3fa"
},
{
"url": "https://git.kernel.org/stable/c/ed7d5599e6c398da74845767cd1e6a8370a160fc"
},
{
"url": "https://git.kernel.org/stable/c/7f2d6b31089e48db4653df832c9a6afdde9a1c29"
},
{
"url": "https://git.kernel.org/stable/c/a3a8afa2f6e7f0dc266d08f02be3f3054241ba47"
},
{
"url": "https://git.kernel.org/stable/c/a26b499b757cfc8bbff1088bb1b844639e250893"
}
],
"title": "vfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64474",
"datePublished": "2026-07-25T08:51:37.405Z",
"dateReserved": "2026-07-19T15:36:31.790Z",
"dateUpdated": "2026-08-17T04:56:20.392Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90415 (GCVE-0-2026-90415)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/cxgb4: free STAG index when TPT entry write fails
write_tpt_entry() allocates a new STAG index with c4iw_get_resource() and
bumps stats.stag.cur before programming the entry. When
write_adapter_mem() fails, it returns the error without releasing the index
or reversing the statistic. No MR is inserted into rhp->mrs, so
deregistration never reclaims it, leaking the index until device teardown.
Record whether this call allocated the index and, on a failed write, return
it to tpt_table and decrement stats.stag.cur. Key the rollback on both the
write error and that flag, not the error alone: a non-reset update carries
a caller-owned STAG that this call did not allocate and must not free.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c Version: ec3eead217181d7360a11317a888ceb30807867c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5fe4731bfbd8d83c4a14b4af3a27329969ce8a99",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "8f6976d635d190e3d7af7103daaa581cf1ccc12e",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "9eeafcda1d6c11f0eec532243c4e96ec8c632bd7",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "5a21e5114cec4cd3f8a2843d4c46bc49634d6e96",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "2f17ca7ab5269ac2504e1039c3921373dccd7712",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "a2e37d1ab773be3cd26b1c19593ca2dbcece9c57",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "a64e2beb450179a5d43034af8d5476a11eac1486",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
},
{
"lessThan": "fdfb5cea4bf070cdb31d997efd87bb684df041fd",
"status": "affected",
"version": "ec3eead217181d7360a11317a888ceb30807867c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/cxgb4/mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.5"
},
{
"lessThan": "3.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/cxgb4: free STAG index when TPT entry write fails\n\nwrite_tpt_entry() allocates a new STAG index with c4iw_get_resource() and\nbumps stats.stag.cur before programming the entry. When\nwrite_adapter_mem() fails, it returns the error without releasing the index\nor reversing the statistic. No MR is inserted into rhp-\u003emrs, so\nderegistration never reclaims it, leaking the index until device teardown.\n\nRecord whether this call allocated the index and, on a failed write, return\nit to tpt_table and decrement stats.stag.cur. Key the rollback on both the\nwrite error and that flag, not the error alone: a non-reset update carries\na caller-owned STAG that this call did not allocate and must not free."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:19.452Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5fe4731bfbd8d83c4a14b4af3a27329969ce8a99"
},
{
"url": "https://git.kernel.org/stable/c/8f6976d635d190e3d7af7103daaa581cf1ccc12e"
},
{
"url": "https://git.kernel.org/stable/c/9eeafcda1d6c11f0eec532243c4e96ec8c632bd7"
},
{
"url": "https://git.kernel.org/stable/c/5a21e5114cec4cd3f8a2843d4c46bc49634d6e96"
},
{
"url": "https://git.kernel.org/stable/c/2f17ca7ab5269ac2504e1039c3921373dccd7712"
},
{
"url": "https://git.kernel.org/stable/c/a2e37d1ab773be3cd26b1c19593ca2dbcece9c57"
},
{
"url": "https://git.kernel.org/stable/c/a64e2beb450179a5d43034af8d5476a11eac1486"
},
{
"url": "https://git.kernel.org/stable/c/fdfb5cea4bf070cdb31d997efd87bb684df041fd"
}
],
"title": "RDMA/cxgb4: free STAG index when TPT entry write fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90415",
"datePublished": "2026-09-17T16:09:40.714Z",
"dateReserved": "2026-09-11T19:38:34.813Z",
"dateUpdated": "2026-10-19T09:03:19.452Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46304 (GCVE-0-2026-46304)
Vulnerability from cvelistv5
Published
2026-06-08 15:46
Modified
2026-10-19 19:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free
nvmet_tcp_release_queue_work() runs on nvmet-wq and can drop the
final controller reference through nvmet_cq_put(). If that triggers
nvmet_ctrl_free(), the teardown path flushes ctrl->async_event_work on
the same nvmet-wq.
Call chain:
nvmet_tcp_schedule_release_queue()
kref_put(&queue->kref, nvmet_tcp_release_queue)
nvmet_tcp_release_queue()
queue_work(nvmet_wq, &queue->release_work) <--- nvmet_wq
process_one_work()
nvmet_tcp_release_queue_work()
nvmet_cq_put(&queue->nvme_cq)
nvmet_cq_destroy()
nvmet_ctrl_put(cq->ctrl)
nvmet_ctrl_free()
flush_work(&ctrl->async_event_work) <--- nvmet_wq
Previously Scheduled by :-
nvmet_add_async_event
queue_work(nvmet_wq, &ctrl->async_event_work);
This trips lockdep with a possible recursive locking warning.
[ 5223.015876] run blktests nvme/003 at 2026-04-07 20:53:55
[ 5223.061801] loop0: detected capacity change from 0 to 2097152
[ 5223.072206] nvmet: adding nsid 1 to subsystem blktests-subsystem-1
[ 5223.088368] nvmet_tcp: enabling port 0 (127.0.0.1:4420)
[ 5223.126086] nvmet: Created discovery controller 1 for subsystem nqn.2014-08.org.nvmexpress.discovery for NQN nqn.2014-08.org.nvmexpress:uuid:0f01fb42-9f7f-4856-b0b3-51e60b8de349.
[ 5223.128453] nvme nvme1: new ctrl: NQN "nqn.2014-08.org.nvmexpress.discovery", addr 127.0.0.1:4420, hostnqn: nqn.2014-08.org.nvmexpress:uuid:0f01fb42-9f7f-4856-b0b3-51e60b8de349
[ 5233.199447] nvme nvme1: Removing ctrl: NQN "nqn.2014-08.org.nvmexpress.discovery"
[ 5233.227718] ============================================
[ 5233.231283] WARNING: possible recursive locking detected
[ 5233.234696] 7.0.0-rc3nvme+ #20 Tainted: G O N
[ 5233.238434] --------------------------------------------
[ 5233.241852] kworker/u192:6/2413 is trying to acquire lock:
[ 5233.245429] ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x26/0x90
[ 5233.251438]
but task is already holding lock:
[ 5233.255254] ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x5cc/0x6e0
[ 5233.261125]
other info that might help us debug this:
[ 5233.265333] Possible unsafe locking scenario:
[ 5233.269217] CPU0
[ 5233.270795] ----
[ 5233.272436] lock((wq_completion)nvmet-wq);
[ 5233.275241] lock((wq_completion)nvmet-wq);
[ 5233.278020]
*** DEADLOCK ***
[ 5233.281793] May be due to missing lock nesting notation
[ 5233.286195] 3 locks held by kworker/u192:6/2413:
[ 5233.289192] #0: ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x5cc/0x6e0
[ 5233.294569] #1: ffffc9000e2a7e40 ((work_completion)(&queue->release_work)){+.+.}-{0:0}, at: process_one_work+0x1c5/0x6e0
[ 5233.300128] #2: ffffffff82d7dc40 (rcu_read_lock){....}-{1:3}, at: __flush_work+0x62/0x530
[ 5233.304290]
stack backtrace:
[ 5233.306520] CPU: 4 UID: 0 PID: 2413 Comm: kworker/u192:6 Tainted: G O N 7.0.0-rc3nvme+ #20 PREEMPT(full)
[ 5233.306524] Tainted: [O]=OOT_MODULE, [N]=TEST
[ 5233.306525] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
[ 5233.306527] Workqueue: nvmet-wq nvmet_tcp_release_queue_work [nvmet_tcp]
[ 5233.306532] Call Trace:
[ 5233.306534] <TASK>
[ 5233.306536] dump_stack_lvl+0x73/0xb0
[ 5233.306552] print_deadlock_bug+0x225/0x2f0
[ 5233.306556] __lock_acquire+0x13f0/0x2290
[ 5233.306563] lock_acquire+0xd0/0x300
[ 5233.306565] ? touch_wq_lockdep_map+0x26/0x90
[ 5233.306571] ? __flush_work+0x20b/0x530
[ 5233.306573] ? touch_wq_lockdep_map+0x26/0x90
[ 5233.306577] touch_wq_lockdep_map+0x3b/0x90
[ 5233.306580] ? touch_wq_lockdep_map+0x26/0x90
[ 52
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5 Version: 3976dd677e891c0b2c63d08028d445663539472c Version: 4.9.68 ≤ |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:21:30.487Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-46304",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:21:45.093700Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-667",
"description": "CWE-667 Improper Locking",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T19:36:57.215Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ae5b0cad163833e10b271e9becc05d81dae56e5f",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "8d66ba89480ff098a58d79003a505f383aa4e920",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "a696fbbd5240b4ac9b166f7bd4c550882ff543f1",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "9a4d7222c0955b221e38bb66d10e6bccb672c8a1",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "ee6e20c4bc9eae542a0954a368449532383169d4",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "781f47d641432c26c19625b2cdd7f40825097592",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "551f445a56a11a6457550cddcf39c9ebb8bcacc6",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"lessThan": "aade8abd8b868b6ffa9697aadaea28ec7f65bee6",
"status": "affected",
"version": "06406d81a2d7cfb8abcc4fa6cdfeb8e5897007c5",
"versionType": "git"
},
{
"status": "affected",
"version": "3976dd677e891c0b2c63d08028d445663539472c",
"versionType": "git"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.68",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.140",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.88",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.30",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.140",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.88",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.30",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.7",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.68",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free\n\nnvmet_tcp_release_queue_work() runs on nvmet-wq and can drop the\nfinal controller reference through nvmet_cq_put(). If that triggers\nnvmet_ctrl_free(), the teardown path flushes ctrl-\u003easync_event_work on\nthe same nvmet-wq.\n\nCall chain:\n\n nvmet_tcp_schedule_release_queue()\n kref_put(\u0026queue-\u003ekref, nvmet_tcp_release_queue)\n nvmet_tcp_release_queue()\n queue_work(nvmet_wq, \u0026queue-\u003erelease_work) \u003c--- nvmet_wq\n process_one_work()\n nvmet_tcp_release_queue_work()\n nvmet_cq_put(\u0026queue-\u003envme_cq)\n nvmet_cq_destroy()\n nvmet_ctrl_put(cq-\u003ectrl)\n nvmet_ctrl_free()\n flush_work(\u0026ctrl-\u003easync_event_work) \u003c--- nvmet_wq\n\n Previously Scheduled by :-\n\t\t nvmet_add_async_event\n\t\t queue_work(nvmet_wq, \u0026ctrl-\u003easync_event_work);\n\nThis trips lockdep with a possible recursive locking warning.\n\n[ 5223.015876] run blktests nvme/003 at 2026-04-07 20:53:55\n[ 5223.061801] loop0: detected capacity change from 0 to 2097152\n[ 5223.072206] nvmet: adding nsid 1 to subsystem blktests-subsystem-1\n[ 5223.088368] nvmet_tcp: enabling port 0 (127.0.0.1:4420)\n[ 5223.126086] nvmet: Created discovery controller 1 for subsystem nqn.2014-08.org.nvmexpress.discovery for NQN nqn.2014-08.org.nvmexpress:uuid:0f01fb42-9f7f-4856-b0b3-51e60b8de349.\n[ 5223.128453] nvme nvme1: new ctrl: NQN \"nqn.2014-08.org.nvmexpress.discovery\", addr 127.0.0.1:4420, hostnqn: nqn.2014-08.org.nvmexpress:uuid:0f01fb42-9f7f-4856-b0b3-51e60b8de349\n[ 5233.199447] nvme nvme1: Removing ctrl: NQN \"nqn.2014-08.org.nvmexpress.discovery\"\n\n[ 5233.227718] ============================================\n[ 5233.231283] WARNING: possible recursive locking detected\n[ 5233.234696] 7.0.0-rc3nvme+ #20 Tainted: G O N\n[ 5233.238434] --------------------------------------------\n[ 5233.241852] kworker/u192:6/2413 is trying to acquire lock:\n[ 5233.245429] ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x26/0x90\n[ 5233.251438]\n but task is already holding lock:\n[ 5233.255254] ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x5cc/0x6e0\n[ 5233.261125]\n other info that might help us debug this:\n[ 5233.265333] Possible unsafe locking scenario:\n\n[ 5233.269217] CPU0\n[ 5233.270795] ----\n[ 5233.272436] lock((wq_completion)nvmet-wq);\n[ 5233.275241] lock((wq_completion)nvmet-wq);\n[ 5233.278020]\n *** DEADLOCK ***\n\n[ 5233.281793] May be due to missing lock nesting notation\n\n[ 5233.286195] 3 locks held by kworker/u192:6/2413:\n[ 5233.289192] #0: ffff888111632548 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x5cc/0x6e0\n[ 5233.294569] #1: ffffc9000e2a7e40 ((work_completion)(\u0026queue-\u003erelease_work)){+.+.}-{0:0}, at: process_one_work+0x1c5/0x6e0\n[ 5233.300128] #2: ffffffff82d7dc40 (rcu_read_lock){....}-{1:3}, at: __flush_work+0x62/0x530\n[ 5233.304290]\n stack backtrace:\n[ 5233.306520] CPU: 4 UID: 0 PID: 2413 Comm: kworker/u192:6 Tainted: G O N 7.0.0-rc3nvme+ #20 PREEMPT(full)\n[ 5233.306524] Tainted: [O]=OOT_MODULE, [N]=TEST\n[ 5233.306525] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014\n[ 5233.306527] Workqueue: nvmet-wq nvmet_tcp_release_queue_work [nvmet_tcp]\n[ 5233.306532] Call Trace:\n[ 5233.306534] \u003cTASK\u003e\n[ 5233.306536] dump_stack_lvl+0x73/0xb0\n[ 5233.306552] print_deadlock_bug+0x225/0x2f0\n[ 5233.306556] __lock_acquire+0x13f0/0x2290\n[ 5233.306563] lock_acquire+0xd0/0x300\n[ 5233.306565] ? touch_wq_lockdep_map+0x26/0x90\n[ 5233.306571] ? __flush_work+0x20b/0x530\n[ 5233.306573] ? touch_wq_lockdep_map+0x26/0x90\n[ 5233.306577] touch_wq_lockdep_map+0x3b/0x90\n[ 5233.306580] ? touch_wq_lockdep_map+0x26/0x90\n[ 52\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached through the NVMe-oF TCP target (nvmet-tcp) disconnect/teardown path; remote peers connect over TCP and closing that connection drives `nvmet_tcp_release_queue_work()` on `nvmet-wq`, which can call the vulnerable `flush_work()` in `nvmet_ctrl_free()`.\nAC:L - An attacker fully controls both sides of the race by connecting, issuing an Async Event Request (which queues `async_event_work` on `nvmet-wq`), and then disconnecting to force controller teardown on the same workqueue.\nPR:N - Exploitation requires only network reachability to an exposed nvmet-tcp port; the discovery subsystem accepts any host NQN without Linux credentials, and no CAP_SYS_ADMIN or other local privileges are needed on the target.\nUI:N - The deadlock is triggered entirely through automated NVMe-oF protocol interaction (connect, admin command, disconnect) with no action required from a local user or administrator.\nS:U - Impact is confined to the kernel NVMe target subsystem (workqueue worker hang and nvmet service disruption); it does not cross a VM, container, or IOMMU security boundary.\nC:N - This is a recursive workqueue flush deadlock, not memory corruption; there is no out-of-bounds access, use-after-free, or information disclosure primitive.\nI:N - The flaw causes a worker to block during teardown but does not modify arbitrary kernel or user data and provides no write or code-execution primitive.\nA:H - Calling `flush_work()` on `nvmet-wq` from `nvmet_tcp_release_queue_work()` running on the same workqueue can permanently hang an nvmet worker (lockdep reports \"DEADLOCK\"), denying NVMe target service and stalling further nvmet workqueue processing."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:31:07.655Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ae5b0cad163833e10b271e9becc05d81dae56e5f"
},
{
"url": "https://git.kernel.org/stable/c/8d66ba89480ff098a58d79003a505f383aa4e920"
},
{
"url": "https://git.kernel.org/stable/c/a696fbbd5240b4ac9b166f7bd4c550882ff543f1"
},
{
"url": "https://git.kernel.org/stable/c/9a4d7222c0955b221e38bb66d10e6bccb672c8a1"
},
{
"url": "https://git.kernel.org/stable/c/ee6e20c4bc9eae542a0954a368449532383169d4"
},
{
"url": "https://git.kernel.org/stable/c/781f47d641432c26c19625b2cdd7f40825097592"
},
{
"url": "https://git.kernel.org/stable/c/551f445a56a11a6457550cddcf39c9ebb8bcacc6"
},
{
"url": "https://git.kernel.org/stable/c/aade8abd8b868b6ffa9697aadaea28ec7f65bee6"
}
],
"title": "nvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46304",
"datePublished": "2026-06-08T15:46:31.747Z",
"dateReserved": "2026-05-13T15:03:33.111Z",
"dateUpdated": "2026-10-19T19:36:57.215Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92507 (GCVE-0-2026-92507)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_dealloc_pd_user()
When accessing a PD via the netlink path the only synchronization
mechanism for the said PD is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_dealloc_pd_user(), which is too late, since by that point
vendor-specific resources associated with the PD might already be
freed. This can leave a short window where the PD remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_begin_del() call to the start of
ib_dealloc_pd_user(), ensuring that the PD is removed from restrack
before its internal resources are released. This guarantees that no new
users hold references to a PD that is in the process of destruction.
In addition, this change preserves the intended inverted order
between create and destroy routines: resources are added to
restrack at the end of successful creation, and hence shall be removed
from the restrack first thing during the destruction flow, which keeps
the lifecycle management consistent and predictable.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 91a7c58fce065506fd98954d27694e5d83c96638 Version: 91a7c58fce065506fd98954d27694e5d83c96638 Version: 91a7c58fce065506fd98954d27694e5d83c96638 Version: 91a7c58fce065506fd98954d27694e5d83c96638 Version: 91a7c58fce065506fd98954d27694e5d83c96638 Version: 91a7c58fce065506fd98954d27694e5d83c96638 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "df0e9efe61ca706a07b1c9bf93fcb9032455efc4",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
},
{
"lessThan": "7647363fa02046da681acc3c827d9f301c06e0e7",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
},
{
"lessThan": "d9c0daf9362aad2aeed1d9c5536d108772a8d31c",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
},
{
"lessThan": "66d65f36d39759e9f62dc746dc71d862f20f827f",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
},
{
"lessThan": "c06f2856a1d7e75a5ff247fc05224aa2452e7265",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
},
{
"lessThan": "8b90e701342275f414e36e7421c502237df241ad",
"status": "affected",
"version": "91a7c58fce065506fd98954d27694e5d83c96638",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in ib_dealloc_pd_user()\n\nWhen accessing a PD via the netlink path the only synchronization\nmechanism for the said PD is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nib_dealloc_pd_user(), which is too late, since by that point\nvendor-specific resources associated with the PD might already be\nfreed. This can leave a short window where the PD remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nib_dealloc_pd_user(), ensuring that the PD is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a PD that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The race is between ib_uverbs_dealloc_pd()/uverbs_free_pd() (IB_USER_VERBS_CMD_DEALLOC_PD or UVERBS_METHOD_PD_DESTROY on /dev/infiniband/uverbs*) and nldev_res_get_pd_dumpit()/nldev_res_get_pd_doit() via NETLINK_RDMA RDMA_NLDEV_CMD_RES_PD_GET. Those syscalls supply the destroy and the dump; no remote protocol message carries the malformed state.\nAC:L - The attacker runs both sides: one thread deallocates its PD while another loops RDMA_NLDEV_CMD_RES_PD_GET. res_get_common_dumpit() can rdma_restrack_get() until rdma_restrack_del(), and ops.dealloc_pd() (often a firmware round-trip) sits in that window, so the attacker creates and retries the race.\nPR:L - uverbs_devnode() sets /dev/infiniband/uverbs* to 0666, so an unprivileged process can alloc/dealloc a PD. RDMA_NLDEV_CMD_RES_PD_GET has no RDMA_NL_ADMIN_PERM, and NETLINK_RDMA is created with NL_CFG_F_NONROOT_RECV, so sendmsg to kernel portid 0 does not need CAP_NET_ADMIN.\nUI:N - The attacker opens uverbs, allocates a PD, then concurrently issues IB_USER_VERBS_CMD_DEALLOC_PD and RDMA_NLDEV_CMD_RES_PD_GET; no other user action is required.\nS:U - A successful UAF corrupts memory in ib_core and the RDMA driver on the same host kernel. It does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - ib_dealloc_pd_user() runs dereg_mr(pd-\u003e__internal_mr) and ops.dealloc_pd() before rdma_restrack_del(). fill_res_pd_entry() can still rdma_restrack_get() that PD and read pd, including pd-\u003euobject-\u003econtext. In that window bnxt_re_dealloc_pd() kfree()s fence-\u003emr via bnxt_re_destroy_fence_mr(), so reused driver objects can disclose kernel memory.\nI:H - The same window lets the attacker spray and reuse objects freed inside ops.dealloc_pd() (bnxt_re_destroy_fence_mr() kfree(mr), rxe_cleanup() of the PD pool element) while fill_res_pd_entry() still holds the PD via restrack, which is a kernel write/control-flow hijack primitive.\nA:H - Racing nldev_res_get_pd_dumpit() against ib_dealloc_pd_user() after vendor teardown can oops in fill_res_pd_entry() while it follows pd-\u003euobject-\u003econtext on a PD whose driver state is already gone, crashing the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:13.346Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/df0e9efe61ca706a07b1c9bf93fcb9032455efc4"
},
{
"url": "https://git.kernel.org/stable/c/7647363fa02046da681acc3c827d9f301c06e0e7"
},
{
"url": "https://git.kernel.org/stable/c/d9c0daf9362aad2aeed1d9c5536d108772a8d31c"
},
{
"url": "https://git.kernel.org/stable/c/66d65f36d39759e9f62dc746dc71d862f20f827f"
},
{
"url": "https://git.kernel.org/stable/c/c06f2856a1d7e75a5ff247fc05224aa2452e7265"
},
{
"url": "https://git.kernel.org/stable/c/8b90e701342275f414e36e7421c502237df241ad"
}
],
"title": "RDMA/core: Fix potential use after free in ib_dealloc_pd_user()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92507",
"datePublished": "2026-09-17T16:10:18.748Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-19T09:04:13.346Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89712 (GCVE-0-2026-89712)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock
nfsd4_ssc_expire_umount() walks nn->nfsd_ssc_mount_list with
list_for_each_entry_safe(ni, tmp, ...). For each expired entry it
sets nsui_busy = true, drops nfsd_ssc_lock to run mntput() on the
source vfsmount, then reacquires the lock to list_del + kfree the
entry and continue iterating via the macro's saved tmp pointer.
The nsui_busy flag protects the current ni from concurrent
nfsd4_ssc_setup_dul() finders during the lock-drop window, but it
does not pin tmp. Another nfsd RPC thread that fails its source-
server mount and reaches nfsd4_ssc_cancel_dul() will, during that
same window, take nfsd_ssc_lock, list_del + kfree its own ssc_umount
item, and release the lock. If that item is the saved tmp of the
expire walk, the next iteration dereferences a freed
nfsd4_ssc_umount_item.
Restart the walk from the head after the mntput() unlock window so
no saved next pointer survives the lock-drop. The list is bounded
by the number of active inter-server source mounts (typically small)
and the expire delayed-work runs periodically rather than per-IO,
so the restart is cheap.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a4bc287943f5695209ff36bdc89f17b48d68fae7 Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: f4e44b393389c77958f7c58bf4415032b4cda15b Version: 5.10.220 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2b59029b8f24a99b5d844af2da3950d39d36eeea",
"status": "affected",
"version": "a4bc287943f5695209ff36bdc89f17b48d68fae7",
"versionType": "git"
},
{
"lessThan": "d9e151fea5ed706c1284adacabd869b0be745db2",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "659ee3da073164e1e6e40dfcbc26eeed85845f93",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "60680ae7243b22de3d09be990d8e23bcfc4af837",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "77de363d9a1c8cd35f20482782c612cda085791a",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "4ed8d2317aef21cc2a9e5a55d6b59860b4b151a8",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "7377fa964b8aaf47cb04e5efcc4c82d15e8c2ce9",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "036c1b182f4da65363e79ec0ac276edc6b7296e5",
"status": "affected",
"version": "f4e44b393389c77958f7c58bf4415032b4cda15b",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "5.10.220",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10.220",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock\n\nnfsd4_ssc_expire_umount() walks nn-\u003enfsd_ssc_mount_list with\nlist_for_each_entry_safe(ni, tmp, ...). For each expired entry it\nsets nsui_busy = true, drops nfsd_ssc_lock to run mntput() on the\nsource vfsmount, then reacquires the lock to list_del + kfree the\nentry and continue iterating via the macro\u0027s saved tmp pointer.\n\nThe nsui_busy flag protects the current ni from concurrent\nnfsd4_ssc_setup_dul() finders during the lock-drop window, but it\ndoes not pin tmp. Another nfsd RPC thread that fails its source-\nserver mount and reaches nfsd4_ssc_cancel_dul() will, during that\nsame window, take nfsd_ssc_lock, list_del + kfree its own ssc_umount\nitem, and release the lock. If that item is the saved tmp of the\nexpire walk, the next iteration dereferences a freed\nnfsd4_ssc_umount_item.\n\nRestart the walk from the head after the mntput() unlock window so\nno saved next pointer survives the lock-drop. The list is bounded\nby the number of active inter-server source mounts (typically small)\nand the expire delayed-work runs periodically rather than per-IO,\nso the restart is cheap."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is between nfsd4_ssc_expire_umount() and nfsd4_ssc_cancel_dul(); cancel_dul runs from nfsd4_copy() on NFSv4.2 OP_COPY, reached by a COMPOUND over TCP/2049 to in-kernel nfsd. A remote client populates nfsd_ssc_mount_list and frees the saved iterator with no local access.\nAC:L - The attacker drives both race sides with concurrent async inter-server COPY requests: completed copies leave expired nfsd4_ssc_umount_item entries for the laundromat, while a COPY to another source IP fails vfs_kern_mount() into cancel_dul() during mntput(). An attacker-controlled source NFS server can stall unmount, so the window is attacker-created and retryable.\nPR:N - Under AUTH_SYS (default for typical NFS deployments) the server verifies no secret; EXCHANGE_ID, CREATE_SESSION, and OPEN succeed for any host allowed by the export, so no server-verified privileges are required to issue the COPY compounds that hit setup_dul/cancel_dul.\nUI:N - The attacker\u2019s own NFS client issues the COPY compounds and source-server traffic that create, expire, and cancel ssc_umount items; no administrator or other user action on the victim server is required.\nS:U - The use-after-free is of a kmalloc\u2019d nfsd4_ssc_umount_item in the nfsd host kernel; impact stays within the same kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After cancel_dul() kfree()s the saved tmp, the expire walk continues from a freed nfsd4_ssc_umount_item whose vfsmount, list links, and metadata the attacker can replace via slab reuse, giving a UAF read primitive over kernel heap.\nI:H - The expire path then writes nsui_busy, calls mntput() on attacker-controlled nsui_vfsmount, and runs list_del()/kfree() on poisoned pointers, yielding arbitrary-write and control-flow hijack primitives from the same UAF.\nA:H - Dereferencing the freed list node in nfsd4_ssc_expire_umount() oopses or panics the laundromat worker even without a full exploit, taking down the in-kernel NFS server."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:25.202Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2b59029b8f24a99b5d844af2da3950d39d36eeea"
},
{
"url": "https://git.kernel.org/stable/c/d9e151fea5ed706c1284adacabd869b0be745db2"
},
{
"url": "https://git.kernel.org/stable/c/659ee3da073164e1e6e40dfcbc26eeed85845f93"
},
{
"url": "https://git.kernel.org/stable/c/60680ae7243b22de3d09be990d8e23bcfc4af837"
},
{
"url": "https://git.kernel.org/stable/c/77de363d9a1c8cd35f20482782c612cda085791a"
},
{
"url": "https://git.kernel.org/stable/c/4ed8d2317aef21cc2a9e5a55d6b59860b4b151a8"
},
{
"url": "https://git.kernel.org/stable/c/7377fa964b8aaf47cb04e5efcc4c82d15e8c2ce9"
},
{
"url": "https://git.kernel.org/stable/c/036c1b182f4da65363e79ec0ac276edc6b7296e5"
}
],
"title": "NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89712",
"datePublished": "2026-09-11T19:46:27.018Z",
"dateReserved": "2026-09-11T19:38:34.751Z",
"dateUpdated": "2026-10-19T08:51:25.202Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89685 (GCVE-0-2026-89685)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix clock domain mismatch in clients_still_reclaiming()
clients_still_reclaiming() computes a deadline from nn->boot_time
(CLOCK_REALTIME, ~1.7 billion) but compares it against
ktime_get_boottime_seconds() (CLOCK_BOOTTIME, seconds since boot).
The comparison is always false — it would take ~54 years of uptime
for BOOTTIME to exceed the REALTIME-derived deadline.
This means any client can hold the server in grace indefinitely by
sending CLAIM_PREVIOUS OPEN requests, blocking all non-reclaim
operations for all other clients.
Add boot_time_bt (CLOCK_BOOTTIME) alongside the existing boot_time
and use it for the deadline computation. boot_time (CLOCK_REALTIME)
is preserved for its cl_boot clientid-nonce role.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89685",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:25:59.702339Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:48.681Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/netns.h",
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04c3e4456fe76e8d7c94171009df3165c3262c51",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "e92e80c5b043108029bc729b30d12c37158fb9cb",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "f9cec313efb2fd18d962aad738a4892bce806016",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "9843649196221152b6e5d138a3ce859bdaae1d96",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "09ea3eb9a518565f5bca386e81b993ed8825f5e8",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/netns.h",
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix clock domain mismatch in clients_still_reclaiming()\n\nclients_still_reclaiming() computes a deadline from nn-\u003eboot_time\n(CLOCK_REALTIME, ~1.7 billion) but compares it against\nktime_get_boottime_seconds() (CLOCK_BOOTTIME, seconds since boot).\nThe comparison is always false \u2014 it would take ~54 years of uptime\nfor BOOTTIME to exceed the REALTIME-derived deadline.\n\nThis means any client can hold the server in grace indefinitely by\nsending CLAIM_PREVIOUS OPEN requests, blocking all non-reclaim\noperations for all other clients.\n\nAdd boot_time_bt (CLOCK_BOOTTIME) alongside the existing boot_time\nand use it for the deadline computation. boot_time (CLOCK_REALTIME)\nis preserved for its cl_boot clientid-nonce role."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfsd processes NFSv4 COMPOUND OPEN over TCP (typically port 2049). A remote peer reaches clients_still_reclaiming() by sending CLAIM_PREVIOUS OPEN or reclaim LOCK, which sets NFSD_NET_SOMEBODY_RECLAIMED and prevents grace from ending.\nAC:L - The attacker fully controls the reclaim OPEN/LOCK RPCs that keep NFSD_NET_SOMEBODY_RECLAIMED set; no race or memory layout is required. Grace always starts with nfsd, and the broken REALTIME-vs-BOOTTIME deadline never fires, so the attacker can extend it at will.\nPR:N - Default nfsd exports accept AUTH_SYS/AUTH_NULL with no credentials. An unauthenticated network peer that is or becomes a recorded NFSv4 client can send CLAIM_PREVIOUS OPEN; no server account or capability is required.\nUI:N - Exploitation takes only attacker-sent NFSv4 RPCs after nfsd starts; no victim user action such as mounting or opening a file is required.\nS:U - The impact stays in the same kernel nfsd/lockd grace state. This is a service denial on the NFS server, not a VM, IOMMU, or sandbox boundary crossing.\nC:N - The bug only miscompares grace deadlines and extends the grace period. It does not disclose kernel memory or file contents.\nI:N - No unauthorized modification of kernel or file data occurs. Other clients are blocked from new mutating operations, which is an availability effect rather than an integrity violation.\nA:H - Successful reclaim OPENs hold nfsd in grace indefinitely because the double-lease deadline never expires, so non-reclaim OPEN/REMOVE/RENAME/SETXATTR and lockd grace return NFS4ERR_GRACE and fully deny NFSv4 service to other clients."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:20.051Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04c3e4456fe76e8d7c94171009df3165c3262c51"
},
{
"url": "https://git.kernel.org/stable/c/e92e80c5b043108029bc729b30d12c37158fb9cb"
},
{
"url": "https://git.kernel.org/stable/c/f9cec313efb2fd18d962aad738a4892bce806016"
},
{
"url": "https://git.kernel.org/stable/c/9843649196221152b6e5d138a3ce859bdaae1d96"
},
{
"url": "https://git.kernel.org/stable/c/09ea3eb9a518565f5bca386e81b993ed8825f5e8"
}
],
"title": "nfsd: fix clock domain mismatch in clients_still_reclaiming()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89685",
"datePublished": "2026-09-11T19:46:07.116Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-21T12:48:20.051Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74256 (GCVE-0-2026-74256)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check
start and len are u32, so
u64 last = start + len;
evaluates start + len in 32-bit and wraps before storing it in last.
The bounds check
if (start >= offset + l || last > msg->sg.size)
return -EINVAL;
can then be passed with an out-of-range start/len, after which the pop
loop runs off the end of the scatterlist and sk_msg_shift_left() calls
put_page() on the empty msg->sg.end slot:
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000001: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
RIP: 0010:sk_msg_shift_left net/core/filter.c:2957 [inline]
RIP: 0010:____bpf_msg_pop_data net/core/filter.c:3103 [inline]
RIP: 0010:bpf_msg_pop_data+0x753/0x1a10 net/core/filter.c:2984
Call Trace:
<TASK>
bpf_prog_4cc92c278f4d5d56+0x1b1/0x1e8
bpf_prog_run_pin_on_cpu+0x107/0x320 include/linux/filter.h:746
sk_psock_msg_verdict+0x357/0x7f0 net/core/skmsg.c:934
tcp_bpf_send_verdict net/ipv4/tcp_bpf.c:420 [inline]
tcp_bpf_sendmsg+0x766/0x1ae0 net/ipv4/tcp_bpf.c:583
__sock_sendmsg+0x153/0x1c0 net/socket.c:802
__sys_sendto+0x326/0x430 net/socket.c:2265
__x64_sys_sendto+0xe3/0x100 net/socket.c:2268
do_syscall_64+0x14c/0x480
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
Widen the addition with a (u64) cast so the bound is evaluated in
64-bit and a len near U32_MAX no longer wraps below msg->sg.size.
While here, change pop from int to u32. It counts bytes against the
unsigned scatterlist lengths and can never be negative, so the signed
type only invites sign-confusion in the pop loop.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 Version: 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74256",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:25.562795Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:28.085Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/filter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9ef44ed6fb0c1db01cfcc3de432a33e719713eb5",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "d693c5ed67dabe1ccbf8dcea93075bdc9ffd4ca0",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "ba5cc05dae8fce237d191c7ea96b1107a791e548",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "c05a0ec1cdced622a1a0c7d85679fe02f31033ec",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "17eb9832a10db2f7a80cb429ca2bc5038445a943",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "fe09dd288722f1c749b7506c0b3e7841a7d85027",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "e09f7bd7273928b4089e6b71f8e992f2b356ca1b",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
},
{
"lessThan": "a48802fb2cd2d1e23651989f8ff4d15e9d5dad54",
"status": "affected",
"version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/filter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check\n\nstart and len are u32, so\n\n\tu64 last = start + len;\n\nevaluates start + len in 32-bit and wraps before storing it in last.\nThe bounds check\n\n\tif (start \u003e= offset + l || last \u003e msg-\u003esg.size)\n\t\treturn -EINVAL;\n\ncan then be passed with an out-of-range start/len, after which the pop\nloop runs off the end of the scatterlist and sk_msg_shift_left() calls\nput_page() on the empty msg-\u003esg.end slot:\n\n Oops: general protection fault, probably for non-canonical address\n 0xdffffc0000000001: 0000 [#1] SMP KASAN PTI\n KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]\n RIP: 0010:sk_msg_shift_left net/core/filter.c:2957 [inline]\n RIP: 0010:____bpf_msg_pop_data net/core/filter.c:3103 [inline]\n RIP: 0010:bpf_msg_pop_data+0x753/0x1a10 net/core/filter.c:2984\n Call Trace:\n \u003cTASK\u003e\n bpf_prog_4cc92c278f4d5d56+0x1b1/0x1e8\n bpf_prog_run_pin_on_cpu+0x107/0x320 include/linux/filter.h:746\n sk_psock_msg_verdict+0x357/0x7f0 net/core/skmsg.c:934\n tcp_bpf_send_verdict net/ipv4/tcp_bpf.c:420 [inline]\n tcp_bpf_sendmsg+0x766/0x1ae0 net/ipv4/tcp_bpf.c:583\n __sock_sendmsg+0x153/0x1c0 net/socket.c:802\n __sys_sendto+0x326/0x430 net/socket.c:2265\n __x64_sys_sendto+0xe3/0x100 net/socket.c:2268\n do_syscall_64+0x14c/0x480\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n \u003c/TASK\u003e\n\nWiden the addition with a (u64) cast so the bound is evaluated in\n64-bit and a len near U32_MAX no longer wraps below msg-\u003esg.size.\n\nWhile here, change pop from int to u32. It counts bytes against the\nunsigned scatterlist lengths and can never be negative, so the signed\ntype only invites sign-confusion in the pop loop."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is in the BPF sk_msg helper bpf_msg_pop_data(), reached only from the sockmap egress verdict path via local sendmsg/sendto on a sockmap- or kTLS-attached socket (tcp_bpf_sendmsg/tls_sw_sendmsg \u2192 sk_psock_msg_verdict), matching kernel CNA BPF/sockmap Local guidance.\nAC:L - start and len are ARG_ANYTHING (verifier unbounded); an sk_msg program can pick values whose u32 sum wraps below msg-\u003esg.size (e.g. start=100, len\u2248U32_MAX) and trigger the bad path deterministically with a single sendmsg, with no race or external state.\nPR:N - Triggering corruption requires only sendmsg on a socket already in a sockmap whose SK_MSG program calls bpf_msg_pop_data; on internet-facing kTLS/sockmap L7 proxies an unauthenticated remote client can reach this with no victim credentials, and arg2/arg3 are unconstrained by the verifier.\nUI:N - Exploitation needs only the attacker\u0027s own socket traffic and BPF-driven pop parameters; no independent victim mount, file open, or administrator action is required at trigger time.\nS:U - Out-of-bounds scatterlist manipulation corrupts kernel sk_msg/page state within the same kernel security authority and does not by itself cross VM, IOMMU, or hypervisor boundaries.\nC:H - After the overflowed bound check, sk_msg_shift_left() walks past msg-\u003esg.end, reading invalid scatterlist slots and dereferencing bogus page pointers via put_page(), yielding out-of-bounds kernel memory disclosure convertible to arbitrary read.\nI:H - The same over-run writes msg-\u003esg.data[] entries and copy bitmap state beyond the fixed MAX_MSG_FRAGS ring, corrupting adjacent kernel objects with attacker-influenced scatterlist metadata suitable for control-flow hijack and privilege escalation.\nA:H - The fix commit\u0027s KASAN trace shows a general protection fault/null-ptr-deref in sk_msg_shift_left() during bpf_msg_pop_data(); this reliably oopses the host and can panic even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:05.356Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9ef44ed6fb0c1db01cfcc3de432a33e719713eb5"
},
{
"url": "https://git.kernel.org/stable/c/d693c5ed67dabe1ccbf8dcea93075bdc9ffd4ca0"
},
{
"url": "https://git.kernel.org/stable/c/ba5cc05dae8fce237d191c7ea96b1107a791e548"
},
{
"url": "https://git.kernel.org/stable/c/c05a0ec1cdced622a1a0c7d85679fe02f31033ec"
},
{
"url": "https://git.kernel.org/stable/c/17eb9832a10db2f7a80cb429ca2bc5038445a943"
},
{
"url": "https://git.kernel.org/stable/c/fe09dd288722f1c749b7506c0b3e7841a7d85027"
},
{
"url": "https://git.kernel.org/stable/c/e09f7bd7273928b4089e6b71f8e992f2b356ca1b"
},
{
"url": "https://git.kernel.org/stable/c/a48802fb2cd2d1e23651989f8ff4d15e9d5dad54"
}
],
"title": "bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74256",
"datePublished": "2026-08-15T05:57:34.956Z",
"dateReserved": "2026-08-15T05:44:03.876Z",
"dateUpdated": "2026-10-16T18:55:28.085Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72102 (GCVE-0-2026-72102)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm_early_create: fix freeing used table on dm_resume failure
If dm_resume fails, the kernel attempts to free table with
dm_table_destroy, but the table was already instantiated with
dm_swap_table. This commit skips the call to dm_table_destroy in this
case.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e Version: 6bbc923dfcf57d6b97388819a7393835664c7a8e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72102",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:52:02.070823Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-415",
"description": "CWE-415 Double Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:27.969Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3ba377a47a093cc19647ca7f102acd33a211d472",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "72c3283a2abd60ecef295e02270f22ef1dfccd25",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "d6066145347e14db84c35b445e309f095d0d8125",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "5f6500d44a912d4aed664600966706d76b81d9af",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "92e3c93d60be1f2425738cd66dbadac7d6bc0cd1",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "7d8ed7cb844df21e4d93af11250fb3a5cb861147",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
},
{
"lessThan": "366665416f20527ff7cad548a32d1ddf23195740",
"status": "affected",
"version": "6bbc923dfcf57d6b97388819a7393835664c7a8e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm_early_create: fix freeing used table on dm_resume failure\n\nIf dm_resume fails, the kernel attempts to free table with\ndm_table_destroy, but the table was already instantiated with\ndm_swap_table. This commit skips the call to dm_table_destroy in this\ncase."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is only reachable via the dm-mod.create kernel boot parameter processed in late_initcall dm_init_init() calling dm_early_create(); there is no network, adjacent, ioctl, netlink, or post-boot userspace path into this __init-only device-mapper setup code.\nAC:L - Once dm_swap_table() installs the table, an attacker controlling dm-mod.create can deterministically force dm_resume() to fail (e.g., paired snapshot-origin preresume handover rejection or verity/crypt preresume errors) without races or attacker-uncontrolled memory layout.\nPR:L - dm_early_create() performs no capability or credential checks on its error path; unlike runtime DM_DEV_CREATE ioctls that require CAP_SYS_ADMIN, triggering the post-swap dm_resume failure only needs crafting dm-mod.create table parameters at boot, not real-root dm-ioctl privileges unobtainable via user namespaces.\nUI:N - The vulnerable teardown runs automatically during late_initcall once dm-mod.create is present and dm_resume fails; no victim must open files, mount filesystems, or take any interactive action beyond rebooting with the crafted boot configuration.\nS:U - The use-after-free and double-free corrupt kernel heap memory during device-mapper early boot setup within the kernel trust boundary; it does not cross VM, container, or IOMMU isolation boundaries into another security authority.\nC:H - dm_table_destroy() frees a dm_table still referenced through md-\u003emap after dm_swap_table(), creating a kernel heap use-after-free that can expose freed object contents and adjacent kernel memory to subsequent allocations and readers.\nI:H - UAF on the live dm_table enables heap grooming and corrupts destructor paths invoked during erroneous teardown (dm_table_destroy target dtr hooks, then dm_destroy __unbind), providing memory corruption primitives developable into arbitrary kernel writes or control-flow hijack.\nA:H - Freeing the active table then calling dm_destroy()/__unbind() on the same object causes double-free/use-after-free during boot cleanup, readily producing kernel panics, oopses, or unbootable systems on dm-mod.create rootfs platforms (Android/ChromeOS/embedded)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:16.779Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3ba377a47a093cc19647ca7f102acd33a211d472"
},
{
"url": "https://git.kernel.org/stable/c/72c3283a2abd60ecef295e02270f22ef1dfccd25"
},
{
"url": "https://git.kernel.org/stable/c/d6066145347e14db84c35b445e309f095d0d8125"
},
{
"url": "https://git.kernel.org/stable/c/259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a"
},
{
"url": "https://git.kernel.org/stable/c/5f6500d44a912d4aed664600966706d76b81d9af"
},
{
"url": "https://git.kernel.org/stable/c/92e3c93d60be1f2425738cd66dbadac7d6bc0cd1"
},
{
"url": "https://git.kernel.org/stable/c/7d8ed7cb844df21e4d93af11250fb3a5cb861147"
},
{
"url": "https://git.kernel.org/stable/c/366665416f20527ff7cad548a32d1ddf23195740"
}
],
"title": "dm_early_create: fix freeing used table on dm_resume failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72102",
"datePublished": "2026-08-15T05:52:46.200Z",
"dateReserved": "2026-08-09T03:40:39.905Z",
"dateUpdated": "2026-10-19T21:19:27.969Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74601 (GCVE-0-2026-74601)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Use current_context for safe per-CPU buffer swap
The ring_buffer_swap_cpu() function currently checks the per-CPU
committing counter to determine if a buffer is actively being written to
before performing the swap. However, there exists a race window where
this check can be bypassed:
ring_buffer_lock_reserve
cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a
rb_reserve_next_event
rb_start_commit // inc committing
if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...}
__rb_reserve_next
rb_move_tail
rb_end_commit(cpu_buffer); // dec committing => 0
/* interrupt hits here, successfully swaps! */
local_inc(&cpu_buffer->committing);
ring_buffer_unlock_commit
cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b
rb_commit
rb_end_commit
RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing))
// triggers warning
The committing counter can temporarily drop to 0 during a single write
operation (within rb_move_tail), creating a window where swap can
succeed even though the write is still in progress. This leads to
inconsistent buffer state and triggers the RB_WARN_ON in rb_commit().
Replace the committing counter check with current_context checks, which
are set at the entry of ring_buffer_lock_reserve() and remain valid
throughout the entire write operation, providing a reliable indicator of
buffer busy state during swap.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Version: 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74601",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:56.298970Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:00.447Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "26662bc8fced1d668fa1aa146eda085bfc67bd0b",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "6b524e6b234e45c7f5f90d13b042c6f57f80105c",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "597f279b7b4a06412e3d965e98cc36e181cdbede",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "22709117d9ae95e52673685f98caac7c356a8227",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "ad7e10c7ea89af45ac1bf1814855d45da472703d",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "5b926fb04cb9ef3156dcf88c69a59d3d1a1c4f9f",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "5e6e2a18c20e88167d414f666032792e8bf19b80",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
},
{
"lessThan": "f27bdc43077e4fcb5557dfc315ee8d91e741f483",
"status": "affected",
"version": "4239c38fe0b3847e1e6d962c74b41b08ba0e2990",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.5"
},
{
"lessThan": "4.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Use current_context for safe per-CPU buffer swap\n\nThe ring_buffer_swap_cpu() function currently checks the per-CPU\ncommitting counter to determine if a buffer is actively being written to\nbefore performing the swap. However, there exists a race window where\nthis check can be bypassed:\n\n ring_buffer_lock_reserve\n cpu_buffer = buffer-\u003ebuffers[cpu]; // cpu_buffer_a\n rb_reserve_next_event\n rb_start_commit // inc committing\n if (unlikely(READ_ONCE(cpu_buffer-\u003ebuffer) != buffer)) {...}\n __rb_reserve_next\n rb_move_tail\n rb_end_commit(cpu_buffer); // dec committing =\u003e 0\n /* interrupt hits here, successfully swaps! */\n local_inc(\u0026cpu_buffer-\u003ecommitting);\n\n ring_buffer_unlock_commit\n cpu_buffer = buffer-\u003ebuffers[cpu]; // cpu_buffer_b\n rb_commit\n rb_end_commit\n RB_WARN_ON(cpu_buffer, !local_read(\u0026cpu_buffer-\u003ecommitting))\n // triggers warning\n\nThe committing counter can temporarily drop to 0 during a single write\noperation (within rb_move_tail), creating a window where swap can\nsucceed even though the write is still in progress. This leads to\ninconsistent buffer state and triggers the RB_WARN_ON in rb_commit().\n\nReplace the committing counter check with current_context checks, which\nare set at the entry of ring_buffer_lock_reserve() and remain valid\nthroughout the entire write operation, providing a reliable indicator of\nbuffer busy state during swap."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local tracefs writes to snapshot or latency tracers; ring_buffer_swap_cpu() is only reached from update_max_tr_single() via tracing_snapshot_write or irqsoff/preemptoff tracers, with no network, adjacent, or physical entry path.\nAC:L - The attacker controls both sides of the race by enabling irqsoff/preemptoff tracing or hammering per_cpu/*/snapshot while generating trace events that cross page boundaries, reliably hitting the rb_move_tail window where committing briefly drops to zero.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC with no capable() check; tracefs gid= mounts, Android/Perfetto/ChromeOS tracing groups, and container user+mount namespaces routinely grant unprivileged local write access to snapshot and current_tracer.\nUI:N - The attacker enables tracers and triggers buffer swaps through their own tracefs writes and syscalls; no victim cooperation, unrelated user action, or third-party interaction is required.\nS:U - Impact is corrupted kernel ring-buffer metadata and WARN_ON within the same kernel security domain; this is not a VM escape, IOMMU bypass, or cross-authority sandbox breakout.\nC:H - Swapping per-CPU buffers mid-write leaves ring_buffer_per_cpu page, tail, and commit state inconsistent across buffers; subsequent trace reads or commits can access wrong backing pages, constituting kernel-memory corruption with arbitrary-read potential.\nI:H - Mid-reservation buffer swap causes unlock_commit on the wrong cpu_buffer with mismatched tail/commit page pointers, corrupting ring-buffer page lists and write metadata in ways exploitable for heap corruption and control-flow manipulation.\nA:H - rb_end_commit() hits RB_WARN_ON triggering WARN_ON and disabling recording; corrupted ring-buffer page state from this swap race has caused kernel oops/panic in related ring_buffer_swap_cpu bugs, and panic_on_warn makes the WARN fatal."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:26.170Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/26662bc8fced1d668fa1aa146eda085bfc67bd0b"
},
{
"url": "https://git.kernel.org/stable/c/6b524e6b234e45c7f5f90d13b042c6f57f80105c"
},
{
"url": "https://git.kernel.org/stable/c/597f279b7b4a06412e3d965e98cc36e181cdbede"
},
{
"url": "https://git.kernel.org/stable/c/22709117d9ae95e52673685f98caac7c356a8227"
},
{
"url": "https://git.kernel.org/stable/c/ad7e10c7ea89af45ac1bf1814855d45da472703d"
},
{
"url": "https://git.kernel.org/stable/c/5b926fb04cb9ef3156dcf88c69a59d3d1a1c4f9f"
},
{
"url": "https://git.kernel.org/stable/c/5e6e2a18c20e88167d414f666032792e8bf19b80"
},
{
"url": "https://git.kernel.org/stable/c/f27bdc43077e4fcb5557dfc315ee8d91e741f483"
}
],
"title": "ring-buffer: Use current_context for safe per-CPU buffer swap",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74601",
"datePublished": "2026-08-22T15:31:50.092Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:06:00.447Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-100075 (GCVE-0-2026-100075)
Vulnerability from cvelistv5
Published
2026-09-25 13:06
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters
When srpt_alloc_rw_ctxs() fails partway through a multi-buffer indirect
descriptor, the unwind path destroys RDMA contexts but leaves stale
n_rw_ctx and n_rdma values (and a dangling rw_ctxs pointer). Later
sq_wr_avail accounting in srpt_queue_response() or srpt_write_pending()
can then subtract the wrong number of send queue credits.
Reset the counters and clear rw_ctxs after freeing the heap
allocation before returning an error.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 Version: b99f8e4d7bcd3bfbb3cd965918523299370d0cb2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/srpt/ib_srpt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "af00051dbc9f467d4840ec709680660a3f8990fa",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "717ab4d0614e9446bf8e2de6229464499e4008d6",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "f1f2252da52cdda912da9993f39f58783b01b38f",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "f65f45dfa1e6e2eaa9e11c8b8ce8857799cb189d",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "be1478849e1abb1e12dc12e14cdbf800cc6fa99a",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "af073bd245180393bcb15d33d3990a6bdc32593a",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "bd02d644bd19a2795c018635d273d91e45d2bb95",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
},
{
"lessThan": "b38f98e176050850f41bb6415f3a71400056623e",
"status": "affected",
"version": "b99f8e4d7bcd3bfbb3cd965918523299370d0cb2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/srpt/ib_srpt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters\n\nWhen srpt_alloc_rw_ctxs() fails partway through a multi-buffer indirect\ndescriptor, the unwind path destroys RDMA contexts but leaves stale\nn_rw_ctx and n_rdma values (and a dangling rw_ctxs pointer). Later\nsq_wr_avail accounting in srpt_queue_response() or srpt_write_pending()\ncan then subtract the wrong number of send queue credits.\n\nReset the counters and clear rw_ctxs after freeing the heap\nallocation before returning an error."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The descriptor table that makes srpt_alloc_rw_ctxs() fail partway (idb-\u003edesc_list entries, table_desc.len, data_out/in_desc_cnt) comes in a remote initiator\u0027s SRP_CMD IU. The path is srpt_recv_done-\u003esrpt_handle_new_iu-\u003esrpt_handle_cmd-\u003esrpt_get_desc_tbl, and srpt also accepts logins through its RDMA-CM listener, which runs over routable RoCEv2 (UDP/IP).\nAC:L - The initiator picks the failure point: a small first descriptor followed by one with db-\u003elen=0xFFFFFFFF, whose scatterlist array is too big for sgl_alloc_order() to allocate. target_alloc_sgl() then fails at i\u003e=1 every time, leaving n_rw_ctx\u003e=1 and a dangling rw_ctxs. No race or outside state is needed.\nPR:N - SRP login (srpt_cm_req_recv) has no authentication. It only compares the initiator port ID that the initiator itself claims against the configured ACL, and the malformed SRP_CMD is parsed right after login.\nUI:N - The initiator sends the malformed SRP_CMD over its own channel, and no action by the target\u0027s administrator or any user is needed.\nS:U - The use-after-free and crash happen in the target host\u0027s kernel, which is the same security authority that runs ib_srpt. No VM or IOMMU boundary is crossed.\nC:H - In kernels from v4.7 up to v5.1, srpt_handle_cmd\u0027s release_ioctx path calls srpt_release_cmd(). Because n_rw_ctx is stale, srpt_free_rw_ctxs() reads the kfree\u0027d rw_ctxs array, a use-after-free on a slab object the attacker can reclaim.\nI:H - The same srpt_free_rw_ctxs() pass calls rdma_rw_ctx_destroy() and target_free_sgl() again on ctx-\u003esg lists the unwind loop already freed. That is a double free of the scatterlists and their data pages, a memory-corruption primitive.\nA:H - Each malformed SRP_CMD can be repeated at will and corrupts the heap (UAF plus double free) on older kernels. On newer kernels the busy path reached after this failure crashes the target, so any initiator can repeatedly take down the SRP target host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:07.444Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/af00051dbc9f467d4840ec709680660a3f8990fa"
},
{
"url": "https://git.kernel.org/stable/c/717ab4d0614e9446bf8e2de6229464499e4008d6"
},
{
"url": "https://git.kernel.org/stable/c/f1f2252da52cdda912da9993f39f58783b01b38f"
},
{
"url": "https://git.kernel.org/stable/c/f65f45dfa1e6e2eaa9e11c8b8ce8857799cb189d"
},
{
"url": "https://git.kernel.org/stable/c/be1478849e1abb1e12dc12e14cdbf800cc6fa99a"
},
{
"url": "https://git.kernel.org/stable/c/af073bd245180393bcb15d33d3990a6bdc32593a"
},
{
"url": "https://git.kernel.org/stable/c/bd02d644bd19a2795c018635d273d91e45d2bb95"
},
{
"url": "https://git.kernel.org/stable/c/b38f98e176050850f41bb6415f3a71400056623e"
}
],
"title": "RDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-100075",
"datePublished": "2026-09-25T13:06:47.399Z",
"dateReserved": "2026-09-25T10:25:14.456Z",
"dateUpdated": "2026-10-19T08:43:07.444Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74705 (GCVE-0-2026-74705)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
udp: fix potential use-after-free in tunnel segmentation
__skb_udp_tunnel_segment() gets the UDP header before ensuring the
tunnel header is in the skb head. If the pull reallocates skb->head,
the saved UDP header pointer is no longer valid.
Get the UDP header after the pull to avoid a potential use-after-free.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 Version: dbef491ebe7f3a4fb1b9111878b86a426fd540b7 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74705",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:04.524382Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:10.609Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_offload.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6a733a38b983d8c2e222f13968209010cf44de87",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "19d89b13a43640b2da2f277ee462d919d988cb6f",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "b3df61bb745eb5201eac22679a2839d4ccbf3442",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "1ae134c012e10384cdac420b5cc6e0615cde0b55",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "5161e67c561c4f28a5d9335a6e859b02511de92b",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "64d322c288577793eedd352b96ef75234ed380fe",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "588d4a6795d99d080f74ef0b5f391ea8c453ae5d",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
},
{
"lessThan": "d0f86fb36eb260abd10007b62c9dcc1028e03e61",
"status": "affected",
"version": "dbef491ebe7f3a4fb1b9111878b86a426fd540b7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_offload.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nudp: fix potential use-after-free in tunnel segmentation\n\n__skb_udp_tunnel_segment() gets the UDP header before ensuring the\ntunnel header is in the skb head. If the pull reallocates skb-\u003ehead,\nthe saved UDP header pointer is no longer valid.\n\nGet the UDP header after the pull to avoid a potential use-after-free."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote peers reach __skb_udp_tunnel_segment on egress when GRO-coalesced VXLAN/Geneve/FOU GSO superpackets are forwarded or re-encapsulated through dev_queue_xmit, and malicious virtio-net/cloud tenants can inject VIRTIO_NET_HDR_GSO_UDP_TUNNEL frames the host later segments on physical or overlay NICs.\nAC:L - Triggering is deterministic once a GSO UDP-tunnel skb has tunnel headers beyond skb_headlen so pskb_may_pull reallocates skb-\u003ehead; attackers control that layout via fragmented or GRO-built outer/encap headers and can repeat crafted sends until segmentation dereferences the stale UDP pointer.\nPR:N - No host authentication or credentials are required to send UDP tunnel traffic to listening overlay ports on cloud/DC nodes, and co-resident virtio-net guests or tenant VMs can emit GSO UDP-tunnel frames into the host datapath without CAP_NET_ADMIN on the victim host.\nUI:N - Exploitation needs only crafted encapsulated GSO traffic into an already-running overlay, bridge, IPVS, OVS, or virtio forwarding path; no victim file open, mount, link click, or other interactive action beyond normal network or VM I/O.\nS:C - In cloud/Kubernetes and virtio-net multitenant deployments, remote or guest/tenant senders can corrupt hypervisor kernel heap during host-side UDP-tunnel GSO segmentation on egress, crossing the VM/container-to-host security boundary rather than staying within the attacker\u0027s own namespace.\nC:H - After pskb_may_pull reallocates skb-\u003ehead, the pre-pull udp_hdr pointer is stale yet uh-\u003elen and uh-\u003echeck are read for checksum adjustment, yielding a classic heap use-after-free read primitive that can disclose kernel memory and support further exploitation.\nI:H - UAF on the UDP header allows attacker-influenced heap reuse and corruption of header fields and checksum state during tunnel GSO segmentation, providing a write/control primitive suitable for kernel code execution rather than a benign checksum miscalculation.\nA:H - Dereferencing the freed UDP header during GSO segmentation can immediately oops or panic the kernel, and repeated exploitation attempts against this UAF commonly crash or hang the host even when full control is not achieved."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:48.767Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6a733a38b983d8c2e222f13968209010cf44de87"
},
{
"url": "https://git.kernel.org/stable/c/19d89b13a43640b2da2f277ee462d919d988cb6f"
},
{
"url": "https://git.kernel.org/stable/c/b3df61bb745eb5201eac22679a2839d4ccbf3442"
},
{
"url": "https://git.kernel.org/stable/c/1ae134c012e10384cdac420b5cc6e0615cde0b55"
},
{
"url": "https://git.kernel.org/stable/c/5161e67c561c4f28a5d9335a6e859b02511de92b"
},
{
"url": "https://git.kernel.org/stable/c/64d322c288577793eedd352b96ef75234ed380fe"
},
{
"url": "https://git.kernel.org/stable/c/588d4a6795d99d080f74ef0b5f391ea8c453ae5d"
},
{
"url": "https://git.kernel.org/stable/c/d0f86fb36eb260abd10007b62c9dcc1028e03e61"
}
],
"title": "udp: fix potential use-after-free in tunnel segmentation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74705",
"datePublished": "2026-08-22T15:33:04.110Z",
"dateReserved": "2026-08-15T05:44:03.927Z",
"dateUpdated": "2026-10-16T19:16:10.609Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80947 (GCVE-0-2026-80947)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: rtl8xxxu: fix use-after-free from rx_urb_wq on stop
rtl8xxxu arms rx_urb_wq from the RX completion path:
rtl8xxxu_rx_complete() hands the URB to rtl8xxxu_queue_rx_urb(), which
queues it on rx_urb_pending_list and, once the list grows past
RTL8XXXU_RX_URB_PENDING_WATER, schedules rx_urb_wq. The worker
rtl8xxxu_rx_urb_work() drains rx_urb_pending_list, recovers priv through
container_of, and resubmits each URB through rtl8xxxu_submit_rx_urb(),
which anchors it on rx_anchor and dereferences priv->udev.
rtl8xxxu_stop() cancels the sibling work items (c2hcmd_work, ra_watchdog,
update_beacon_work) but never cancels rx_urb_wq, so a worker armed during
the last burst of RX traffic can run rtl8xxxu_rx_urb_work() after
rtl8xxxu_disconnect() has called ieee80211_free_hw(), which frees priv,
producing a use-after-free. The window opens under active RX traffic
(pending count above the watermark) followed by a disconnect.
There are two teardown races to close:
* rtl8xxxu_queue_rx_urb() decided whether to enqueue under rx_urb_lock
but called schedule_work() after dropping the lock. A completion
that observed shutdown == false and released the lock could then call
schedule_work() after rtl8xxxu_stop() had set shutdown and
cancel_work_sync() had already returned, arming the worker to run
after the teardown. Move schedule_work() under the same !shutdown
branch so the arming decision is atomic with the shutdown check.
* rtl8xxxu_rx_urb_work() anchors every URB it drained back onto
rx_anchor through rtl8xxxu_submit_rx_urb(). A worker still running
when usb_kill_anchored_urbs(&priv->rx_anchor) returned would submit a
URB that escaped the kill. In rtl8xxxu_stop(), call
cancel_work_sync(&priv->rx_urb_wq) before the kill so the worker is
drained first.
After priv->shutdown is set under rx_urb_lock, completions can no longer
queue rx_urb_wq. cancel_work_sync() then drains the last queued or running
worker, and the following usb_kill_anchored_urbs() kills the URBs it may
have submitted.
rtl8xxxu_disconnect() is covered because ieee80211_unregister_hw()
guarantees .stop() runs for a live interface before ieee80211_free_hw()
frees priv. The probe error path needs no cancel: rx_urb_wq is
INIT_WORK()'d there but cannot have been scheduled, since no URB is
submitted before ieee80211_register_hw() succeeds.
This bug was found by static analysis.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/realtek/rtl8xxxu/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "17d5ae58973122eea7625a87cd3d80a8beb23b47",
"status": "affected",
"version": "26f1fad29ad973b0fb26a9ca3dcb2a73dde781aa",
"versionType": "git"
},
{
"lessThan": "800d2b490a9af1e7132a3564c2ad5a81292e5b40",
"status": "affected",
"version": "26f1fad29ad973b0fb26a9ca3dcb2a73dde781aa",
"versionType": "git"
},
{
"lessThan": "620acb1e8037b73a457dc8ef20fc23fc7adcb405",
"status": "affected",
"version": "26f1fad29ad973b0fb26a9ca3dcb2a73dde781aa",
"versionType": "git"
},
{
"lessThan": "972ab8b9c08f3eb3fa535082de2950dd93604dfd",
"status": "affected",
"version": "26f1fad29ad973b0fb26a9ca3dcb2a73dde781aa",
"versionType": "git"
},
{
"lessThan": "6c080026ecc17eecb103f8927c64ea73a74bb818",
"status": "affected",
"version": "26f1fad29ad973b0fb26a9ca3dcb2a73dde781aa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/realtek/rtl8xxxu/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: rtl8xxxu: fix use-after-free from rx_urb_wq on stop\n\nrtl8xxxu arms rx_urb_wq from the RX completion path:\nrtl8xxxu_rx_complete() hands the URB to rtl8xxxu_queue_rx_urb(), which\nqueues it on rx_urb_pending_list and, once the list grows past\nRTL8XXXU_RX_URB_PENDING_WATER, schedules rx_urb_wq. The worker\nrtl8xxxu_rx_urb_work() drains rx_urb_pending_list, recovers priv through\ncontainer_of, and resubmits each URB through rtl8xxxu_submit_rx_urb(),\nwhich anchors it on rx_anchor and dereferences priv-\u003eudev.\n\nrtl8xxxu_stop() cancels the sibling work items (c2hcmd_work, ra_watchdog,\nupdate_beacon_work) but never cancels rx_urb_wq, so a worker armed during\nthe last burst of RX traffic can run rtl8xxxu_rx_urb_work() after\nrtl8xxxu_disconnect() has called ieee80211_free_hw(), which frees priv,\nproducing a use-after-free. The window opens under active RX traffic\n(pending count above the watermark) followed by a disconnect.\n\nThere are two teardown races to close:\n\n * rtl8xxxu_queue_rx_urb() decided whether to enqueue under rx_urb_lock\n but called schedule_work() after dropping the lock. A completion\n that observed shutdown == false and released the lock could then call\n schedule_work() after rtl8xxxu_stop() had set shutdown and\n cancel_work_sync() had already returned, arming the worker to run\n after the teardown. Move schedule_work() under the same !shutdown\n branch so the arming decision is atomic with the shutdown check.\n\n * rtl8xxxu_rx_urb_work() anchors every URB it drained back onto\n rx_anchor through rtl8xxxu_submit_rx_urb(). A worker still running\n when usb_kill_anchored_urbs(\u0026priv-\u003erx_anchor) returned would submit a\n URB that escaped the kill. In rtl8xxxu_stop(), call\n cancel_work_sync(\u0026priv-\u003erx_urb_wq) before the kill so the worker is\n drained first.\n\nAfter priv-\u003eshutdown is set under rx_urb_lock, completions can no longer\nqueue rx_urb_wq. cancel_work_sync() then drains the last queued or running\nworker, and the following usb_kill_anchored_urbs() kills the URBs it may\nhave submitted.\n\nrtl8xxxu_disconnect() is covered because ieee80211_unregister_hw()\nguarantees .stop() runs for a live interface before ieee80211_free_hw()\nfrees priv. The probe error path needs no cancel: rx_urb_wq is\nINIT_WORK()\u0027d there but cannot have been scheduled, since no URB is\nsubmitted before ieee80211_register_hw() succeeds.\n\nThis bug was found by static analysis."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached when rtl8xxxu_stop()/rtl8xxxu_disconnect() runs while rx_urb_wq is armed. An adjacent Wi-Fi peer can complete RX URBs and queue the work, but cannot invoke stop or ieee80211_free_hw(); teardown is a local action (interface down, rfkill, suspend, USB unbind or unplug).\nAC:L - The attacker controls both sides of the race: they generate RX traffic so rx_urb_pending_count exceeds RTL8XXXU_RX_URB_PENDING_WATER (8) and schedule_work(\u0026rx_urb_wq) fires, then they trigger stop/disconnect while the worker is queued or still resubmitting URBs, retrying until the window after ieee80211_free_hw() is hit.\nPR:L - An ordinary local user can trigger teardown via logind-mediated suspend, rfkill, or USB unplug on a shared workstation, and needs no capability to generate the RX traffic that queues rx_urb_wq. CAP_NET_ADMIN to bring the interface down is also available via user namespaces when the wiphy is delegated into that netns.\nUI:N - The attacker generates the RX burst and performs the interface stop or USB disconnect themselves; no separate victim must open a file, mount a filesystem, or otherwise interact.\nS:U - The use-after-free corrupts the rtl8xxxu_priv kernel object and USB URB state inside the host kernel; it does not cross a VM, IOMMU, or sandbox boundary.\nC:H - rtl8xxxu_rx_urb_work() recovers the freed priv via container_of and reads priv-\u003eudev, priv-\u003efops, and pending-list/rx_anchor state. A sprayed replacement slab object therefore yields an arbitrary kernel read primitive.\nI:H - The worker list_splice_init()s the freed pending list, usb_anchor_urb()s onto priv-\u003erx_anchor, and the workqueue core mutates the embedded work_struct inside the freed priv, giving heap-write and control-flow hijack primitives.\nA:H - Executing rtl8xxxu_rx_urb_work() against freed priv oopses or panics on the spinlock, list, or udev dereference, and the attacker can retrigger it on every device stop or USB disconnect."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:17.715Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/17d5ae58973122eea7625a87cd3d80a8beb23b47"
},
{
"url": "https://git.kernel.org/stable/c/800d2b490a9af1e7132a3564c2ad5a81292e5b40"
},
{
"url": "https://git.kernel.org/stable/c/620acb1e8037b73a457dc8ef20fc23fc7adcb405"
},
{
"url": "https://git.kernel.org/stable/c/972ab8b9c08f3eb3fa535082de2950dd93604dfd"
},
{
"url": "https://git.kernel.org/stable/c/6c080026ecc17eecb103f8927c64ea73a74bb818"
}
],
"title": "wifi: rtl8xxxu: fix use-after-free from rx_urb_wq on stop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80947",
"datePublished": "2026-09-11T19:42:18.282Z",
"dateReserved": "2026-08-26T14:34:25.803Z",
"dateUpdated": "2026-10-21T12:47:17.715Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68400 (GCVE-0-2026-68400)
Vulnerability from cvelistv5
Published
2026-08-10 12:04
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
firmware: arm_ffa: Fix Endpoint Memory Access Descriptor offset calculation
Use the descriptor's `ep_mem_offset` to calculate the start of the endpoint
memory access array and to comply with the FF-A spec instead of defaulting
to `sizeof(struct ffa_mem_region)`.
This requires moving `ffa_mem_region_additional_setup()` earlier in the setup
flow.
Also, add sanity checks to ensure the calculated descriptor offsets do not
exceed `max_fragsize`.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/firmware/arm_ffa/driver.c",
"include/linux/arm_ffa.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6e902bea625b710f8bf2f40b4ae4b14fa6a33f13",
"status": "affected",
"version": "113580530ee7dc61e668b641d657920734533b9f",
"versionType": "git"
},
{
"lessThan": "b39b08e6bee812514b449dc874076890e6b871a0",
"status": "affected",
"version": "113580530ee7dc61e668b641d657920734533b9f",
"versionType": "git"
},
{
"lessThan": "8ef18f0ab3c0ec1eac77289f5a542bd96a8a6d66",
"status": "affected",
"version": "113580530ee7dc61e668b641d657920734533b9f",
"versionType": "git"
},
{
"lessThan": "b4d961351aa84fdf0148783fb1f3a1391b8a0adb",
"status": "affected",
"version": "113580530ee7dc61e668b641d657920734533b9f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/firmware/arm_ffa/driver.c",
"include/linux/arm_ffa.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware: arm_ffa: Fix Endpoint Memory Access Descriptor offset calculation\n\nUse the descriptor\u0027s `ep_mem_offset` to calculate the start of the endpoint\nmemory access array and to comply with the FF-A spec instead of defaulting\nto `sizeof(struct ffa_mem_region)`.\nThis requires moving `ffa_mem_region_additional_setup()` earlier in the setup\nflow.\nAlso, add sanity checks to ensure the calculated descriptor offsets do not\nexceed `max_fragsize`."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable FF-A memory-descriptor setup is reached only through local kernel interfaces \u2014 TEE device ioctls (/dev/tee*) driving optee/tstee shared-memory registration and lend paths, or host-side FF-A SMC handling. No network or remote packet input reaches this code.\nAC:L - The out-of-bounds descriptor writes follow deterministically from the endpoint count and offsets used to build the transaction; no race, no memory-layout luck, and no condition outside the attacker\u0027s influence is needed to drive the unvalidated offset arithmetic past max_fragsize.\nPR:L - An unprivileged local process holding a handle to the TEE device node (common on Android/embedded ARM systems, where TEE clients are ordinary user processes) can drive ffa_setup_and_transmit() via shared-memory registration/lend operations; no root or capability check gates that path.\nUI:N - The vulnerable path is entered directly from the attacker\u0027s own ioctl/FF-A operations; no action by another user or administrator is required.\nS:U - The out-of-bounds writes corrupt kernel memory adjacent to the FF-A TX buffer within the same kernel security authority, so impact is scored as Unchanged even though the same offset confusion also feeds the pKVM/secure-world descriptor parsing.\nC:H - Descriptor offsets computed without validation against max_fragsize let structured data be placed and read back outside the intended buffer, and the resulting heap corruption is leverageable into disclosure of adjacent kernel memory, including data later handed to the secure world.\nI:H - This is an out-of-bounds write of attacker-influenced endpoint descriptor fields (receiver, attrs, composite_off, impdef values) plus a memset past the end of the TX buffer, giving heap corruption that can be groomed into a control-flow or data-structure overwrite primitive.\nA:H - Writing endpoint memory access descriptors beyond the RX/TX buffer corrupts unrelated kernel allocations and readily produces an oops or panic, and the mis-parsed descriptor can also drive the memory transaction into an inconsistent state with the secure partition."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:58.807Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6e902bea625b710f8bf2f40b4ae4b14fa6a33f13"
},
{
"url": "https://git.kernel.org/stable/c/b39b08e6bee812514b449dc874076890e6b871a0"
},
{
"url": "https://git.kernel.org/stable/c/8ef18f0ab3c0ec1eac77289f5a542bd96a8a6d66"
},
{
"url": "https://git.kernel.org/stable/c/b4d961351aa84fdf0148783fb1f3a1391b8a0adb"
}
],
"title": "firmware: arm_ffa: Fix Endpoint Memory Access Descriptor offset calculation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68400",
"datePublished": "2026-08-10T12:04:19.952Z",
"dateReserved": "2026-07-30T09:28:09.389Z",
"dateUpdated": "2026-10-21T12:43:58.807Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74359 (GCVE-0-2026-74359)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
configfs_lookup(): don't leave ->s_dentry dangling on failure
Normally ->s_dentry is cleared when dentry it's pointing to becomes
negative (on eviction, realistically). However, that only happens
if dentry gets to be positive in the first place; in case of inode
allocation failure dentry never becomes positive, so ->d_iput()
is not called at all.
We do part of what normally would've been done by configfs_d_iput()
(dropping the reference to configfs_dirent) manually, but we do
not clear ->s_dentry there. Sloppy as it is, it does not matter in
case of configfs_create_{dir,link}() - there configfs_dirent does
not survive dropping the sole reference to it.
However, for configfs_lookup() it *does* survive, with a dangling
pointer to soon to be freed dentry sitting it its ->s_dentry.
Subsequent getdents(2) in that directory will end up dereferencing
that pointer in order to pick the inode number. Use after free...
This is the minimal fix; the right approach is to set the linkage
between dentry and configfs_dirent only after we know that we have
an inode, but that takes more surgery and the bug had been there
since 2006, so...
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d Version: 3d0f89bb169482d26d5aa4e82e763077e7e9bc4d |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74359",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:26.470078Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:35.328Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/configfs/dir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3e83b2203aa59bd279e4f677ec793d49dc9d019e",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "b6e9c82522ddaa3ac0706b295ff4a71975d4f883",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "eee07d769da5ac4e4f7bd0bc17828646a318d499",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "9c747dcee164ead300de90550ad9e4122f0d1bbb",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "c3b073a209a9baa691b744318ac929fecdd8847c",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "57088b06109f3222963c639d8d743f42c2899b13",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
},
{
"lessThan": "10da12d352b7b2bb330a8609fdda9a58bf0e9856",
"status": "affected",
"version": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/configfs/dir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.16"
},
{
"lessThan": "2.6.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs_lookup(): don\u0027t leave -\u003es_dentry dangling on failure\n\nNormally -\u003es_dentry is cleared when dentry it\u0027s pointing to becomes\nnegative (on eviction, realistically). However, that only happens\nif dentry gets to be positive in the first place; in case of inode\nallocation failure dentry never becomes positive, so -\u003ed_iput()\nis not called at all.\n\nWe do part of what normally would\u0027ve been done by configfs_d_iput()\n(dropping the reference to configfs_dirent) manually, but we do\nnot clear -\u003es_dentry there. Sloppy as it is, it does not matter in\ncase of configfs_create_{dir,link}() - there configfs_dirent does\nnot survive dropping the sole reference to it.\n\nHowever, for configfs_lookup() it *does* survive, with a dangling\npointer to soon to be freed dentry sitting it its -\u003es_dentry.\n\nSubsequent getdents(2) in that directory will end up dereferencing\nthat pointer in order to pick the inode number. Use after free...\n\nThis is the minimal fix; the right approach is to set the linkage\nbetween dentry and configfs_dirent only after we know that we have\nan inode, but that takes more surgery and the bug had been there\nsince 2006, so..."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local VFS syscalls (openat/stat on a configfs attribute and getdents on its parent) against /sys/kernel/config; configfs is not exposed through network-facing kernel services such as ksmbd, nfsd, or the TCP/IP stack.\nAC:L - Exploitation is a deterministic error-path bug, not a race: inode allocation failure in configfs_lookup() leaves sd-\u003es_dentry dangling and a follow-up getdents reliably dereferences it; the attacker can force ENOMEM by applying memory pressure they control.\nPR:L - Default configfs modes (0755 directories, 0644 attributes) let any local user read/list kernel-registered subsystem trees (e.g. nvmet, usb_gadget) without init-namespace root; mkdir/write still need admin, but triggering lookup on existing unpinned attributes does not.\nUI:N - No victim interaction is required beyond the attacker issuing their own syscalls on configfs paths; configfs is mounted at boot under /sys/kernel/config and exploitation does not depend on another user mounting or opening files.\nS:U - The use-after-free corrupts kernel heap memory and enables local privilege escalation within the same kernel security domain; it does not cross VM, IOMMU, or sandbox boundaries.\nC:H - configfs_readdir() reads d_inode() through a dangling sd-\u003es_dentry after failed lookup, giving a slab use-after-free read primitive on freed dentry/inode memory that can disclose kernel data or pointers via heap reuse.\nI:H - Reclaimed dentry/inode slabs let an attacker shape freed-object contents and convert the dangling pointer into arbitrary kernel writes and control-flow hijack, consistent with standard UAF exploitation of VFS objects.\nA:H - Dereferencing the freed dentry during getdents causes kernel oops/panic (as described in the fix); the UAF is repeatable and can deny service even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:19.411Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3e83b2203aa59bd279e4f677ec793d49dc9d019e"
},
{
"url": "https://git.kernel.org/stable/c/b6e9c82522ddaa3ac0706b295ff4a71975d4f883"
},
{
"url": "https://git.kernel.org/stable/c/eee07d769da5ac4e4f7bd0bc17828646a318d499"
},
{
"url": "https://git.kernel.org/stable/c/9c747dcee164ead300de90550ad9e4122f0d1bbb"
},
{
"url": "https://git.kernel.org/stable/c/c3b073a209a9baa691b744318ac929fecdd8847c"
},
{
"url": "https://git.kernel.org/stable/c/57088b06109f3222963c639d8d743f42c2899b13"
},
{
"url": "https://git.kernel.org/stable/c/10da12d352b7b2bb330a8609fdda9a58bf0e9856"
}
],
"title": "configfs_lookup(): don\u0027t leave -\u003es_dentry dangling on failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74359",
"datePublished": "2026-08-15T05:58:43.456Z",
"dateReserved": "2026-08-15T05:44:03.887Z",
"dateUpdated": "2026-10-16T18:55:35.328Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93813 (GCVE-0-2026-93813)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: tree-checker: validate INODE_REF's namelen
[BUG]
A crafted btrfs image can trigger the following crash:
BUG: unable to handle page fault for address: ffffd1dc42884000
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
CPU: 9 UID: 0 PID: 1034 Comm: poc Not tainted 7.1.0-rc4-custom+ #383 PREEMPT(full) 46af0a92938a63be7132e0dfd71e62327c51d5c2
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022
RIP: 0010:memcpy+0xc/0x10
Call Trace:
<TASK>
read_extent_buffer+0xe4/0x100 [btrfs 3cf0785dd58fec8c5ff84633b772f17ce1f92a8f]
btrfs_get_name+0x15e/0x1e0 [btrfs 3cf0785dd58fec8c5ff84633b772f17ce1f92a8f]
reconnect_path+0x165/0x390
exportfs_decode_fh_raw+0x337/0x400
? drop_caches_sysctl_handler+0xb0/0xb0
</TASK>
---[ end trace 0000000000000000 ]---
RIP: 0010:memcpy+0xc/0x10
Kernel panic - not syncing: Fatal exception
[CAUSE]
TThe crafted image has the following corrupted INODE_REF item:
item 9 key (258 INODE_REF 257) itemoff 11544 itemsize 4106
index 2 namelen 4096 name: d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
The itemsize matches the namelen, but the namelen is 4096, way larger
than normal name length limit (BTRFS_NAME_LEN, 255).
Meanwhile the memory of the @name is only 255 byte sized, this will cause
out-of-boundary access, and cause the above crash.
[FIX]
Add extra namelen verification for INODE_REF, just like what we have
done in ROOT_REF checks.
Now the crafted image can be rejected gracefully:
BTRFS critical (device dm-2): corrupt leaf: root=5 block=30572544 slot=14 ino=259, invalid inode ref name length, has 4096 expect [1, 255]
BTRFS error (device dm-2): read time tree block corruption detected on logical 30572544 mirror 2
[ Rebase, add a Link: tag, add an simple cause analyze ]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2ede0daf01549cecf4bb0962c46dc47382047523 Version: 2ede0daf01549cecf4bb0962c46dc47382047523 Version: 2ede0daf01549cecf4bb0962c46dc47382047523 Version: 2ede0daf01549cecf4bb0962c46dc47382047523 Version: 2ede0daf01549cecf4bb0962c46dc47382047523 Version: 2ede0daf01549cecf4bb0962c46dc47382047523 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/tree-checker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "60078a3e25c09d9d8fba828b0d81bb33e449a1b2",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
},
{
"lessThan": "509d6a4d889e425f305461d8323a7b39ca6c121c",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
},
{
"lessThan": "4cb41f07685f88ec724a375883bb0c731db8f6eb",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
},
{
"lessThan": "eeddee090b834a7d4b6a8214d2e3739e64c7a338",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
},
{
"lessThan": "8f75c19892263bc0555fba922aefe103e841e86d",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
},
{
"lessThan": "3dc22abc21f5892406c09202fa2627196cc96967",
"status": "affected",
"version": "2ede0daf01549cecf4bb0962c46dc47382047523",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/tree-checker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.37"
},
{
"lessThan": "2.6.37",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.37",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: tree-checker: validate INODE_REF\u0027s namelen\n\n[BUG]\nA crafted btrfs image can trigger the following crash:\n\n BUG: unable to handle page fault for address: ffffd1dc42884000\n #PF: supervisor write access in kernel mode\n #PF: error_code(0x0002) - not-present page\n CPU: 9 UID: 0 PID: 1034 Comm: poc Not tainted 7.1.0-rc4-custom+ #383 PREEMPT(full) 46af0a92938a63be7132e0dfd71e62327c51d5c2\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022\n RIP: 0010:memcpy+0xc/0x10\n Call Trace:\n \u003cTASK\u003e\n read_extent_buffer+0xe4/0x100 [btrfs 3cf0785dd58fec8c5ff84633b772f17ce1f92a8f]\n btrfs_get_name+0x15e/0x1e0 [btrfs 3cf0785dd58fec8c5ff84633b772f17ce1f92a8f]\n reconnect_path+0x165/0x390\n exportfs_decode_fh_raw+0x337/0x400\n ? drop_caches_sysctl_handler+0xb0/0xb0\n \u003c/TASK\u003e\n ---[ end trace 0000000000000000 ]---\n RIP: 0010:memcpy+0xc/0x10\n Kernel panic - not syncing: Fatal exception\n\n[CAUSE]\nTThe crafted image has the following corrupted INODE_REF item:\n\n item 9 key (258 INODE_REF 257) itemoff 11544 itemsize 4106\n \tindex 2 namelen 4096 name: d\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n\nThe itemsize matches the namelen, but the namelen is 4096, way larger\nthan normal name length limit (BTRFS_NAME_LEN, 255).\n\nMeanwhile the memory of the @name is only 255 byte sized, this will cause\nout-of-boundary access, and cause the above crash.\n\n[FIX]\nAdd extra namelen verification for INODE_REF, just like what we have\ndone in ROOT_REF checks.\n\nNow the crafted image can be rejected gracefully:\n\n BTRFS critical (device dm-2): corrupt leaf: root=5 block=30572544 slot=14 ino=259, invalid inode ref name length, has 4096 expect [1, 255]\n BTRFS error (device dm-2): read time tree block corruption detected on logical 30572544 mirror 2\n\n[ Rebase, add a Link: tag, add an simple cause analyze ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - check_inode_ref() failed to cap INODE_REF name_len, so a crafted leaf with name_len 4096 is accepted. Those bytes come from the mounted image, not a protocol field. The overflow is open_by_handle_at() \u2192 do_handle_to_path() \u2192 exportfs_decode_fh_raw() \u2192 reconnect_path() \u2192 btrfs_get_name(); btrfs_fid has only objectid/gen, so an NFS handle does not carry the bad namelen.\nAC:L - The attacker writes an INODE_REF whose name_len exceeds BTRFS_NAME_LEN (255) but fits the item (PoC: 4096/4106), which the old check_inode_ref() allowed. Mounting that image and calling open_by_handle_at() on a directory filehandle for that inode makes reconnect_path() call btrfs_get_name() every time; no race or uninducible device failure is required.\nPR:L - btrfs_fs_type lacks FS_USERNS_MOUNT, so mount_capable() needs init-ns CAP_SYS_ADMIN, but a local user can mount the image via udisks2/polkit. The trigger is open_by_handle_at(): may_decode_fh() admits ns_capable(current_user_ns(), CAP_DAC_READ_SEARCH) with capable_wrt_mount() and O_DIRECTORY, so userns root on that mount is enough.\nUI:N - The attacker authors the INODE_REF, mounts the image (udisks/loop), and calls open_by_handle_at() so reconnect_path() runs btrfs_get_name() on that inode. That is their own action against data they already control; no second user must open a file or confirm a dialog.\nS:U - btrfs_get_name()\u0027s overflow of exportfs_decode_fh_raw()\u0027s nbuf corrupts the host kernel stack only. It does not cross a KVM/Xen guest-host, IOMMU/DMA, or other security-authority boundary.\nC:H - read_extent_buffer() in btrfs_get_name() memcpy\u0027s the attacker-chosen INODE_REF name (PoC namelen 4096) into exportfs_decode_fh_raw()\u0027s nbuf[NAME_MAX+1] (256 bytes). That stack overflow overwrites saved frames and is kernel memory corruption usable for arbitrary disclosure.\nI:H - The same unbounded copy, plus name[name_len]=\u0027\\0\u0027 at offset 4096, is an attacker-controlled out-of-bounds write into kernel stack in exportfs_decode_fh_raw(). Chosen namelen/name bytes enable return-address overwrite and control-flow hijack, not a bounded metadata tweak.\nA:H - The reporter\u0027s PoC faults in memcpy() from read_extent_buffer() called by btrfs_get_name() (supervisor write to an unmapped address) and panics. Any name_len that runs nbuf off the mapped stack oopses the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:45.809Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/60078a3e25c09d9d8fba828b0d81bb33e449a1b2"
},
{
"url": "https://git.kernel.org/stable/c/509d6a4d889e425f305461d8323a7b39ca6c121c"
},
{
"url": "https://git.kernel.org/stable/c/4cb41f07685f88ec724a375883bb0c731db8f6eb"
},
{
"url": "https://git.kernel.org/stable/c/eeddee090b834a7d4b6a8214d2e3739e64c7a338"
},
{
"url": "https://git.kernel.org/stable/c/8f75c19892263bc0555fba922aefe103e841e86d"
},
{
"url": "https://git.kernel.org/stable/c/3dc22abc21f5892406c09202fa2627196cc96967"
}
],
"title": "btrfs: tree-checker: validate INODE_REF\u0027s namelen",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93813",
"datePublished": "2026-09-24T16:02:49.907Z",
"dateReserved": "2026-09-18T17:59:28.790Z",
"dateUpdated": "2026-10-03T10:57:45.809Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90074 (GCVE-0-2026-90074)
Vulnerability from cvelistv5
Published
2026-09-17 16:05
Modified
2026-10-19 08:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: fq_pie: clamp default quantum to avoid signed overflow
fq_pie_init() sets q->quantum = psched_mtu(qdisc_dev(sch)) without
clamping. A device with a huge MTU (e.g. dummy with max_mtu == 0
accepting MTU 2147483634) makes psched_mtu() return 0x80000000, which
overflows the signed flow->deficit to INT_MIN in fq_pie_qdisc_dequeue(),
causing an infinite loop and soft lockup. Emulate fq_pie_policy which
is already bounded to [1, 1 << 20]; clamp the default to [256, 1 << 20].
256 matches fq_codel's floor and is a sane minimum for a DRR quantum.
Conditions to recreate the bug: a device whose MTU (plus
hard_header_len) wraps psched_mtu() into the sign bit (e.g. a dummy
device with max_mtu == 0 accepting MTU 2147483634). Requires
CAP_NET_ADMIN in a user namespace.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a Version: ec97ecf1ebe485a17cd8395a5f35e6b80b57665a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_fq_pie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1f43e4dbc93b7d02761a024d5f895df823c07b72",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "f7942b2693bc24c7d609a03d06f97bee3b0bd96a",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "6f1be05faecef4c0f9a008200209f66ef2e133f7",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "435da3734a8e63d3067016accc977ed1d10aaaa0",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "44dad8fe99b58a7fe2961e9eec6a5f07ace5b51f",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "044fa2498bbc2900f0c48a6ef2fdd5b2bdfc3795",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "bf97fd2163ad1191ef8daa3d4df8372aee19e396",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
},
{
"lessThan": "c86cd7ed0b0e44779a3d1683f03e4353baf4bdc9",
"status": "affected",
"version": "ec97ecf1ebe485a17cd8395a5f35e6b80b57665a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_fq_pie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: fq_pie: clamp default quantum to avoid signed overflow\n\nfq_pie_init() sets q-\u003equantum = psched_mtu(qdisc_dev(sch)) without\nclamping. A device with a huge MTU (e.g. dummy with max_mtu == 0\naccepting MTU 2147483634) makes psched_mtu() return 0x80000000, which\noverflows the signed flow-\u003edeficit to INT_MIN in fq_pie_qdisc_dequeue(),\ncausing an infinite loop and soft lockup. Emulate fq_pie_policy which\nis already bounded to [1, 1 \u003c\u003c 20]; clamp the default to [256, 1 \u003c\u003c 20].\n256 matches fq_codel\u0027s floor and is a sane minimum for a DRR quantum.\n\nConditions to recreate the bug: a device whose MTU (plus\nhard_header_len) wraps psched_mtu() into the sign bit (e.g. a dummy\ndevice with max_mtu == 0 accepting MTU 2147483634). Requires\nCAP_NET_ADMIN in a user namespace."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:57:31.165Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1f43e4dbc93b7d02761a024d5f895df823c07b72"
},
{
"url": "https://git.kernel.org/stable/c/f7942b2693bc24c7d609a03d06f97bee3b0bd96a"
},
{
"url": "https://git.kernel.org/stable/c/6f1be05faecef4c0f9a008200209f66ef2e133f7"
},
{
"url": "https://git.kernel.org/stable/c/435da3734a8e63d3067016accc977ed1d10aaaa0"
},
{
"url": "https://git.kernel.org/stable/c/44dad8fe99b58a7fe2961e9eec6a5f07ace5b51f"
},
{
"url": "https://git.kernel.org/stable/c/044fa2498bbc2900f0c48a6ef2fdd5b2bdfc3795"
},
{
"url": "https://git.kernel.org/stable/c/bf97fd2163ad1191ef8daa3d4df8372aee19e396"
},
{
"url": "https://git.kernel.org/stable/c/c86cd7ed0b0e44779a3d1683f03e4353baf4bdc9"
}
],
"title": "net/sched: fq_pie: clamp default quantum to avoid signed overflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90074",
"datePublished": "2026-09-17T16:05:54.214Z",
"dateReserved": "2026-09-11T19:38:34.785Z",
"dateUpdated": "2026-10-19T08:57:31.165Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98080 (GCVE-0-2026-98080)
Vulnerability from cvelistv5
Published
2026-09-25 10:24
Modified
2026-10-19 09:13
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: do not force reloc root creation during qgroup_account_snapshot()
[BUG]
When running btrfs/252 with quota enabled through MKFS_OPTIONS="-O quota",
it has a high chance to trigger the following kernel warning and flips
the fs RO:
BTRFS info (device dm-2): relocating block group 30408704 flags metadata|dup
------------[ cut here ]------------
WARNING: fs/btrfs/extent-tree.c:879 at lookup_inline_extent_backref+0x74b/0x960 [btrfs], CPU#4: btrfs/2173
CPU: 4 UID: 0 PID: 2173 Comm: btrfs Not tainted 7.2.0-rc6-custom+ #457 PREEMPT(full) 3adc6528fb66f7a55fe1095385818e742f200aab
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022
RIP: 0010:lookup_inline_extent_backref+0x74b/0x960 [btrfs]
Call Trace:
<TASK>
insert_inline_extent_backref+0x7c/0x160 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
__btrfs_inc_extent_ref+0xa9/0x270 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
__btrfs_run_delayed_refs+0x4af/0x11c0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_run_delayed_refs+0x9d/0xf0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
create_pending_snapshot+0x39d/0xf00 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
create_pending_snapshots+0x9b/0xc0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_commit_transaction+0x280/0xeb0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
prepare_to_relocate+0x147/0x200 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
relocate_block_group+0x6b/0x5e0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_relocate_block_group+0x92c/0x2380 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_relocate_chunk+0x3f/0x1a0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_balance+0xa2c/0x19c0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
btrfs_ioctl+0x2839/0x2d30 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]
__x64_sys_ioctl+0x416/0x9a0
do_syscall_64+0xe1/0x790
entry_SYSCALL_64_after_hwframe+0x4b/0x53
</TASK>
---[ end trace 0000000000000000 ]---
BTRFS info (device dm-2): leaf 4593991680 gen 233 total ptrs 175 free space 5953 owner 2
BTRFS info (device dm-2): refs 3 lock_owner 2173 current 2173
item 0 key (166772736 METADATA_ITEM 1) itemoff 16250 itemsize 33
extent refs 1 gen 222 flags 2
ref#0: tree block backref root 266
[ Skip the tree dump ]
item 174 key (263225344 METADATA_ITEM 0) itemoff 10328 itemsize 33
extent refs 1 gen 162 flags 258
ref#0: tree block backref root 267
BTRFS error (device dm-2): extent item not found for insert, bytenr 179847168 num_bytes 16384 parent 4594335744 root_objectid 273 owner 0 offset 0
BTRFS error (device dm-2): failed to run delayed ref for logical 179847168 num_bytes 16384 type 182 action 1 ref_mod 1: -117
[CAUSE]
The above error is showing that there is a tree reference to a metadata
extent that is no longer there.
With "ref_verify" mount option (requires CONFIG_BTRFS_DEBUG), there is
some extra debug output:
BTRFS error (device dm-2): dumping block entry [180961280 16384], num_refs 0, metadata 1, from disk 0
BTRFS error (device dm-2): root entry 256, num_refs 18446744073709551615
BTRFS error (device dm-2): root entry 273, num_refs 18446744073709551615
BTRFS error (device dm-2): Ref action 3, root 273, ref_root 273, parent 0, owner 0, offset 0, num_refs 1
btrfs_force_cow_block+0x129/0x7d0 [btrfs]
btrfs_cow_block+0x10a/0x250 [btrfs]
btrfs_search_slot+0x5eb/0xf40 [btrfs]
btrfs_insert_empty_items+0x3a/0x70 [btrfs]
insert_with_overflow+0x53/0x130 [btrfs]
btrfs_insert_dir_item+0x125/0x290 [btrfs]
btrfs_add_link+0xaa/0x410 [btrfs]
btrfs_rename+0x5ea/0xcd0 [btrfs]
btrfs_rename2+0x28/0x60 [btrfs]
vfs_rename+0x5b2/0xe10
filename_renameat2+0x244/0x430
__x64_sys_rename+0x48/0x70
do_syscall_64+0xe1/0x790
entry_SYSCALL_64_after_hwframe+0x4b/0x53
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 4d31778aa2fa342f5f92ca4025b293a1729161d1 Version: 204bfcda824428b3a298eae8e87875bbd435a3c1 Version: 1f586802bb18892d2a6eb7d31d7fed78946d21a1 Version: 4.14.45 ≤ Version: 4.16.13 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/transaction.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d0284d974be46a0a06068f930c84039d540ae8ed",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "21bd77c132f18dc21c6fcdf417310d1adcf7448b",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "7ce02d52548b672795511c2cac8da6ec79ac8877",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "7caaae233a55e167063f4cfa3385b1a04c8bbecb",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "c4c78768d1a8ceb713693cc5524acbe984c31f3c",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "203cbfb4fba590bd9b08bd36fa6d05b5d28923bf",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "b5d5ab5a715001dd937c920ef8c5688fd4999ba1",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"lessThan": "cacf35832292997018837e484283f95a9301ebf5",
"status": "affected",
"version": "4d31778aa2fa342f5f92ca4025b293a1729161d1",
"versionType": "git"
},
{
"status": "affected",
"version": "204bfcda824428b3a298eae8e87875bbd435a3c1",
"versionType": "git"
},
{
"status": "affected",
"version": "1f586802bb18892d2a6eb7d31d7fed78946d21a1",
"versionType": "git"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.45",
"versionType": "semver"
},
{
"lessThan": "4.17",
"status": "affected",
"version": "4.16.13",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/transaction.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.45",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.16.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: do not force reloc root creation during qgroup_account_snapshot()\n\n[BUG]\nWhen running btrfs/252 with quota enabled through MKFS_OPTIONS=\"-O quota\",\nit has a high chance to trigger the following kernel warning and flips\nthe fs RO:\n\n BTRFS info (device dm-2): relocating block group 30408704 flags metadata|dup\n ------------[ cut here ]------------\n WARNING: fs/btrfs/extent-tree.c:879 at lookup_inline_extent_backref+0x74b/0x960 [btrfs], CPU#4: btrfs/2173\n CPU: 4 UID: 0 PID: 2173 Comm: btrfs Not tainted 7.2.0-rc6-custom+ #457 PREEMPT(full) 3adc6528fb66f7a55fe1095385818e742f200aab\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022\n RIP: 0010:lookup_inline_extent_backref+0x74b/0x960 [btrfs]\n Call Trace:\n \u003cTASK\u003e\n insert_inline_extent_backref+0x7c/0x160 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n __btrfs_inc_extent_ref+0xa9/0x270 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n __btrfs_run_delayed_refs+0x4af/0x11c0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_run_delayed_refs+0x9d/0xf0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n create_pending_snapshot+0x39d/0xf00 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n create_pending_snapshots+0x9b/0xc0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_commit_transaction+0x280/0xeb0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n prepare_to_relocate+0x147/0x200 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n relocate_block_group+0x6b/0x5e0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_relocate_block_group+0x92c/0x2380 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_relocate_chunk+0x3f/0x1a0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_balance+0xa2c/0x19c0 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n btrfs_ioctl+0x2839/0x2d30 [btrfs 32f09462c54d9c922fca74a3e4866f4aa7737b72]\n __x64_sys_ioctl+0x416/0x9a0\n do_syscall_64+0xe1/0x790\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \u003c/TASK\u003e\n ---[ end trace 0000000000000000 ]---\n BTRFS info (device dm-2): leaf 4593991680 gen 233 total ptrs 175 free space 5953 owner 2\n BTRFS info (device dm-2): refs 3 lock_owner 2173 current 2173\n \titem 0 key (166772736 METADATA_ITEM 1) itemoff 16250 itemsize 33\n \t\textent refs 1 gen 222 flags 2\n \t\tref#0: tree block backref root 266\n [ Skip the tree dump ]\n \titem 174 key (263225344 METADATA_ITEM 0) itemoff 10328 itemsize 33\n \t\textent refs 1 gen 162 flags 258\n \t\tref#0: tree block backref root 267\n BTRFS error (device dm-2): extent item not found for insert, bytenr 179847168 num_bytes 16384 parent 4594335744 root_objectid 273 owner 0 offset 0\n BTRFS error (device dm-2): failed to run delayed ref for logical 179847168 num_bytes 16384 type 182 action 1 ref_mod 1: -117\n\n[CAUSE]\nThe above error is showing that there is a tree reference to a metadata\nextent that is no longer there.\n\nWith \"ref_verify\" mount option (requires CONFIG_BTRFS_DEBUG), there is\nsome extra debug output:\n\n BTRFS error (device dm-2): dumping block entry [180961280 16384], num_refs 0, metadata 1, from disk 0\n BTRFS error (device dm-2): root entry 256, num_refs 18446744073709551615\n BTRFS error (device dm-2): root entry 273, num_refs 18446744073709551615\n BTRFS error (device dm-2): Ref action 3, root 273, ref_root 273, parent 0, owner 0, offset 0, num_refs 1\n btrfs_force_cow_block+0x129/0x7d0 [btrfs]\n btrfs_cow_block+0x10a/0x250 [btrfs]\n btrfs_search_slot+0x5eb/0xf40 [btrfs]\n btrfs_insert_empty_items+0x3a/0x70 [btrfs]\n insert_with_overflow+0x53/0x130 [btrfs]\n btrfs_insert_dir_item+0x125/0x290 [btrfs]\n btrfs_add_link+0xaa/0x410 [btrfs]\n btrfs_rename+0x5ea/0xcd0 [btrfs]\n btrfs_rename2+0x28/0x60 [btrfs]\n vfs_rename+0x5b2/0xe10\n filename_renameat2+0x244/0x430\n __x64_sys_rename+0x48/0x70\n do_syscall_64+0xe1/0x790\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:13:29.778Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d0284d974be46a0a06068f930c84039d540ae8ed"
},
{
"url": "https://git.kernel.org/stable/c/21bd77c132f18dc21c6fcdf417310d1adcf7448b"
},
{
"url": "https://git.kernel.org/stable/c/7ce02d52548b672795511c2cac8da6ec79ac8877"
},
{
"url": "https://git.kernel.org/stable/c/7caaae233a55e167063f4cfa3385b1a04c8bbecb"
},
{
"url": "https://git.kernel.org/stable/c/c4c78768d1a8ceb713693cc5524acbe984c31f3c"
},
{
"url": "https://git.kernel.org/stable/c/203cbfb4fba590bd9b08bd36fa6d05b5d28923bf"
},
{
"url": "https://git.kernel.org/stable/c/b5d5ab5a715001dd937c920ef8c5688fd4999ba1"
},
{
"url": "https://git.kernel.org/stable/c/cacf35832292997018837e484283f95a9301ebf5"
}
],
"title": "btrfs: do not force reloc root creation during qgroup_account_snapshot()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98080",
"datePublished": "2026-09-25T10:24:17.491Z",
"dateReserved": "2026-09-25T10:19:56.075Z",
"dateUpdated": "2026-10-19T09:13:29.778Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92512 (GCVE-0-2026-92512)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix use after free in ib_query_qp()
When querying a QP via the netlink flow the only synchronization
mechanism for the said QP is rdma_restrack_get(), meanwhile during the
QP destroy path rdma_restrack_del() is called at the end of the
ib_destroy_qp_user() function which is too late, since by then the
vendor specific resources for said QP would already be destroyed, and
till the rdma_restrack_del() is called this QP can still be accessed,
which could cause the use after free below.
Fix this by moving the rdma_restrack_begin_del() to the start of the
ib_destroy_qp_user(), which in turn waits for all usages of the QP to be
done then removes it from the database to prevent access to it while it
is being destroyed.
RIP: 0010:ib_query_qp+0x15/0x50 [ib_core]
Code: 48 83 05 5d 8e b9 ff 01 eb b5 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 c7 46 40 00 00 00 00 48 c7 46 78 00 00 00 00 <48> 8b 07 48 8b 80 88 01 00 00 48 85 c0 74 1a 48 83 05 54 91 b9 ff
RSP: 0018:ff11000108a8f2f0 EFLAGS: 00010202
RAX: 0000000000000000 RBX: ff11000108a8f370 RCX: ff11000108a8f370
RDX: 0000000000000000 RSI: ff11000108a8f3d8 RDI: 0000000000000000
RBP: ff1100010de5a000 R08: 0000000000000e80 R09: 0000000000000004
R10: ff110001057a604c R11: 0000000000000000 R12: ff11000108a8f370
R13: ff110001090e8000 R14: 0000000000000000 R15: ff110001057a602c
FS: 00007f2ffd8db6c0(0000) GS:ff110008dc90b000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 000000010b9a7004 CR4: 0000000000373eb0
Call Trace:
<TASK>
mlx5_ib_gsi_query_qp+0x21/0x50 [mlx5_ib]
mlx5_ib_query_qp+0x689/0x9d0 [mlx5_ib]
ib_query_qp+0x35/0x50 [ib_core]
fill_res_qp_entry_query.isra.0+0x47/0x280 [ib_core]
? __wake_up+0x40/0x50
? netlink_broadcast_filtered+0x15a/0x550
? kobject_uevent_env+0x562/0x710
? ep_poll_callback+0x242/0x270
? __nla_put+0xc/0x20
? nla_put+0x28/0x40
? nla_put_string+0x2e/0x40 [ib_core]
fill_res_qp_entry+0x138/0x190 [ib_core]
res_get_common_dumpit+0x4a5/0x800 [ib_core]
? fill_res_qp_entry_query.isra.0+0x280/0x280 [ib_core]
nldev_res_get_qp_dumpit+0x1e/0x30 [ib_core]
netlink_dump+0x16f/0x450
__netlink_dump_start+0x1ce/0x2e0
rdma_nl_rcv_msg+0x1d3/0x330 [ib_core]
? nldev_res_get_qp_raw_dumpit+0x30/0x30 [ib_core]
rdma_nl_rcv_skb.constprop.0.isra.0+0x108/0x180 [ib_core]
rdma_nl_rcv+0x12/0x20 [ib_core]
netlink_unicast+0x255/0x380
? __alloc_skb+0xfa/0x1e0
netlink_sendmsg+0x1f3/0x420
__sock_sendmsg+0x38/0x60
____sys_sendmsg+0x1e8/0x230
? copy_msghdr_from_user+0xea/0x170
___sys_sendmsg+0x7c/0xb0
? __futex_wait+0x95/0xf0
? __futex_wake_mark+0x40/0x40
? futex_wait+0x67/0x100
? futex_wake+0xac/0x1b0
__sys_sendmsg+0x5f/0xb0
do_syscall_64+0x55/0xb90
entry_SYSCALL_64_after_hwframe+0x4b/0x53
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 514aee660df493cd673154a6ba6bab745ec47b8c Version: 514aee660df493cd673154a6ba6bab745ec47b8c Version: 514aee660df493cd673154a6ba6bab745ec47b8c Version: 514aee660df493cd673154a6ba6bab745ec47b8c Version: 514aee660df493cd673154a6ba6bab745ec47b8c Version: 514aee660df493cd673154a6ba6bab745ec47b8c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2ef2ea52ae41bd9efa83139e97ae839de7e17156",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
},
{
"lessThan": "a608af8cde3dd38936b356bbdeedea0653a05b3f",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
},
{
"lessThan": "8998829739c31fdbc892078e4449887d902e5dc9",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
},
{
"lessThan": "038cf231b7099ba6202dcc0c1ea01525122df09f",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
},
{
"lessThan": "001383248e5d754bbddb7ae2a8573bc8501c85d8",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
},
{
"lessThan": "709ba0e5311bd034eb4d9c1c00cc4e1109d6dc3e",
"status": "affected",
"version": "514aee660df493cd673154a6ba6bab745ec47b8c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix use after free in ib_query_qp()\n\nWhen querying a QP via the netlink flow the only synchronization\nmechanism for the said QP is rdma_restrack_get(), meanwhile during the\nQP destroy path rdma_restrack_del() is called at the end of the\nib_destroy_qp_user() function which is too late, since by then the\nvendor specific resources for said QP would already be destroyed, and\ntill the rdma_restrack_del() is called this QP can still be accessed,\nwhich could cause the use after free below.\n\nFix this by moving the rdma_restrack_begin_del() to the start of the\nib_destroy_qp_user(), which in turn waits for all usages of the QP to be\ndone then removes it from the database to prevent access to it while it\nis being destroyed.\n\nRIP: 0010:ib_query_qp+0x15/0x50 [ib_core]\nCode: 48 83 05 5d 8e b9 ff 01 eb b5 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 c7 46 40 00 00 00 00 48 c7 46 78 00 00 00 00 \u003c48\u003e 8b 07 48 8b 80 88 01 00 00 48 85 c0 74 1a 48 83 05 54 91 b9 ff\nRSP: 0018:ff11000108a8f2f0 EFLAGS: 00010202\nRAX: 0000000000000000 RBX: ff11000108a8f370 RCX: ff11000108a8f370\nRDX: 0000000000000000 RSI: ff11000108a8f3d8 RDI: 0000000000000000\nRBP: ff1100010de5a000 R08: 0000000000000e80 R09: 0000000000000004\nR10: ff110001057a604c R11: 0000000000000000 R12: ff11000108a8f370\nR13: ff110001090e8000 R14: 0000000000000000 R15: ff110001057a602c\nFS: 00007f2ffd8db6c0(0000) GS:ff110008dc90b000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 0000000000000000 CR3: 000000010b9a7004 CR4: 0000000000373eb0\nCall Trace:\n \u003cTASK\u003e\n mlx5_ib_gsi_query_qp+0x21/0x50 [mlx5_ib]\n mlx5_ib_query_qp+0x689/0x9d0 [mlx5_ib]\n ib_query_qp+0x35/0x50 [ib_core]\n fill_res_qp_entry_query.isra.0+0x47/0x280 [ib_core]\n ? __wake_up+0x40/0x50\n ? netlink_broadcast_filtered+0x15a/0x550\n ? kobject_uevent_env+0x562/0x710\n ? ep_poll_callback+0x242/0x270\n ? __nla_put+0xc/0x20\n ? nla_put+0x28/0x40\n ? nla_put_string+0x2e/0x40 [ib_core]\n fill_res_qp_entry+0x138/0x190 [ib_core]\n res_get_common_dumpit+0x4a5/0x800 [ib_core]\n ? fill_res_qp_entry_query.isra.0+0x280/0x280 [ib_core]\n nldev_res_get_qp_dumpit+0x1e/0x30 [ib_core]\n netlink_dump+0x16f/0x450\n __netlink_dump_start+0x1ce/0x2e0\n rdma_nl_rcv_msg+0x1d3/0x330 [ib_core]\n ? nldev_res_get_qp_raw_dumpit+0x30/0x30 [ib_core]\n rdma_nl_rcv_skb.constprop.0.isra.0+0x108/0x180 [ib_core]\n rdma_nl_rcv+0x12/0x20 [ib_core]\n netlink_unicast+0x255/0x380\n ? __alloc_skb+0xfa/0x1e0\n netlink_sendmsg+0x1f3/0x420\n __sock_sendmsg+0x38/0x60\n ____sys_sendmsg+0x1e8/0x230\n ? copy_msghdr_from_user+0xea/0x170\n ___sys_sendmsg+0x7c/0xb0\n ? __futex_wait+0x95/0xf0\n ? __futex_wake_mark+0x40/0x40\n ? futex_wait+0x67/0x100\n ? futex_wake+0xac/0x1b0\n __sys_sendmsg+0x5f/0xb0\n do_syscall_64+0x55/0xb90\n entry_SYSCALL_64_after_hwframe+0x4b/0x53"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:18.829Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2ef2ea52ae41bd9efa83139e97ae839de7e17156"
},
{
"url": "https://git.kernel.org/stable/c/a608af8cde3dd38936b356bbdeedea0653a05b3f"
},
{
"url": "https://git.kernel.org/stable/c/8998829739c31fdbc892078e4449887d902e5dc9"
},
{
"url": "https://git.kernel.org/stable/c/038cf231b7099ba6202dcc0c1ea01525122df09f"
},
{
"url": "https://git.kernel.org/stable/c/001383248e5d754bbddb7ae2a8573bc8501c85d8"
},
{
"url": "https://git.kernel.org/stable/c/709ba0e5311bd034eb4d9c1c00cc4e1109d6dc3e"
}
],
"title": "RDMA/core: Fix use after free in ib_query_qp()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92512",
"datePublished": "2026-09-17T16:10:22.114Z",
"dateReserved": "2026-09-16T12:21:13.873Z",
"dateUpdated": "2026-10-19T09:04:18.829Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64132 (GCVE-0-2026-64132)
Vulnerability from cvelistv5
Published
2026-07-19 15:40
Modified
2026-08-05 12:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: ioam: refresh hdr pointer before ioam6_event()
Reported by Sashiko:
In ipv6_hop_ioam(), the hdr pointer is initialized to point into the
skb's linear data buffer. Later, the code calls skb_ensure_writable(),
which might reallocate the buffer:
if (skb_ensure_writable(skb, optoff + 2 + hdr->opt_len))
goto drop;
/* Trace pointer may have changed */
trace = (struct ioam6_trace_hdr *)(skb_network_header(skb)
+ optoff + sizeof(*hdr));
ioam6_fill_trace_data(skb, ns, trace, true);
ioam6_event(IOAM6_EVENT_TRACE, dev_net(skb->dev),
GFP_ATOMIC, (void *)trace, hdr->opt_len - 2);
If the skb is cloned or lacks sufficient linear headroom,
skb_ensure_writable() will invoke pskb_expand_head(), which reallocates
the skb's data buffer and frees the old one, invalidating pointers to
it. While the code recalculates the trace pointer immediately after the
call to skb_ensure_writable(), it fails to recalculate the hdr pointer.
This patch fixes the above by recalculating the hdr pointer before
passing hdr->opt_len to ioam6_event(), so that we avoid any UaF.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/exthdrs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "769723124b7c3b2bfea4cf68ad292698b87c8d01",
"status": "affected",
"version": "f655c78d6225f585ef60a9d93ffb79d507ff3ad3",
"versionType": "git"
},
{
"lessThan": "24de676da63c1122d2c13b0d546238b66d1b4e62",
"status": "affected",
"version": "f655c78d6225f585ef60a9d93ffb79d507ff3ad3",
"versionType": "git"
},
{
"lessThan": "5af905aa8e91ff8d94572a1e089558f21dcf24ed",
"status": "affected",
"version": "f655c78d6225f585ef60a9d93ffb79d507ff3ad3",
"versionType": "git"
},
{
"lessThan": "e46e6bc97fb1f339730ff1ba74267fbf48e7a422",
"status": "affected",
"version": "f655c78d6225f585ef60a9d93ffb79d507ff3ad3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/exthdrs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.92",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: ioam: refresh hdr pointer before ioam6_event()\n\nReported by Sashiko:\n\nIn ipv6_hop_ioam(), the hdr pointer is initialized to point into the\nskb\u0027s linear data buffer. Later, the code calls skb_ensure_writable(),\nwhich might reallocate the buffer:\n\n\tif (skb_ensure_writable(skb, optoff + 2 + hdr-\u003eopt_len))\n\t\tgoto drop;\n\n\t/* Trace pointer may have changed */\n\ttrace = (struct ioam6_trace_hdr *)(skb_network_header(skb)\n\t\t\t\t\t + optoff + sizeof(*hdr));\n\n\tioam6_fill_trace_data(skb, ns, trace, true);\n\n\tioam6_event(IOAM6_EVENT_TRACE, dev_net(skb-\u003edev),\n\t\t GFP_ATOMIC, (void *)trace, hdr-\u003eopt_len - 2);\n\nIf the skb is cloned or lacks sufficient linear headroom,\nskb_ensure_writable() will invoke pskb_expand_head(), which reallocates\nthe skb\u0027s data buffer and frees the old one, invalidating pointers to\nit. While the code recalculates the trace pointer immediately after the\ncall to skb_ensure_writable(), it fails to recalculate the hdr pointer.\n\nThis patch fixes the above by recalculating the hdr pointer before\npassing hdr-\u003eopt_len to ioam6_event(), so that we avoid any UaF."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in `ipv6_hop_ioam()`, reached from `ipv6_rcv()` \u2192 `ip6_rcv_core()` \u2192 `ipv6_parse_hopopts()` \u2192 `ip6_parse_tlv()` when processing IPv6 hop-by-hop IOAM options on ingress. A remote attacker can deliver the trigger with a crafted IPv6 packet to any internet-facing or LAN-reachable host/router that has IOAM ingress enabled.\nAC:L - Exploitation requires `skb_ensure_writable()` to reallocate via `pskb_expand_head()`, which occurs when the skb is cloned (e.g., bridge flooding/multicast forwarding sets `skb-\u003ecloned` on the original before local delivery to the IP stack). An attacker can reliably create this condition with concurrent traffic/topology choices rather than depending on uncontrollable timing or memory layout.\nPR:N - The attacker needs no privileges on the victim system\u2014only the ability to send IPv6 packets. IOAM namespace/sysctl configuration is a victim-side deployment prerequisite (typical on carrier/ISP telemetry nodes), not a privilege the attacker must hold.\nUI:N - Exploitation is fully attacker-driven by sending a malicious IPv6 packet and requires no action from a victim user.\nS:U - The vulnerability is a kernel heap use-after-free in IPv6 packet processing; successful exploitation would compromise the kernel/host itself, not cross a separate security authority such as a VM guest-to-host or sandbox boundary.\nC:H - After `pskb_expand_head()` frees the old skb buffer, the stale `hdr` pointer is dereferenced for `hdr-\u003eopt_len`, constituting a use-after-free read of freed kernel memory; that attacker-influenced length is then used in `ioam6_event_put_trace()`/`nla_put()`, enabling out-of-bounds kernel memory reads and information disclosure.\nI:H - Use-after-free of heap metadata enables memory corruption primitives; the corrupted `opt_len` fed into netlink attribute construction can cause out-of-bounds reads whose contents are attacker-influenced, and UAF bugs in skb handling are classically leveragable toward arbitrary kernel write/code execution.\nA:H - Reading freed memory and passing a corrupted length into `nla_put()` can cause kernel oops/panic (especially with KASAN/overflow checks), and UAF conditions inherently risk system crashes even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:39:34.060Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/769723124b7c3b2bfea4cf68ad292698b87c8d01"
},
{
"url": "https://git.kernel.org/stable/c/24de676da63c1122d2c13b0d546238b66d1b4e62"
},
{
"url": "https://git.kernel.org/stable/c/5af905aa8e91ff8d94572a1e089558f21dcf24ed"
},
{
"url": "https://git.kernel.org/stable/c/e46e6bc97fb1f339730ff1ba74267fbf48e7a422"
}
],
"title": "ipv6: ioam: refresh hdr pointer before ioam6_event()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64132",
"datePublished": "2026-07-19T15:40:27.590Z",
"dateReserved": "2026-07-19T07:54:57.036Z",
"dateUpdated": "2026-08-05T12:39:34.060Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72023 (GCVE-0-2026-72023)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
octeontx2-pf: fix SQB pointer leak on init failure
otx2_init_hw_resources() initializes SQ aura and pool resources before
several later setup steps. On failure, err_free_sq_ptrs only frees SQB
pages, leaving the per-SQ sqb_ptrs arrays behind.
Use otx2_free_sq_res() for the SQ unwind path and let it free sqb_ptrs
even when sq->sqe has not been allocated yet.
The bug was first flagged by an experimental analysis tool we are
developing for kernel memory-management bugs while analyzing
v6.13-rc1. The tool is still under development and is not yet publicly
available. Manual inspection confirms that the bug is still
present in v7.1.1.
An x86_64 allyesconfig build showed no new warnings. As we do not have an
OcteonTX2 PF device and the corresponding AF mailbox setup to test with,
no runtime testing was able to be performed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 Version: caa2da34fd25a37e9fd43343b6966fb9d730a6d5 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fca9c22633169a6c5d429a32e439121b6419e2be",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "42c2836f10ac0427dac9e9a923d6ee2189dec544",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "2cac2eac935ed7e0a9203204e036a1f6090ebc3d",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "148d7ec0a3a98839c320e6cdd112e2e88bfb091b",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "5e023fe2569e630ba23b5558ebe4bf4837af4d16",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "5df30f05db96552903680a17f858d250dfd9e86e",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "23d917acd9c9a9fd999688ec3fdde7aa58ab8a14",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
},
{
"lessThan": "62e7df6d042aeebd5efb581074e28865c04477be",
"status": "affected",
"version": "caa2da34fd25a37e9fd43343b6966fb9d730a6d5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-pf: fix SQB pointer leak on init failure\n\notx2_init_hw_resources() initializes SQ aura and pool resources before\nseveral later setup steps. On failure, err_free_sq_ptrs only frees SQB\npages, leaving the per-SQ sqb_ptrs arrays behind.\n\nUse otx2_free_sq_res() for the SQ unwind path and let it free sqb_ptrs\neven when sq-\u003esqe has not been allocated yet.\n\nThe bug was first flagged by an experimental analysis tool we are\ndeveloping for kernel memory-management bugs while analyzing\nv6.13-rc1. The tool is still under development and is not yet publicly\navailable. Manual inspection confirms that the bug is still\npresent in v7.1.1.\n\nAn x86_64 allyesconfig build showed no new warnings. As we do not have an\nOcteonTX2 PF device and the corresponding AF mailbox setup to test with,\nno runtime testing was able to be performed."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:27.683Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fca9c22633169a6c5d429a32e439121b6419e2be"
},
{
"url": "https://git.kernel.org/stable/c/42c2836f10ac0427dac9e9a923d6ee2189dec544"
},
{
"url": "https://git.kernel.org/stable/c/2cac2eac935ed7e0a9203204e036a1f6090ebc3d"
},
{
"url": "https://git.kernel.org/stable/c/148d7ec0a3a98839c320e6cdd112e2e88bfb091b"
},
{
"url": "https://git.kernel.org/stable/c/5e023fe2569e630ba23b5558ebe4bf4837af4d16"
},
{
"url": "https://git.kernel.org/stable/c/5df30f05db96552903680a17f858d250dfd9e86e"
},
{
"url": "https://git.kernel.org/stable/c/23d917acd9c9a9fd999688ec3fdde7aa58ab8a14"
},
{
"url": "https://git.kernel.org/stable/c/62e7df6d042aeebd5efb581074e28865c04477be"
}
],
"title": "octeontx2-pf: fix SQB pointer leak on init failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72023",
"datePublished": "2026-08-15T05:51:48.629Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-08-23T12:46:27.683Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74701 (GCVE-0-2026-74701)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/openvswitch: check Ethernet header length in key_extract()
When a packet arrives on an ARPHRD_NONE device (e.g. TUN),
ovs_flow_key_extract() trusts the user-provided skb->protocol field: if
it is ETH_P_TEB, the packet is classified as MAC_PROTO_ETHERNET and
key_extract() is called without ensuring the skb has ETH_HLEN (14) bytes
of linear data. key_extract() unconditionally pulls 2 * ETH_ALEN bytes
for MAC addresses and parse_ethertype() pulls 2 more, either of which
triggers a kernel BUG in __skb_pull() when the linear area is too small.
kernel BUG at include/linux/skbuff.h:2848!
RIP: 0010:key_extract+0xa7e/0xd90 net/openvswitch/flow.c:933
ovs_flow_key_extract+0x419/0xa70
ovs_vport_receive+0x222/0x390
netdev_frame_hook+0x3e0/0x630
tun_get_user+0x2d0c/0x38e0
Fixed by calling check_header() in key_extract() before accessing the
Ethernet header.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a Version: 217ac77a3c2524d999730b2a80b61fcc2d0f734a |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74701",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:55.662820Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:10.294Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/openvswitch/flow.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e85278afd4890dd190ba3c7a1b1a712b801c9fe1",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "81f9b09f0ea3ba9ab966dd17e9f32625a14555e9",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "831471718f6e19aed1a330b03b53190a90e06466",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "d8bea341b183190ce6c055ab0e64ab78eb9a7290",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "0b60b55652ba772b173dddc63f3851e1d2dd5927",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "a8139285c8925efe59af28a9169bb2fda91bff15",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "9b8cfbb58b85bfa7a78fac47fdc77396cd01f699",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
},
{
"lessThan": "cf6f8b29befb92173659bcef6a441d274947bfae",
"status": "affected",
"version": "217ac77a3c2524d999730b2a80b61fcc2d0f734a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/openvswitch/flow.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/openvswitch: check Ethernet header length in key_extract()\n\nWhen a packet arrives on an ARPHRD_NONE device (e.g. TUN),\novs_flow_key_extract() trusts the user-provided skb-\u003eprotocol field: if\nit is ETH_P_TEB, the packet is classified as MAC_PROTO_ETHERNET and\nkey_extract() is called without ensuring the skb has ETH_HLEN (14) bytes\nof linear data. key_extract() unconditionally pulls 2 * ETH_ALEN bytes\nfor MAC addresses and parse_ethertype() pulls 2 more, either of which\ntriggers a kernel BUG in __skb_pull() when the linear area is too small.\n\n kernel BUG at include/linux/skbuff.h:2848!\n RIP: 0010:key_extract+0xa7e/0xd90 net/openvswitch/flow.c:933\n ovs_flow_key_extract+0x419/0xa70\n ovs_vport_receive+0x222/0x390\n netdev_frame_hook+0x3e0/0x630\n tun_get_user+0x2d0c/0x38e0\n\nFixed by calling check_header() in key_extract() before accessing the\nEthernet header."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The crash is reached when a crafted skb is processed in ovs_flow_key_extract() via ovs_vport_receive(); the documented reproducer injects it through tun_get_user() (write to a TUN fd), and the alternate path is OVS_PACKET_CMD_EXECUTE netlink\u2014both require local syscall access, not remote packet delivery.\nAC:L - The attacker fully controls skb length, skb-\u003eprotocol (ETH_P_TEB), and linear versus fragmented layout; sending a sub-14-byte payload with ETH_P_TEB on an ARPHRD_NONE OVS port deterministically reaches key_extract() and triggers __skb_pull() BUG() without races or special heap layout.\nPR:L - Attaching an ARPHRD_NONE netdev to an OVS datapath and using OVS_PACKET_CMD_EXECUTE require CAP_NET_ADMIN (GENL_UNS_ADMIN_PERM, netnsok); CAP_NET_ADMIN is obtainable inside an unprivileged user+network namespace, and TUN injection likewise requires CAP_NET_ADMIN or a TUN fd granted by a privileged setup.\nUI:N - No victim interaction is required; once OVS bridges an ARPHRD_NONE port (e.g. TUN), the attacker triggers the bug by injecting a single malformed packet via write() or netlink without any other user action.\nS:U - Impact is a kernel BUG/panic in the same kernel security authority as the attacker; this is not a VM escape, IOMMU bypass, or cross-namespace privilege boundary crossing.\nC:H - Before the BUG, key_extract() calls ether_addr_copy() and parse_ethertype() on skb-\u003edata without validating ETH_HLEN, performing out-of-bounds reads of kernel skb buffer memory beyond the actual packet payload.\nI:H - Unchecked __skb_pull() on an undersized skb corrupts skb-\u003edata and skb-\u003elen metadata; this memory corruption of kernel packet state can be leveraged for further integrity violations beyond a simple controlled crash.\nA:H - The flaw triggers kernel BUG() at __skb_pull() in include/linux/skbuff.h, producing a kernel oops/panic and denying all system availability on affected hosts running Open vSwitch with ARPHRD_NONE ports."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:43.778Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e85278afd4890dd190ba3c7a1b1a712b801c9fe1"
},
{
"url": "https://git.kernel.org/stable/c/81f9b09f0ea3ba9ab966dd17e9f32625a14555e9"
},
{
"url": "https://git.kernel.org/stable/c/831471718f6e19aed1a330b03b53190a90e06466"
},
{
"url": "https://git.kernel.org/stable/c/d8bea341b183190ce6c055ab0e64ab78eb9a7290"
},
{
"url": "https://git.kernel.org/stable/c/0b60b55652ba772b173dddc63f3851e1d2dd5927"
},
{
"url": "https://git.kernel.org/stable/c/a8139285c8925efe59af28a9169bb2fda91bff15"
},
{
"url": "https://git.kernel.org/stable/c/9b8cfbb58b85bfa7a78fac47fdc77396cd01f699"
},
{
"url": "https://git.kernel.org/stable/c/cf6f8b29befb92173659bcef6a441d274947bfae"
}
],
"title": "net/openvswitch: check Ethernet header length in key_extract()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74701",
"datePublished": "2026-08-22T15:33:01.585Z",
"dateReserved": "2026-08-15T05:44:03.927Z",
"dateUpdated": "2026-10-16T19:16:10.294Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74557 (GCVE-0-2026-74557)
Vulnerability from cvelistv5
Published
2026-08-15 12:28
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: libiscsi: Fix stale-data leak into the SCSI sense buffer
iscsi_scsi_cmd_rsp() copies the sense data of a SCSI Response from the
target-supplied data segment. The segment carries a 2-byte sense length
followed by the sense bytes, so it must hold 2 + senselen bytes, but the
bounds check only requires datalen >= senselen:
senselen = get_unaligned_be16(data);
if (datalen < senselen)
goto invalid_datalen;
memcpy(sc->sense_buffer, data + 2,
min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE));
A target that returns a SCSI Response whose datalen equals senselen
(with senselen <= SCSI_SENSE_BUFFERSIZE) makes the memcpy() from data +
2 read up to two bytes past the received data. Those bytes are stale
conn->data contents and end up in the command's sense buffer, which is
returned to userspace.
Account for the 2-byte sense length prefix in the check.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 Version: 7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74557",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:00:09.303445Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:55.724Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/libiscsi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "812f1ae95b22419422972748f173b0916ee4d621",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "fef6167e8149896cd81bea333fd51b1c91239149",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "baa04572673125e4d5bc309b4077d1cb46cc78d1",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "7567f06abdefb1caf2d836107c4d08c5185c650e",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "60499924faf4ef97e84228c20515218ef121facf",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "3ef209ca0b4b68c75e9a814d90cc916026b5a6ac",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "1f07a897d43c63e6c9458bf77450defef39b5833",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
},
{
"lessThan": "98b87885de4b7f605533a2860685f5689fce8e82",
"status": "affected",
"version": "7996a778ff8c717cb1a7a294475c59cc8f1e9fb8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/libiscsi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.18"
},
{
"lessThan": "2.6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: libiscsi: Fix stale-data leak into the SCSI sense buffer\n\niscsi_scsi_cmd_rsp() copies the sense data of a SCSI Response from the\ntarget-supplied data segment. The segment carries a 2-byte sense length\nfollowed by the sense bytes, so it must hold 2 + senselen bytes, but the\nbounds check only requires datalen \u003e= senselen:\n\n\tsenselen = get_unaligned_be16(data);\n\tif (datalen \u003c senselen)\n\t\tgoto invalid_datalen;\n\tmemcpy(sc-\u003esense_buffer, data + 2,\n\t min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE));\n\nA target that returns a SCSI Response whose datalen equals senselen\n(with senselen \u003c= SCSI_SENSE_BUFFERSIZE) makes the memcpy() from data +\n2 read up to two bytes past the received data. Those bytes are stale\nconn-\u003edata contents and end up in the command\u0027s sense buffer, which is\nreturned to userspace.\n\nAccount for the 2-byte sense length prefix in the check."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote malicious or compromised iSCSI target can trigger the bug by sending a crafted SCSI Command Response over the standard iSCSI/TCP session to a Linux kernel initiator, with no local access required on the victim host.\nAC:L - The attacker fully controls the response PDU fields (datalen, sense length, CHECK_CONDITION status) and can reliably set datalen equal to senselen so the flawed bounds check passes and stale conn-\u003edata bytes are copied into the sense buffer.\nPR:N - Exploitation requires only the ability to act as the iSCSI target on the network; the attacker needs no local account, capabilities, or privileges on the victim system initiating the connection.\nUI:N - Once an iSCSI session exists, the leak is triggered automatically on SCSI command responses with no further victim action; the attacker does not rely on a user opening a file, clicking a link, or performing any interactive step at exploit time.\nS:U - The flaw discloses kernel memory contents into a SCSI sense buffer returned within the same host security domain; it does not cross VM, hypervisor, or IOMMU boundaries and is a standard kernel-to-userspace information leak.\nC:H - The out-of-bounds memcpy reads up to two bytes per response from stale conn-\u003edata kernel heap memory into sc-\u003esense_buffer, which is copied to userspace via SCSI completion, ioctl, and BSG paths, enabling repeated kernel information disclosure.\nI:N - The vulnerability is a read-only out-of-bounds memcpy from the receive buffer into the sense buffer; it does not corrupt kernel structures, overwrite memory, or provide a write or code-execution primitive.\nA:N - The bug causes no kernel panic, oops, or hang; invalid responses are handled gracefully and exploitation only leaks data into the sense buffer without disrupting system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:59.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/812f1ae95b22419422972748f173b0916ee4d621"
},
{
"url": "https://git.kernel.org/stable/c/fef6167e8149896cd81bea333fd51b1c91239149"
},
{
"url": "https://git.kernel.org/stable/c/baa04572673125e4d5bc309b4077d1cb46cc78d1"
},
{
"url": "https://git.kernel.org/stable/c/7567f06abdefb1caf2d836107c4d08c5185c650e"
},
{
"url": "https://git.kernel.org/stable/c/60499924faf4ef97e84228c20515218ef121facf"
},
{
"url": "https://git.kernel.org/stable/c/3ef209ca0b4b68c75e9a814d90cc916026b5a6ac"
},
{
"url": "https://git.kernel.org/stable/c/1f07a897d43c63e6c9458bf77450defef39b5833"
},
{
"url": "https://git.kernel.org/stable/c/98b87885de4b7f605533a2860685f5689fce8e82"
}
],
"title": "scsi: libiscsi: Fix stale-data leak into the SCSI sense buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74557",
"datePublished": "2026-08-15T12:28:01.988Z",
"dateReserved": "2026-08-15T05:44:03.916Z",
"dateUpdated": "2026-10-16T19:05:55.724Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89638 (GCVE-0-2026-89638)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions
When a file has the setuid or setgid bit set and is written to, the VFS
strips those bits and issues a setattr with ATTR_KILL_SUID/ATTR_KILL_SGID
together with an ATTR_MODE carrying the already-cleared mode.
Both cifs_setattr_unix() and cifs_setattr_nounix() unconditionally dropped
ATTR_MODE in that case:
/* skip mode change if it's just for clearing setuid/setgid */
if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
attrs->ia_valid &= ~ATTR_MODE;
This is fine for the default mount, where the mode is only emulated via
the DOS read-only attribute and cannot represent the setuid/setgid bits
anyway. However, with the "cifsacl" or "modefromsid" mount options the
mode is stored on the server through an ACL (id_mode_to_cifs_acl()), with
the SMB3.1.1 POSIX extensions the mode is sent to the server directly,
and with the SMB1 Unix extensions (cifs_setattr_unix) the mode is sent
via CIFSSMBUnixSetPathInfo(). In all those cases dropping ATTR_MODE means
the cleared mode is never pushed to the server, so the setuid/setgid bit
survives the write.
This is a security issue: on local filesystems the setuid bit is stripped
when a file is written, but over these cifs.ko mounts the bit persists on
the server, potentially allowing an unexpected privilege escalation on
subsequent execution.
Fix this in two places:
1. cifs_setattr_nounix(): only take the "skip mode change" shortcut
when the mode is emulated via the DOS read-only attribute (i.e.
neither cifsacl/modefromsid nor the SMB3.1.1 POSIX extensions are
in effect), so that the cleared mode is propagated to the server
in the ACL / POSIX cases.
2. cifs_setattr_unix(): this function is only called when Unix
extensions are in effect, so the mode is always stored on the
server. Remove the shortcut entirely so that the cleared mode is
always pushed.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89638",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:50.502778Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:45.797Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7ceb6f7cb8f8f2b094e0dcdaf75757775d231378",
"status": "affected",
"version": "d32c4f2626acc385d5187bd5c0c24f442328dc60",
"versionType": "git"
},
{
"lessThan": "58b23fc9fb580432470d6c5da3c1e5660dba9fbc",
"status": "affected",
"version": "d32c4f2626acc385d5187bd5c0c24f442328dc60",
"versionType": "git"
},
{
"lessThan": "b10015807e4c628095d1d1d1c9307efc8cdd9e1b",
"status": "affected",
"version": "d32c4f2626acc385d5187bd5c0c24f442328dc60",
"versionType": "git"
},
{
"lessThan": "69bfe810ecd1e0387d8975d711cd326341d13c6e",
"status": "affected",
"version": "d32c4f2626acc385d5187bd5c0c24f442328dc60",
"versionType": "git"
},
{
"lessThan": "b8e5dc4f95e5484159b343903f302eb6d783f2e6",
"status": "affected",
"version": "d32c4f2626acc385d5187bd5c0c24f442328dc60",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.24"
},
{
"lessThan": "2.6.24",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.24",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions\n\nWhen a file has the setuid or setgid bit set and is written to, the VFS\nstrips those bits and issues a setattr with ATTR_KILL_SUID/ATTR_KILL_SGID\ntogether with an ATTR_MODE carrying the already-cleared mode.\n\nBoth cifs_setattr_unix() and cifs_setattr_nounix() unconditionally dropped\nATTR_MODE in that case:\n\n\t/* skip mode change if it\u0027s just for clearing setuid/setgid */\n\tif (attrs-\u003eia_valid \u0026 (ATTR_KILL_SUID|ATTR_KILL_SGID))\n\t\tattrs-\u003eia_valid \u0026= ~ATTR_MODE;\n\nThis is fine for the default mount, where the mode is only emulated via\nthe DOS read-only attribute and cannot represent the setuid/setgid bits\nanyway. However, with the \"cifsacl\" or \"modefromsid\" mount options the\nmode is stored on the server through an ACL (id_mode_to_cifs_acl()), with\nthe SMB3.1.1 POSIX extensions the mode is sent to the server directly,\nand with the SMB1 Unix extensions (cifs_setattr_unix) the mode is sent\nvia CIFSSMBUnixSetPathInfo(). In all those cases dropping ATTR_MODE means\nthe cleared mode is never pushed to the server, so the setuid/setgid bit\nsurvives the write.\n\nThis is a security issue: on local filesystems the setuid bit is stripped\nwhen a file is written, but over these cifs.ko mounts the bit persists on\nthe server, potentially allowing an unexpected privilege escalation on\nsubsequent execution.\n\nFix this in two places:\n\n 1. cifs_setattr_nounix(): only take the \"skip mode change\" shortcut\n when the mode is emulated via the DOS read-only attribute (i.e.\n neither cifsacl/modefromsid nor the SMB3.1.1 POSIX extensions are\n in effect), so that the cleared mode is propagated to the server\n in the ACL / POSIX cases.\n\n 2. cifs_setattr_unix(): this function is only called when Unix\n extensions are in effect, so the mode is always stored on the\n server. Remove the shortcut entirely so that the cleared mode is\n always pushed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is in the CIFS client setattr path, reached by local write(2)/truncate(2) on an SMB mount: cifs_file_write_iter -\u003e netfs_file_write_iter -\u003e file_remove_privs -\u003e notify_change -\u003e cifs_setattr_unix/nounix. This is not ksmbd; a remote SMB peer cannot invoke the ATTR_MODE skip.\nAC:L - Once the share stores POSIX mode (cifsacl, modefromsid, SMB3.1.1 POSIX, or SMB1 Unix extensions), a write to a setuid/setgid file deterministically drops ATTR_MODE so the cleared bits are never pushed. The attacker controls the write and later exec, with no race or uninfluenced memory layout.\nPR:L - An unprivileged local user with write access to the setuid/setgid file (group/world-writable helper, or noperm) triggers file_remove_privs; ATTR_FORCE skips ownership/CAP_FSETID checks in setattr_prepare, and no init-namespace capability is required.\nUI:N - The attacker opens, writes, and execve()s the still-setuid file on an already-mounted share; no other user must mount the filesystem, confirm a prompt, or run the binary.\nS:U - Remaining setuid/setgid execution escalates privileges inside the same kernel/OS security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After the attacker overwrites a privileged setuid/setgid helper, the uncleared bits allow execve of attacker-controlled contents as the file owner (including root on Samba POSIX/cifsacl deployments), disclosing all data that owner can read.\nI:H - The same still-setuid execution runs attacker-supplied file contents with the owner\u0027s privileges, enabling arbitrary writes and full integrity compromise, which is the POSIX reason those bits are stripped on write.\nA:H - Attacker-controlled code running as the privileged file owner can panic, halt, or disable the host, so successful exploitation yields complete availability loss."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:06.742Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7ceb6f7cb8f8f2b094e0dcdaf75757775d231378"
},
{
"url": "https://git.kernel.org/stable/c/58b23fc9fb580432470d6c5da3c1e5660dba9fbc"
},
{
"url": "https://git.kernel.org/stable/c/b10015807e4c628095d1d1d1c9307efc8cdd9e1b"
},
{
"url": "https://git.kernel.org/stable/c/69bfe810ecd1e0387d8975d711cd326341d13c6e"
},
{
"url": "https://git.kernel.org/stable/c/b8e5dc4f95e5484159b343903f302eb6d783f2e6"
}
],
"title": "smb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89638",
"datePublished": "2026-09-11T19:45:31.791Z",
"dateReserved": "2026-09-11T19:38:34.740Z",
"dateUpdated": "2026-10-21T12:48:06.742Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92495 (GCVE-0-2026-92495)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/bnxt_re: Clear VM_MAYWRITE on DBR/toggle page mmap
bnxt_re_mmap() rejects VM_WRITE for the DBR_PAGE and TOGGLE_PAGE mmap
flags, but a read-only mapping can still retain VM_MAYWRITE. nd later
be upgraded with mprotect(PROT_WRITE). This can bypass the write check
that only runs at mmap time.
Clear VM_MAYWRITE before vm_insert_page() in the shared DBR/toggle-page
branch, matching the existing policy that userspace writes are not
expected for these pages.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/bnxt_re/ib_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5361fb1e5bc246f9a2c0721543f72c8dac200769",
"status": "affected",
"version": "ea222485788208cd79bad42d25aae9232b33a934",
"versionType": "git"
},
{
"lessThan": "13e7861809ef9e7e720ff5f0af1d4293a6d0a9b4",
"status": "affected",
"version": "ea222485788208cd79bad42d25aae9232b33a934",
"versionType": "git"
},
{
"lessThan": "0afbfe019c881483337d9f8304e678af05ebe7cc",
"status": "affected",
"version": "ea222485788208cd79bad42d25aae9232b33a934",
"versionType": "git"
},
{
"lessThan": "518df61b9b0a5b288dfa72c87246045329c18b8c",
"status": "affected",
"version": "ea222485788208cd79bad42d25aae9232b33a934",
"versionType": "git"
},
{
"lessThan": "9b66c9af7172ffcf727214fa0ebe9a5e1ed6eb16",
"status": "affected",
"version": "ea222485788208cd79bad42d25aae9232b33a934",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/bnxt_re/ib_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/bnxt_re: Clear VM_MAYWRITE on DBR/toggle page mmap\n\nbnxt_re_mmap() rejects VM_WRITE for the DBR_PAGE and TOGGLE_PAGE mmap\nflags, but a read-only mapping can still retain VM_MAYWRITE. nd later\nbe upgraded with mprotect(PROT_WRITE). This can bypass the write check\nthat only runs at mmap time.\n\nClear VM_MAYWRITE before vm_insert_page() in the shared DBR/toggle-page\nbranch, matching the existing policy that userspace writes are not\nexpected for these pages."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:01.510Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5361fb1e5bc246f9a2c0721543f72c8dac200769"
},
{
"url": "https://git.kernel.org/stable/c/13e7861809ef9e7e720ff5f0af1d4293a6d0a9b4"
},
{
"url": "https://git.kernel.org/stable/c/0afbfe019c881483337d9f8304e678af05ebe7cc"
},
{
"url": "https://git.kernel.org/stable/c/518df61b9b0a5b288dfa72c87246045329c18b8c"
},
{
"url": "https://git.kernel.org/stable/c/9b66c9af7172ffcf727214fa0ebe9a5e1ed6eb16"
}
],
"title": "RDMA/bnxt_re: Clear VM_MAYWRITE on DBR/toggle page mmap",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92495",
"datePublished": "2026-09-17T16:10:10.747Z",
"dateReserved": "2026-09-16T12:21:13.871Z",
"dateUpdated": "2026-10-19T09:04:01.510Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63883 (GCVE-0-2026-63883)
Vulnerability from cvelistv5
Published
2026-07-19 14:54
Modified
2026-08-05 12:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ
When uart_flush_buffer() runs before the DMA completion IRQ is delivered,
the following race can occur (all steps serialized by uart_port_lock):
1. DMA starts: tx_remaining = N, kfifo contains N bytes
2. DMA completes in hardware; IRQ is pending but not yet delivered
3. uart_flush_buffer() acquires the port lock and calls kfifo_reset(),
making kfifo_len() = 0 while tx_remaining remains N
4. uart_flush_buffer() releases the port lock
5. DMA IRQ fires; handle_tx_dma() acquires the port lock and calls
uart_xmit_advance(uport, tx_remaining) on an empty kfifo
uart_xmit_advance() increments kfifo->out by tx_remaining. Since
kfifo_reset() already set both in and out to 0, out wraps past in,
causing kfifo_len() to return UART_XMIT_SIZE - tx_remaining. The next
start_tx_dma() call then submits a DMA transfer of stale buffer data.
Fix this by snapshotting kfifo_len() at the start of handle_tx_dma()
and skipping uart_xmit_advance() when fifo_len < tx_remaining, which
indicates the kfifo was reset by a preceding flush.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/qcom_geni_serial.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c91ea13375f70f6271a0183445e34e83b8f4d8f7",
"status": "affected",
"version": "2aaa43c7077833301c237684cd7bc9ae5e3dec95",
"versionType": "git"
},
{
"lessThan": "b1159dce10b38eb795e4c96cdc4d34b83cec81c5",
"status": "affected",
"version": "2aaa43c7077833301c237684cd7bc9ae5e3dec95",
"versionType": "git"
},
{
"lessThan": "654f45a8569f3cd6ff20bd724a18e0cce65893ba",
"status": "affected",
"version": "2aaa43c7077833301c237684cd7bc9ae5e3dec95",
"versionType": "git"
},
{
"lessThan": "0d2c41a8b00934ddf8a7c1b4cf72dffa1e629c46",
"status": "affected",
"version": "2aaa43c7077833301c237684cd7bc9ae5e3dec95",
"versionType": "git"
},
{
"lessThan": "452d6fa37ae9b021f4f6d397dbae077f7296f6f4",
"status": "affected",
"version": "2aaa43c7077833301c237684cd7bc9ae5e3dec95",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/qcom_geni_serial.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ\n\nWhen uart_flush_buffer() runs before the DMA completion IRQ is delivered,\nthe following race can occur (all steps serialized by uart_port_lock):\n\n 1. DMA starts: tx_remaining = N, kfifo contains N bytes\n 2. DMA completes in hardware; IRQ is pending but not yet delivered\n 3. uart_flush_buffer() acquires the port lock and calls kfifo_reset(),\n making kfifo_len() = 0 while tx_remaining remains N\n 4. uart_flush_buffer() releases the port lock\n 5. DMA IRQ fires; handle_tx_dma() acquires the port lock and calls\n uart_xmit_advance(uport, tx_remaining) on an empty kfifo\n\nuart_xmit_advance() increments kfifo-\u003eout by tx_remaining. Since\nkfifo_reset() already set both in and out to 0, out wraps past in,\ncausing kfifo_len() to return UART_XMIT_SIZE - tx_remaining. The next\nstart_tx_dma() call then submits a DMA transfer of stale buffer data.\n\nFix this by snapshotting kfifo_len() at the start of handle_tx_dma()\nand skipping uart_xmit_advance() when fifo_len \u003c tx_remaining, which\nindicates the kfifo was reset by a preceding flush."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reachable only through local TTY syscalls (open/write/ioctl/close) on Qualcomm GENI high-speed UART device nodes (e.g. /dev/ttyHS*); it is not triggered by remote network packets or physical bus manipulation alone.\nAC:L - An attacker who can open the port controls both sides of the race by writing to start DMA TX and immediately issuing TCFLSH/TCOFLUSH (or closing the port) to call uart_flush_buffer() before the DMA completion IRQ runs, and can repeat until the window is hit.\nPR:L - Exploitation requires only the ability to open and ioctl the UART TTY device (typically dialout-group membership or equivalent service access on Qualcomm Android/automotive/embedded platforms), not init-namespace root or capabilities obtainable only outside user namespaces.\nUI:N - Triggering the flush-vs-DMA-IRQ race requires no victim interaction beyond the attacker\u0027s own writes and flush/close operations on the serial port.\nS:U - Impact is confined to kernel serial-driver state and data transmitted on the local UART; it does not cross VM, container, or IOMMU security boundaries.\nC:H - The kfifo index underflow corrupts transmit FIFO bookkeeping and can cause a spurious large DMA read of stale xmit_buf contents (up to UART_XMIT_SIZE/PAGE_SIZE), leaking prior sensitive serial traffic (modem/BT/RS485 diagnostics) that should have been discarded by flush.\nI:H - The corrupted kfifo state causes unauthorized transmission of stale or attacker-influenced buffer data over the UART/RS485 line, corrupting the integrity of serial output to connected devices (ECUs, modems, factory controllers) beyond what the attacker legitimately queued.\nA:L - The primary impact is corrupted driver transmit state and spurious/erroneous serial output rather than a demonstrated kernel oops/panic; however, repeated triggering can degrade or disrupt serial communication relied on by connected subsystems."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:36:52.126Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c91ea13375f70f6271a0183445e34e83b8f4d8f7"
},
{
"url": "https://git.kernel.org/stable/c/b1159dce10b38eb795e4c96cdc4d34b83cec81c5"
},
{
"url": "https://git.kernel.org/stable/c/654f45a8569f3cd6ff20bd724a18e0cce65893ba"
},
{
"url": "https://git.kernel.org/stable/c/0d2c41a8b00934ddf8a7c1b4cf72dffa1e629c46"
},
{
"url": "https://git.kernel.org/stable/c/452d6fa37ae9b021f4f6d397dbae077f7296f6f4"
}
],
"title": "serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63883",
"datePublished": "2026-07-19T14:54:56.356Z",
"dateReserved": "2026-07-19T07:54:57.018Z",
"dateUpdated": "2026-08-05T12:36:52.126Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74615 (GCVE-0-2026-74615)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: do not arm the ageing timer on a device that is down
vxlan_changelink() arms vxlan->age_timer whenever the requested ageing
interval differs from the configured one:
if (conf.age_interval != vxlan->cfg.age_interval)
mod_timer(&vxlan->age_timer, jiffies);
There is no netif_running() test, so the timer is armed even on a device
that was never brought up. The only synchronous cancel in the driver is
the timer_delete_sync() in vxlan_stop(), which is .ndo_stop.
netif_close_many() drops devices without IFF_UP before
__dev_close_many() runs, so that cancel is skipped for such a device.
vxlan_setup() sets dev->needs_free_netdev = true and age_timer is a
member of struct vxlan_dev, so free_netdev() releases the allocation the
timer lives in while it is still queued on a timer_base.
expire_timers() unlinks the entry before it loads timer->function, so
the timer core writes through the freed object's list pointers:
BUG: KASAN: slab-use-after-free in __run_timers+0x208/0x654
Write of size 8 at addr ffff00001adace68 by task true/192
__asan_store8+0x84/0xac
__run_timers+0x208/0x654
run_timer_softirq+0x154/0x18c
Allocated by task 189:
alloc_netdev_mqs+0x64/0x720
rtnl_create_link+0x4ac/0x520
rtnl_newlink+0x758/0xd00
Freed by task 191:
netdev_release+0x40/0x58
netdev_run_todo+0x4a4/0x8c0
rtnl_dellink+0x200/0x4e8
The rtnl operations involved are netns-scoped, so an unprivileged user
can perform them in a new user and network namespace.
Arming the timer on a down device never had an effect: vxlan_cleanup()
returns early on !netif_running(), and vxlan_open() arms the timer for
any non-zero interval once the device is brought up. Add the missing
test.
Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 Version: 40051c4dcad5b374156ad9cceae8d15c0ef1cb95 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74615",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:29.628278Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:02.032Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "be44d79d14d7f9ae7c8ffb7272142005341b5123",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "26c179d47403d2f919ee914cc02c31d896b59fee",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "9dc561f0522c35bdd66e0646a748814a138ec4ca",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "619dd29045e439d0b0f8c6d4fec1af447a050680",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "6b095e99b9e67ea31f0c4b00260e010898253519",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "46bb297ad77680e009244f067f27d51cf5b8c7cf",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "6b4119af544996a545cf84b16f1dbce829ba0de8",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
},
{
"lessThan": "b37971686ec59fb027fa4910ba16805e68fddb97",
"status": "affected",
"version": "40051c4dcad5b374156ad9cceae8d15c0ef1cb95",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: do not arm the ageing timer on a device that is down\n\nvxlan_changelink() arms vxlan-\u003eage_timer whenever the requested ageing\ninterval differs from the configured one:\n\n\tif (conf.age_interval != vxlan-\u003ecfg.age_interval)\n\t\tmod_timer(\u0026vxlan-\u003eage_timer, jiffies);\n\nThere is no netif_running() test, so the timer is armed even on a device\nthat was never brought up. The only synchronous cancel in the driver is\nthe timer_delete_sync() in vxlan_stop(), which is .ndo_stop.\nnetif_close_many() drops devices without IFF_UP before\n__dev_close_many() runs, so that cancel is skipped for such a device.\n\nvxlan_setup() sets dev-\u003eneeds_free_netdev = true and age_timer is a\nmember of struct vxlan_dev, so free_netdev() releases the allocation the\ntimer lives in while it is still queued on a timer_base.\nexpire_timers() unlinks the entry before it loads timer-\u003efunction, so\nthe timer core writes through the freed object\u0027s list pointers:\n\n BUG: KASAN: slab-use-after-free in __run_timers+0x208/0x654\n Write of size 8 at addr ffff00001adace68 by task true/192\n __asan_store8+0x84/0xac\n __run_timers+0x208/0x654\n run_timer_softirq+0x154/0x18c\n Allocated by task 189:\n alloc_netdev_mqs+0x64/0x720\n rtnl_create_link+0x4ac/0x520\n rtnl_newlink+0x758/0xd00\n Freed by task 191:\n netdev_release+0x40/0x58\n netdev_run_todo+0x4a4/0x8c0\n rtnl_dellink+0x200/0x4e8\n\nThe rtnl operations involved are netns-scoped, so an unprivileged user\ncan perform them in a new user and network namespace.\n\nArming the timer on a down device never had an effect: vxlan_cleanup()\nreturns early on !netif_running(), and vxlan_open() arms the timer for\nany non-zero interval once the device is brought up. Add the missing\ntest.\n\nDiscovered by XBOW, triaged by Baul Lee \u003cbaul.lee@xbow.com\u003e"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local RTNETLINK on AF_NETLINK: RTM_NEWLINK creates a vxlan netdev, changelink with IFLA_VXLAN_AGEING arms age_timer, and RTM_DELLINK frees it; remote VXLAN encapsulation/packet receive is not involved.\nAC:L - The attacker fully controls a deterministic sequence on a never-up device: changelink calls mod_timer(jiffies) and dellink frees netdev while the timer stays queued because netif_close_many skips IFF_UP-less devices so vxlan_stop/timer_delete_sync never runs.\nPR:L - rtnetlink_rcv_msg requires CAP_NET_ADMIN for RTM_NEWLINK, RTM_SETLINK, and RTM_DELLINK; unprivileged local users obtain this capability inside a new user and network namespace (unshare -Urn), as stated in the fix commit.\nUI:N - No victim interaction is required; the attacker alone issues netlink create/changelink/delete operations on their own down vxlan interface without bringing the device up or requiring mounts or file access.\nS:C - Slab UAF corruption triggered from CAP_NET_ADMIN inside an unprivileged user/network namespace affects host kernel timer-list memory outside the namespace sandbox, crossing the container-to-host security boundary.\nC:H - KASAN reports slab-use-after-free with an 8-byte write through freed vxlan_dev-\u003eage_timer list pointers in __run_timers; UAF on kernel timer structures enables arbitrary kernel memory disclosure via slab heap reuse.\nI:H - expire_timers() writes to freed timer_list entry fields before loading the callback, providing controlled slab corruption; UAF on embedded vxlan_dev timers is exploitable for arbitrary kernel writes and privilege escalation.\nA:H - Confirmed KASAN slab-use-after-free in run_timer_softirq can kernel oops/panic; the dangling timer remains armed after rtnl_dellink and the sequence can be repeated for reliable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:42.219Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/be44d79d14d7f9ae7c8ffb7272142005341b5123"
},
{
"url": "https://git.kernel.org/stable/c/26c179d47403d2f919ee914cc02c31d896b59fee"
},
{
"url": "https://git.kernel.org/stable/c/9dc561f0522c35bdd66e0646a748814a138ec4ca"
},
{
"url": "https://git.kernel.org/stable/c/619dd29045e439d0b0f8c6d4fec1af447a050680"
},
{
"url": "https://git.kernel.org/stable/c/6b095e99b9e67ea31f0c4b00260e010898253519"
},
{
"url": "https://git.kernel.org/stable/c/46bb297ad77680e009244f067f27d51cf5b8c7cf"
},
{
"url": "https://git.kernel.org/stable/c/6b4119af544996a545cf84b16f1dbce829ba0de8"
},
{
"url": "https://git.kernel.org/stable/c/b37971686ec59fb027fa4910ba16805e68fddb97"
}
],
"title": "vxlan: do not arm the ageing timer on a device that is down",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74615",
"datePublished": "2026-08-22T15:32:00.588Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:02.032Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43448 (GCVE-0-2026-43448)
Vulnerability from cvelistv5
Published
2026-05-08 14:22
Modified
2026-05-11 22:24
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-pci: Fix race bug in nvme_poll_irqdisable()
In the following scenario, pdev can be disabled between (1) and (3) by
(2). This sets pdev->msix_enabled = 0. Then, pci_irq_vector() will
return MSI-X IRQ(>15) for (1) whereas return INTx IRQ(<=15) for (2).
This causes IRQ warning because it tries to enable INTx IRQ that has
never been disabled before.
To fix this, save IRQ number into a local variable and ensure
disable_irq() and enable_irq() operate on the same IRQ number. Even if
pci_free_irq_vectors() frees the IRQ concurrently, disable_irq() and
enable_irq() on a stale IRQ number is still valid and safe, and the
depth accounting reamins balanced.
task 1:
nvme_poll_irqdisable()
disable_irq(pci_irq_vector(pdev, nvmeq->cq_vector)) ...(1)
enable_irq(pci_irq_vector(pdev, nvmeq->cq_vector)) ...(3)
task 2:
nvme_reset_work()
nvme_dev_disable()
pdev->msix_enable = 0; ...(2)
crash log:
------------[ cut here ]------------
Unbalanced enable for IRQ 10
WARNING: kernel/irq/manage.c:753 at __enable_irq+0x102/0x190 kernel/irq/manage.c:753, CPU#1: kworker/1:0H/26
Modules linked in:
CPU: 1 UID: 0 PID: 26 Comm: kworker/1:0H Not tainted 6.19.0-dirty #9 PREEMPT(voluntary)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
Workqueue: kblockd blk_mq_timeout_work
RIP: 0010:__enable_irq+0x107/0x190 kernel/irq/manage.c:753
Code: ff df 48 89 fa 48 c1 ea 03 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 79 48 8d 3d 2e 7a 3f 05 41 8b 74 24 2c <67> 48 0f b9 3a e8 ef b9 21 00 5b 41 5c 5d e9 46 54 66 03 e8 e1 b9
RSP: 0018:ffffc900001bf550 EFLAGS: 00010046
RAX: 0000000000000007 RBX: 0000000000000000 RCX: ffffffffb20c0e90
RDX: 0000000000000000 RSI: 000000000000000a RDI: ffffffffb74b88f0
RBP: ffffc900001bf560 R08: ffff88800197cf00 R09: 0000000000000001
R10: 0000000000000003 R11: 0000000000000003 R12: ffff8880012a6000
R13: 1ffff92000037eae R14: 000000000000000a R15: 0000000000000293
FS: 0000000000000000(0000) GS:ffff8880b49f7000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555da4a25fa8 CR3: 00000000208e8000 CR4: 00000000000006f0
Call Trace:
<TASK>
enable_irq+0x121/0x1e0 kernel/irq/manage.c:797
nvme_poll_irqdisable+0x162/0x1c0 drivers/nvme/host/pci.c:1494
nvme_timeout+0x965/0x14b0 drivers/nvme/host/pci.c:1744
blk_mq_rq_timed_out block/blk-mq.c:1653 [inline]
blk_mq_handle_expired+0x227/0x2d0 block/blk-mq.c:1721
bt_iter+0x2fc/0x3a0 block/blk-mq-tag.c:292
__sbitmap_for_each_set include/linux/sbitmap.h:269 [inline]
sbitmap_for_each_set include/linux/sbitmap.h:290 [inline]
bt_for_each block/blk-mq-tag.c:324 [inline]
blk_mq_queue_tag_busy_iter+0x969/0x1e80 block/blk-mq-tag.c:536
blk_mq_timeout_work+0x627/0x870 block/blk-mq.c:1763
process_one_work+0x956/0x1aa0 kernel/workqueue.c:3257
process_scheduled_works kernel/workqueue.c:3340 [inline]
worker_thread+0x65c/0xe60 kernel/workqueue.c:3421
kthread+0x41a/0x930 kernel/kthread.c:463
ret_from_fork+0x6f8/0x8c0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
</TASK>
irq event stamp: 74478
hardirqs last enabled at (74477): [<ffffffffb5720a9c>] __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:159 [inline]
hardirqs last enabled at (74477): [<ffffffffb5720a9c>] _raw_spin_unlock_irq+0x2c/0x60 kernel/locking/spinlock.c:202
hardirqs last disabled at (74478): [<ffffffffb57207b5>] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline]
hardirqs last disabled at (74478): [<ffffffffb57207b5>] _raw_spin_lock_irqsave+0x85/0xa0 kernel/locking/spinlock.c:162
softirqs last enabled at (74304): [<ffffffffb1e9466c>] __do_softirq kernel/softirq.c:656 [inline]
softirqs last enabled at (74304): [<ffffffffb1e9466c>] invoke_softirq kernel/softirq.c:496 [inline]
softirqs last enabled at (74304): [<ffffffffb1e9466c>] __irq_exit_rcu+0xdc/0x120
---truncated---
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 Version: fa059b856a593a7bddd4d3779ae8ab1380e05d91 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "265dbc9bc33c29f60f90be3e0afe1c4067ebb70b",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
},
{
"lessThan": "628773eba024d1107cc9ec157a682cbb42ac912a",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
},
{
"lessThan": "843e913cef4e33723663a899727f685a95ab53fe",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
},
{
"lessThan": "b56c49897bdac5cb49e3495ef421c391628ee9bb",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
},
{
"lessThan": "e311d84c62eb76e025e11a44155b402e55950b83",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
},
{
"lessThan": "fc71f409b22ca831a9f87a2712eaa09ef2bb4a5e",
"status": "affected",
"version": "fa059b856a593a7bddd4d3779ae8ab1380e05d91",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.7"
},
{
"lessThan": "5.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.167",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.130",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.78",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.167",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.78",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.19",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.9",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-pci: Fix race bug in nvme_poll_irqdisable()\n\nIn the following scenario, pdev can be disabled between (1) and (3) by\n(2). This sets pdev-\u003emsix_enabled = 0. Then, pci_irq_vector() will\nreturn MSI-X IRQ(\u003e15) for (1) whereas return INTx IRQ(\u003c=15) for (2).\nThis causes IRQ warning because it tries to enable INTx IRQ that has\nnever been disabled before.\n\nTo fix this, save IRQ number into a local variable and ensure\ndisable_irq() and enable_irq() operate on the same IRQ number. Even if\npci_free_irq_vectors() frees the IRQ concurrently, disable_irq() and\nenable_irq() on a stale IRQ number is still valid and safe, and the\ndepth accounting reamins balanced.\n\ntask 1:\nnvme_poll_irqdisable()\n disable_irq(pci_irq_vector(pdev, nvmeq-\u003ecq_vector)) ...(1)\n enable_irq(pci_irq_vector(pdev, nvmeq-\u003ecq_vector)) ...(3)\n\ntask 2:\nnvme_reset_work()\n nvme_dev_disable()\n pdev-\u003emsix_enable = 0; ...(2)\n\ncrash log:\n\n------------[ cut here ]------------\nUnbalanced enable for IRQ 10\nWARNING: kernel/irq/manage.c:753 at __enable_irq+0x102/0x190 kernel/irq/manage.c:753, CPU#1: kworker/1:0H/26\nModules linked in:\nCPU: 1 UID: 0 PID: 26 Comm: kworker/1:0H Not tainted 6.19.0-dirty #9 PREEMPT(voluntary)\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014\nWorkqueue: kblockd blk_mq_timeout_work\nRIP: 0010:__enable_irq+0x107/0x190 kernel/irq/manage.c:753\nCode: ff df 48 89 fa 48 c1 ea 03 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 79 48 8d 3d 2e 7a 3f 05 41 8b 74 24 2c \u003c67\u003e 48 0f b9 3a e8 ef b9 21 00 5b 41 5c 5d e9 46 54 66 03 e8 e1 b9\nRSP: 0018:ffffc900001bf550 EFLAGS: 00010046\nRAX: 0000000000000007 RBX: 0000000000000000 RCX: ffffffffb20c0e90\nRDX: 0000000000000000 RSI: 000000000000000a RDI: ffffffffb74b88f0\nRBP: ffffc900001bf560 R08: ffff88800197cf00 R09: 0000000000000001\nR10: 0000000000000003 R11: 0000000000000003 R12: ffff8880012a6000\nR13: 1ffff92000037eae R14: 000000000000000a R15: 0000000000000293\nFS: 0000000000000000(0000) GS:ffff8880b49f7000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 0000555da4a25fa8 CR3: 00000000208e8000 CR4: 00000000000006f0\nCall Trace:\n \u003cTASK\u003e\n enable_irq+0x121/0x1e0 kernel/irq/manage.c:797\n nvme_poll_irqdisable+0x162/0x1c0 drivers/nvme/host/pci.c:1494\n nvme_timeout+0x965/0x14b0 drivers/nvme/host/pci.c:1744\n blk_mq_rq_timed_out block/blk-mq.c:1653 [inline]\n blk_mq_handle_expired+0x227/0x2d0 block/blk-mq.c:1721\n bt_iter+0x2fc/0x3a0 block/blk-mq-tag.c:292\n __sbitmap_for_each_set include/linux/sbitmap.h:269 [inline]\n sbitmap_for_each_set include/linux/sbitmap.h:290 [inline]\n bt_for_each block/blk-mq-tag.c:324 [inline]\n blk_mq_queue_tag_busy_iter+0x969/0x1e80 block/blk-mq-tag.c:536\n blk_mq_timeout_work+0x627/0x870 block/blk-mq.c:1763\n process_one_work+0x956/0x1aa0 kernel/workqueue.c:3257\n process_scheduled_works kernel/workqueue.c:3340 [inline]\n worker_thread+0x65c/0xe60 kernel/workqueue.c:3421\n kthread+0x41a/0x930 kernel/kthread.c:463\n ret_from_fork+0x6f8/0x8c0 arch/x86/kernel/process.c:158\n ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246\n \u003c/TASK\u003e\nirq event stamp: 74478\nhardirqs last enabled at (74477): [\u003cffffffffb5720a9c\u003e] __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:159 [inline]\nhardirqs last enabled at (74477): [\u003cffffffffb5720a9c\u003e] _raw_spin_unlock_irq+0x2c/0x60 kernel/locking/spinlock.c:202\nhardirqs last disabled at (74478): [\u003cffffffffb57207b5\u003e] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline]\nhardirqs last disabled at (74478): [\u003cffffffffb57207b5\u003e] _raw_spin_lock_irqsave+0x85/0xa0 kernel/locking/spinlock.c:162\nsoftirqs last enabled at (74304): [\u003cffffffffb1e9466c\u003e] __do_softirq kernel/softirq.c:656 [inline]\nsoftirqs last enabled at (74304): [\u003cffffffffb1e9466c\u003e] invoke_softirq kernel/softirq.c:496 [inline]\nsoftirqs last enabled at (74304): [\u003cffffffffb1e9466c\u003e] __irq_exit_rcu+0xdc/0x120\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:24:47.245Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/265dbc9bc33c29f60f90be3e0afe1c4067ebb70b"
},
{
"url": "https://git.kernel.org/stable/c/628773eba024d1107cc9ec157a682cbb42ac912a"
},
{
"url": "https://git.kernel.org/stable/c/843e913cef4e33723663a899727f685a95ab53fe"
},
{
"url": "https://git.kernel.org/stable/c/b56c49897bdac5cb49e3495ef421c391628ee9bb"
},
{
"url": "https://git.kernel.org/stable/c/e311d84c62eb76e025e11a44155b402e55950b83"
},
{
"url": "https://git.kernel.org/stable/c/fc71f409b22ca831a9f87a2712eaa09ef2bb4a5e"
}
],
"title": "nvme-pci: Fix race bug in nvme_poll_irqdisable()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43448",
"datePublished": "2026-05-08T14:22:14.633Z",
"dateReserved": "2026-05-01T14:12:56.010Z",
"dateUpdated": "2026-05-11T22:24:47.245Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64476 (GCVE-0-2026-64476)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-08-17 04:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio/pci: Latch disable_idle_d3 per device
When disable_idle_d3 was introduced in vfio-pci, it directly manipulated
the device power state with pci_set_power_state(). There were no
refcounts to maintain or balanced operations, we could unconditionally
bring the device to D0 and conditionally move it to D3hot. Therefore
the module parameter was made writable.
Later, in commit c61302aa48f7 ("vfio/pci: Move module parameters to
vfio_pci.c"), as part of the vfio-pci-core split, the writable aspect
of the module parameter was nullified. The parameter value could still
be changed through sysfs, but the vfio-pci driver latched the values
into vfio-pci-core globals at module init. Loading the vfio-pci module,
or unloading and reloading, with non-default or different values could
change the globals relative to existing devices bound to vfio-pci
variant drivers.
Runtime PM was introduced in commit 7ab5e10eda02 ("vfio/pci: Move the
unused device into low power state with runtime PM"), which marks the
point where power states became refcounted. PM get and put operations
need to be balanced, but the same module operations noted above can
change the global variables relative to those devices already bound to
vfio-pci variant drivers. This introduces a window where PM operations
can now become unbalanced.
To resolve this with a narrow footprint for stable backports, the
disable_idle_d3 flag is latched into the vfio_pci_core_device at the
time of initialization, such that the device always operates with a
consistent value.
NB. vfio_pci_dev_set_try_reset() now unconditionally raises the
runtime PM usage count around bus reset to account for disable_idle_d3
becoming a per-device rather than global flag. When this flag is set,
the additional get/put pair is harmless and allows continued use of the
shared vfio_pci_dev_set_pm_runtime_get() helper.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c Version: 7ab5e10eda02da1d9562ffde562c51055d368e9c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/vfio_pci_core.c",
"include/linux/vfio_pci_core.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "332d785f9ae426eeeb92527872adf09d84101ba3",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
},
{
"lessThan": "654710ef3135c4546b20a903bc23a51b0c44d6c8",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
},
{
"lessThan": "b98296816d31441b307ef9fa8670dcf5a55e5505",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
},
{
"lessThan": "f6c67cf0051f96ba61d186731d3d9409b9927db2",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
},
{
"lessThan": "062b820290bcb9778e43a73597df76e9bb08acfb",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
},
{
"lessThan": "4575e9aac5336d1365138c0284773bf8da4b1fa3",
"status": "affected",
"version": "7ab5e10eda02da1d9562ffde562c51055d368e9c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/vfio_pci_core.c",
"include/linux/vfio_pci_core.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio/pci: Latch disable_idle_d3 per device\n\nWhen disable_idle_d3 was introduced in vfio-pci, it directly manipulated\nthe device power state with pci_set_power_state(). There were no\nrefcounts to maintain or balanced operations, we could unconditionally\nbring the device to D0 and conditionally move it to D3hot. Therefore\nthe module parameter was made writable.\n\nLater, in commit c61302aa48f7 (\"vfio/pci: Move module parameters to\nvfio_pci.c\"), as part of the vfio-pci-core split, the writable aspect\nof the module parameter was nullified. The parameter value could still\nbe changed through sysfs, but the vfio-pci driver latched the values\ninto vfio-pci-core globals at module init. Loading the vfio-pci module,\nor unloading and reloading, with non-default or different values could\nchange the globals relative to existing devices bound to vfio-pci\nvariant drivers.\n\nRuntime PM was introduced in commit 7ab5e10eda02 (\"vfio/pci: Move the\nunused device into low power state with runtime PM\"), which marks the\npoint where power states became refcounted. PM get and put operations\nneed to be balanced, but the same module operations noted above can\nchange the global variables relative to those devices already bound to\nvfio-pci variant drivers. This introduces a window where PM operations\ncan now become unbalanced.\n\nTo resolve this with a narrow footprint for stable backports, the\ndisable_idle_d3 flag is latched into the vfio_pci_core_device at the\ntime of initialization, such that the device always operates with a\nconsistent value.\n\nNB. vfio_pci_dev_set_try_reset() now unconditionally raises the\nruntime PM usage count around bus reset to account for disable_idle_d3\nbecoming a per-device rather than global flag. When this flag is set,\nthe additional get/put pair is harmless and allows continued use of the\nshared vfio_pci_dev_set_pm_runtime_get() helper."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:22.585Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/332d785f9ae426eeeb92527872adf09d84101ba3"
},
{
"url": "https://git.kernel.org/stable/c/654710ef3135c4546b20a903bc23a51b0c44d6c8"
},
{
"url": "https://git.kernel.org/stable/c/b98296816d31441b307ef9fa8670dcf5a55e5505"
},
{
"url": "https://git.kernel.org/stable/c/f6c67cf0051f96ba61d186731d3d9409b9927db2"
},
{
"url": "https://git.kernel.org/stable/c/062b820290bcb9778e43a73597df76e9bb08acfb"
},
{
"url": "https://git.kernel.org/stable/c/4575e9aac5336d1365138c0284773bf8da4b1fa3"
}
],
"title": "vfio/pci: Latch disable_idle_d3 per device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64476",
"datePublished": "2026-07-25T08:51:38.865Z",
"dateReserved": "2026-07-19T15:36:31.791Z",
"dateUpdated": "2026-08-17T04:56:22.585Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92503 (GCVE-0-2026-92503)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-21 12:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix ABBA deadlock in ext4_xattr_inode_cache_find()
Syzbot/stress-ng reported an ABBA deadlock in ext4 when exercising
concurrent xattr workloads (using the ea_inode mount/format option).
The deadlock occurs between the running transaction and the eviction
thread:
- Task 1 (stress-ng): Holds a reference to a shared mbcache_entry (ce)
and calls ext4_xattr_inode_cache_find() -> ext4_iget() to retrieve
the corresponding EA inode. Since the EA inode is currently being
evicted, ext4_iget() blocks in __wait_on_freeing_inode() waiting for
eviction to complete.
- Task 2 (eviction thread): Currently evicting the same EA inode in
ext4_evict_ea_inode(). It calls mb_cache_entry_wait_unused(oe) which
blocks waiting for Task 1 to release the reference to the mbcache_entry.
To break this deadlock, implement a new ext4_iget() configuration flag
named EXT4_IGET_NOWAIT. When set, perform a non-blocking lookup of the
inode via VFS's find_inode_nowait() API.
If the inode is currently being evicted (marked with I_FREEING or
I_WILL_FREE) or created (I_CREATING), or if it is not present in the VFS
inode cache (cache miss), simply skip it (returning -ENOENT) rather than
waiting for eviction/creation to complete, breaking the ABBA cycle.
Since we return -ENOENT immediately on a cache miss, we never attempt to
allocate a new inode or call iget_locked(), completely eliminating any
TOCTOU race window.
If the returned inode is I_NEW, wait for its initialization to clear via
wait_on_new_inode(). If initialization fails and the inode is unhashed
during wait_on_new_inode() waking up (e.g., due to an I/O read error in
another thread), safely drop the reference and return -ENOENT. This
unhashed check is executed unconditionally on all cache-hit pathways to
properly handle concurrent initialization failures.
Finally, standard validation checks (including is_bad_inode,
EXT4_EA_INODE_FL, file_acl, and xattr flags) are executed as normal inside
check_igot_inode() to fully guarantee VFS-layer safety.
In ext4_xattr_inode_cache_find(), invoke ext4_iget() with the new
EXT4_IGET_NOWAIT flag to perform the non-blocking cache search.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 737fb7853acd5bc8984f6f42e4bfba3334be8ae1 Version: 0a46ef234756dca04623b7591e8ebb3440622f0b Version: 0a46ef234756dca04623b7591e8ebb3440622f0b Version: 0a46ef234756dca04623b7591e8ebb3440622f0b Version: 0a46ef234756dca04623b7591e8ebb3440622f0b Version: 0752e7fb549d90c33b4d4186f11cfd25a556d1dd Version: 111103907234bffd0a34fba070ad9367de058752 Version: 6.6.47 ≤ Version: 6.1.107 ≤ Version: 6.9.7 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/ext4.h",
"fs/ext4/inode.c",
"fs/ext4/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "29a2a166450a3e89f61a486033b10cf170fde8b0",
"status": "affected",
"version": "737fb7853acd5bc8984f6f42e4bfba3334be8ae1",
"versionType": "git"
},
{
"lessThan": "d3b19b318e0e0483180d15f1d9f5e807a1fb59d5",
"status": "affected",
"version": "0a46ef234756dca04623b7591e8ebb3440622f0b",
"versionType": "git"
},
{
"lessThan": "074d0620401974cbfa9b63684cdfae99c7b2059c",
"status": "affected",
"version": "0a46ef234756dca04623b7591e8ebb3440622f0b",
"versionType": "git"
},
{
"lessThan": "7720fddd1fe344d14be258a2028f74ebf1569511",
"status": "affected",
"version": "0a46ef234756dca04623b7591e8ebb3440622f0b",
"versionType": "git"
},
{
"lessThan": "03438084a7b8621fb5c762dd3d04cff5f2630fb2",
"status": "affected",
"version": "0a46ef234756dca04623b7591e8ebb3440622f0b",
"versionType": "git"
},
{
"status": "affected",
"version": "0752e7fb549d90c33b4d4186f11cfd25a556d1dd",
"versionType": "git"
},
{
"status": "affected",
"version": "111103907234bffd0a34fba070ad9367de058752",
"versionType": "git"
},
{
"lessThan": "6.6.160",
"status": "affected",
"version": "6.6.47",
"versionType": "semver"
},
{
"lessThan": "6.2",
"status": "affected",
"version": "6.1.107",
"versionType": "semver"
},
{
"lessThan": "6.10",
"status": "affected",
"version": "6.9.7",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/ext4.h",
"fs/ext4/inode.c",
"fs/ext4/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.6.47",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.107",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.9.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix ABBA deadlock in ext4_xattr_inode_cache_find()\n\nSyzbot/stress-ng reported an ABBA deadlock in ext4 when exercising\nconcurrent xattr workloads (using the ea_inode mount/format option).\n\nThe deadlock occurs between the running transaction and the eviction\nthread:\n- Task 1 (stress-ng): Holds a reference to a shared mbcache_entry (ce)\n and calls ext4_xattr_inode_cache_find() -\u003e ext4_iget() to retrieve\n the corresponding EA inode. Since the EA inode is currently being\n evicted, ext4_iget() blocks in __wait_on_freeing_inode() waiting for\n eviction to complete.\n- Task 2 (eviction thread): Currently evicting the same EA inode in\n ext4_evict_ea_inode(). It calls mb_cache_entry_wait_unused(oe) which\n blocks waiting for Task 1 to release the reference to the mbcache_entry.\n\nTo break this deadlock, implement a new ext4_iget() configuration flag\nnamed EXT4_IGET_NOWAIT. When set, perform a non-blocking lookup of the\ninode via VFS\u0027s find_inode_nowait() API.\n\nIf the inode is currently being evicted (marked with I_FREEING or\nI_WILL_FREE) or created (I_CREATING), or if it is not present in the VFS\ninode cache (cache miss), simply skip it (returning -ENOENT) rather than\nwaiting for eviction/creation to complete, breaking the ABBA cycle.\n\nSince we return -ENOENT immediately on a cache miss, we never attempt to\nallocate a new inode or call iget_locked(), completely eliminating any\nTOCTOU race window.\n\nIf the returned inode is I_NEW, wait for its initialization to clear via\nwait_on_new_inode(). If initialization fails and the inode is unhashed\nduring wait_on_new_inode() waking up (e.g., due to an I/O read error in\nanother thread), safely drop the reference and return -ENOENT. This\nunhashed check is executed unconditionally on all cache-hit pathways to\nproperly handle concurrent initialization failures.\n\nFinally, standard validation checks (including is_bad_inode,\nEXT4_EA_INODE_FL, file_acl, and xattr flags) are executed as normal inside\ncheck_igot_inode() to fully guarantee VFS-layer safety.\n\nIn ext4_xattr_inode_cache_find(), invoke ext4_iget() with the new\nEXT4_IGET_NOWAIT flag to perform the non-blocking cache search."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:51:44.628Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/29a2a166450a3e89f61a486033b10cf170fde8b0"
},
{
"url": "https://git.kernel.org/stable/c/d3b19b318e0e0483180d15f1d9f5e807a1fb59d5"
},
{
"url": "https://git.kernel.org/stable/c/074d0620401974cbfa9b63684cdfae99c7b2059c"
},
{
"url": "https://git.kernel.org/stable/c/7720fddd1fe344d14be258a2028f74ebf1569511"
},
{
"url": "https://git.kernel.org/stable/c/03438084a7b8621fb5c762dd3d04cff5f2630fb2"
}
],
"title": "ext4: fix ABBA deadlock in ext4_xattr_inode_cache_find()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92503",
"datePublished": "2026-09-17T16:10:16.062Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-21T12:51:44.628Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74487 (GCVE-0-2026-74487)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-23 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: restore write access when removing an entry
Registering an entry with the MISC_FMT_OPEN_FILE flag opens the
interpreter via open_exec() which denies write access to it for as
long as the entry exists. Removing the entry closes the interpreter
file via filp_close() but never restores write access, leaving the
inode's i_writecount permanently negative. Opening the interpreter
for writing keeps failing with ETXTBSY long after the entry is gone
until the inode is evicted from the inode cache.
Commit 90f601b497d7 ("binfmt_misc: restore write access before
closing files opened by open_exec()") fixed the same imbalance in the
error path of bm_register_write() but the actual removal path has
been leaking the write denial since the introduction of the flag.
Restore write access in put_binfmt_handler() before closing the
interpreter file.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed Version: 948b701a607f123df92ed29084413e5dd8cda2ed |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7873f987213695e3564c8c259e6db283e4739472",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "13efc628fdf641d901bdba07caa1c558e1bed046",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "f1cf67f6be0babc73afa4ee0e27bdedffeeeb095",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "dd9ba32169e73a3c3ba595cf1de1f4c69ceafb3c",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "a50296cca2a1db9d8d21051e7d50f0cf3a4b7ec8",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "fdc1d702bf3001586221fa07e598e876a0a854c5",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "3b522487a3a9162b1b519eefde7998d103e3e07b",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
},
{
"lessThan": "db1856ea9196cf6e015d12199a34c0b9313c7bfa",
"status": "affected",
"version": "948b701a607f123df92ed29084413e5dd8cda2ed",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: restore write access when removing an entry\n\nRegistering an entry with the MISC_FMT_OPEN_FILE flag opens the\ninterpreter via open_exec() which denies write access to it for as\nlong as the entry exists. Removing the entry closes the interpreter\nfile via filp_close() but never restores write access, leaving the\ninode\u0027s i_writecount permanently negative. Opening the interpreter\nfor writing keeps failing with ETXTBSY long after the entry is gone\nuntil the inode is evicted from the inode cache.\n\nCommit 90f601b497d7 (\"binfmt_misc: restore write access before\nclosing files opened by open_exec()\") fixed the same imbalance in the\nerror path of bm_register_write() but the actual removal path has\nbeen leaking the write denial since the introduction of the flag.\n\nRestore write access in put_binfmt_handler() before closing the\ninterpreter file."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:26.657Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7873f987213695e3564c8c259e6db283e4739472"
},
{
"url": "https://git.kernel.org/stable/c/13efc628fdf641d901bdba07caa1c558e1bed046"
},
{
"url": "https://git.kernel.org/stable/c/f1cf67f6be0babc73afa4ee0e27bdedffeeeb095"
},
{
"url": "https://git.kernel.org/stable/c/dd9ba32169e73a3c3ba595cf1de1f4c69ceafb3c"
},
{
"url": "https://git.kernel.org/stable/c/a50296cca2a1db9d8d21051e7d50f0cf3a4b7ec8"
},
{
"url": "https://git.kernel.org/stable/c/fdc1d702bf3001586221fa07e598e876a0a854c5"
},
{
"url": "https://git.kernel.org/stable/c/3b522487a3a9162b1b519eefde7998d103e3e07b"
},
{
"url": "https://git.kernel.org/stable/c/db1856ea9196cf6e015d12199a34c0b9313c7bfa"
}
],
"title": "binfmt_misc: restore write access when removing an entry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74487",
"datePublished": "2026-08-15T12:27:18.236Z",
"dateReserved": "2026-08-15T05:44:03.905Z",
"dateUpdated": "2026-08-23T12:47:26.657Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74719 (GCVE-0-2026-74719)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-08-22 15:33
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler()
The SMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT branch in
smc_llc_event_handler() stores an incoming qentry into the local LLC flow
without first checking whether a qentry is already pending. If a malicious or
buggy peer sends a second CONFIRM_LINK or ADD_LINK_CONT request while a flow is
active and flow->qentry is already set, smc_llc_flow_qentry_set() overwrites the
pointer without freeing the previous allocation, leaking one kmalloc-96 object
per spurious message.
The sibling SMC_LLC_DELETE_LINK branch already has the correct !flow->qentry
guard. Apply the same guard to the CONFIRM_LINK/ADD_LINK_CONT branch so that a
duplicate message when qentry is already occupied falls through to break and is
freed by the kfree(qentry) at the out: label, rather than silently leaking the
existing allocation.
The response direction (smc_llc_rx_response()) is unaffected: it already guards
with flow->qentry at the equivalent site and drops duplicate responses
correctly.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 Version: 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_llc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e384f3cba6ea709f5b2272b1770db4ce14047f78",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "a1e980d7a9e7ee6faf4f5fd7b450413b969af26d",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "e0eb87677c76b157cdf8eb7c1f19e56227165a33",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "06734dfeaeba886aab1bf147249195b888ac3e4d",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "c23c409228629107203d3c3e95fff1473173f1a6",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "10cb31b2b74cb664c6c95cf72364d7d5c483ab82",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "bfc336a9fbbf09805f3dfe25c195a4db90af2846",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
},
{
"lessThan": "976245094925bab9bc39366b2e9ab44ffcde61d0",
"status": "affected",
"version": "0fb0b02bd6fd26cba38002be4a6bbcae2228fd44",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_llc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler()\n\nThe SMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT branch in\nsmc_llc_event_handler() stores an incoming qentry into the local LLC flow\nwithout first checking whether a qentry is already pending. If a malicious or\nbuggy peer sends a second CONFIRM_LINK or ADD_LINK_CONT request while a flow is\nactive and flow-\u003eqentry is already set, smc_llc_flow_qentry_set() overwrites the\npointer without freeing the previous allocation, leaking one kmalloc-96 object\nper spurious message.\n\nThe sibling SMC_LLC_DELETE_LINK branch already has the correct !flow-\u003eqentry\nguard. Apply the same guard to the CONFIRM_LINK/ADD_LINK_CONT branch so that a\nduplicate message when qentry is already occupied falls through to break and is\nfreed by the kfree(qentry) at the out: label, rather than silently leaking the\nexisting allocation.\n\nThe response direction (smc_llc_rx_response()) is unaffected: it already guards\nwith flow-\u003eqentry at the equivalent site and drops duplicate responses\ncorrectly."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:33:12.716Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e384f3cba6ea709f5b2272b1770db4ce14047f78"
},
{
"url": "https://git.kernel.org/stable/c/a1e980d7a9e7ee6faf4f5fd7b450413b969af26d"
},
{
"url": "https://git.kernel.org/stable/c/e0eb87677c76b157cdf8eb7c1f19e56227165a33"
},
{
"url": "https://git.kernel.org/stable/c/06734dfeaeba886aab1bf147249195b888ac3e4d"
},
{
"url": "https://git.kernel.org/stable/c/c23c409228629107203d3c3e95fff1473173f1a6"
},
{
"url": "https://git.kernel.org/stable/c/10cb31b2b74cb664c6c95cf72364d7d5c483ab82"
},
{
"url": "https://git.kernel.org/stable/c/bfc336a9fbbf09805f3dfe25c195a4db90af2846"
},
{
"url": "https://git.kernel.org/stable/c/976245094925bab9bc39366b2e9ab44ffcde61d0"
}
],
"title": "net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74719",
"datePublished": "2026-08-22T15:33:12.716Z",
"dateReserved": "2026-08-15T05:44:03.929Z",
"dateUpdated": "2026-08-22T15:33:12.716Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68162 (GCVE-0-2026-68162)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: avoid auth_enable sysctl UAF during netns teardown
proc_sctp_do_auth() updates the SCTP control socket after changing
net.sctp.auth_enable. The handler gets the per-net SCTP state from
ctl->data, so an already opened sysctl file can still target a network
namespace while that namespace is being torn down.
SCTP previously registered its per-net sysctls from sctp_defaults_init(),
while the control socket is created later from sctp_ctrlsock_init(). This
exposed a window during initialization where auth_enable was writable
before net->sctp.ctl_sock existed, and a teardown window where auth_enable
stayed writable after inet_ctl_sock_destroy() had released the control
socket.
Move the per-net SCTP sysctl registration into sctp_ctrlsock_init() after
sctp_ctl_sock_init() succeeds, and unregister the sysctl table before
destroying the control socket in sctp_ctrlsock_exit(). If sysctl
registration fails after the control socket was created, destroy the
control socket in the same init path.
Make sctp_sysctl_net_unregister() tolerate a missing header and clear the
saved pointer so init-error and exit paths can safely share the unregister
helper.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 10c869a52f266e40f548cc3c565d14930a5edafc Version: dc583e7e5f8515ca489c0df28e4362a70eade382 Version: bd2a2939423566c654545fa3e96a656662a0af9e Version: 1b67030d39f2b00f94ac1f0af11ba6657589e4d3 Version: 7ec30c54f339c640aa7e49d7e9f7bbed6bd42bf6 Version: c184bc621e3cef03ac9ba81a50dda2dae6a21d36 Version: 15649fd5415eda664ef35780c2013adeb5d9c695 Version: 15649fd5415eda664ef35780c2013adeb5d9c695 Version: 15649fd5415eda664ef35780c2013adeb5d9c695 Version: 5.4.290 ≤ Version: 5.10.234 ≤ Version: 5.15.177 ≤ Version: 6.1.125 ≤ Version: 6.6.72 ≤ Version: 6.12.10 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68162",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:45:25.940723Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:55.689Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/protocol.c",
"net/sctp/sysctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "19573dcddb8819fd68d6cd1f916c1c99c3fa4ff4",
"status": "affected",
"version": "10c869a52f266e40f548cc3c565d14930a5edafc",
"versionType": "git"
},
{
"lessThan": "ceb7190b5c873d4a1267a1600c5aa52c600e929f",
"status": "affected",
"version": "dc583e7e5f8515ca489c0df28e4362a70eade382",
"versionType": "git"
},
{
"lessThan": "fd66854a22661929245f3d2b244c432bc8b1a150",
"status": "affected",
"version": "bd2a2939423566c654545fa3e96a656662a0af9e",
"versionType": "git"
},
{
"lessThan": "158f3cc332dc53f43ec20060233d7c3cecd6d912",
"status": "affected",
"version": "1b67030d39f2b00f94ac1f0af11ba6657589e4d3",
"versionType": "git"
},
{
"lessThan": "66700c0719675e0e118ae83b2d7168dacd69dd3d",
"status": "affected",
"version": "7ec30c54f339c640aa7e49d7e9f7bbed6bd42bf6",
"versionType": "git"
},
{
"lessThan": "626bda8cfe43dff19a9833ff6ba055a817b5455c",
"status": "affected",
"version": "c184bc621e3cef03ac9ba81a50dda2dae6a21d36",
"versionType": "git"
},
{
"lessThan": "be6aae9d1b91c603adb35872d37d40e83daf8758",
"status": "affected",
"version": "15649fd5415eda664ef35780c2013adeb5d9c695",
"versionType": "git"
},
{
"lessThan": "a50e73488e0bbdd262b3be3c9a1d8dd078382381",
"status": "affected",
"version": "15649fd5415eda664ef35780c2013adeb5d9c695",
"versionType": "git"
},
{
"lessThan": "f8d5e7846025f4ab15a461235f8ebae9094a361a",
"status": "affected",
"version": "15649fd5415eda664ef35780c2013adeb5d9c695",
"versionType": "git"
},
{
"lessThan": "5.4.292",
"status": "affected",
"version": "5.4.290",
"versionType": "semver"
},
{
"lessThan": "5.10.266",
"status": "affected",
"version": "5.10.234",
"versionType": "semver"
},
{
"lessThan": "5.15.217",
"status": "affected",
"version": "5.15.177",
"versionType": "semver"
},
{
"lessThan": "6.1.184",
"status": "affected",
"version": "6.1.125",
"versionType": "semver"
},
{
"lessThan": "6.6.151",
"status": "affected",
"version": "6.6.72",
"versionType": "semver"
},
{
"lessThan": "6.12.101",
"status": "affected",
"version": "6.12.10",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/protocol.c",
"net/sctp/sysctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.292",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.292",
"versionStartIncluding": "5.4.290",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.10.234",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.15.177",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "6.1.125",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "6.6.72",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.12.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: avoid auth_enable sysctl UAF during netns teardown\n\nproc_sctp_do_auth() updates the SCTP control socket after changing\nnet.sctp.auth_enable. The handler gets the per-net SCTP state from\nctl-\u003edata, so an already opened sysctl file can still target a network\nnamespace while that namespace is being torn down.\n\nSCTP previously registered its per-net sysctls from sctp_defaults_init(),\nwhile the control socket is created later from sctp_ctrlsock_init(). This\nexposed a window during initialization where auth_enable was writable\nbefore net-\u003esctp.ctl_sock existed, and a teardown window where auth_enable\nstayed writable after inet_ctl_sock_destroy() had released the control\nsocket.\n\nMove the per-net SCTP sysctl registration into sctp_ctrlsock_init() after\nsctp_ctl_sock_init() succeeds, and unregister the sysctl table before\ndestroying the control socket in sctp_ctrlsock_exit(). If sysctl\nregistration fails after the control socket was created, destroy the\ncontrol socket in the same init path.\n\nMake sctp_sysctl_net_unregister() tolerate a missing header and clear the\nsaved pointer so init-error and exit paths can safely share the unregister\nhelper."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is triggered only by writing the per-net sysctl net.sctp.auth_enable via /proc/sys (proc_sctp_do_auth); it is not reachable from SCTP packet receive, sockets, or other remote protocol paths.\nAC:L - An attacker can open the sysctl file, concurrently destroy the target network namespace, and repeatedly write during teardown; pernet exit destroys ctl_sock before unregistering sysctls, and the attacker controls both sides of that race.\nPR:L - Exploitation requires writing a mode 0644 sysctl in a network namespace; an unprivileged host user with CAP_NET_ADMIN via user namespaces can create a netns, become namespace root, and write net/sctp/auth_enable without init-namespace privileges.\nUI:N - No victim interaction is required beyond the attacker opening the sysctl and triggering namespace teardown in their own threads or processes.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same host/kernel security domain; it does not cross VM, container, or IOMMU boundaries by itself.\nC:H - proc_sctp_do_auth dereferences net-\u003esctp.ctl_sock after inet_ctl_sock_destroy; lock_sock and sctp_sk(sk)-\u003eep access freed socket/endpoint memory, a use-after-free that can disclose or infer heap contents.\nI:H - On a successful write, the handler sets sctp_sk(sk)-\u003eep-\u003eauth_enable on a freed endpoint object, giving a controlled heap write primitive that can be developed into arbitrary kernel modification or code execution.\nA:H - Use-after-free on the SCTP control socket/endpoint during sysctl processing can cause kernel oops/panic from lock_sock or ep access on freed memory, even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:01.222Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/19573dcddb8819fd68d6cd1f916c1c99c3fa4ff4"
},
{
"url": "https://git.kernel.org/stable/c/ceb7190b5c873d4a1267a1600c5aa52c600e929f"
},
{
"url": "https://git.kernel.org/stable/c/fd66854a22661929245f3d2b244c432bc8b1a150"
},
{
"url": "https://git.kernel.org/stable/c/158f3cc332dc53f43ec20060233d7c3cecd6d912"
},
{
"url": "https://git.kernel.org/stable/c/66700c0719675e0e118ae83b2d7168dacd69dd3d"
},
{
"url": "https://git.kernel.org/stable/c/626bda8cfe43dff19a9833ff6ba055a817b5455c"
},
{
"url": "https://git.kernel.org/stable/c/be6aae9d1b91c603adb35872d37d40e83daf8758"
},
{
"url": "https://git.kernel.org/stable/c/a50e73488e0bbdd262b3be3c9a1d8dd078382381"
},
{
"url": "https://git.kernel.org/stable/c/f8d5e7846025f4ab15a461235f8ebae9094a361a"
}
],
"title": "sctp: avoid auth_enable sysctl UAF during netns teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68162",
"datePublished": "2026-08-10T11:59:29.099Z",
"dateReserved": "2026-07-30T09:28:09.372Z",
"dateUpdated": "2026-10-19T20:58:55.689Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89480 (GCVE-0-2026-89480)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-tcp: reject a read that transferred too few bytes
nvme_tcp_recv_data() completes a request once the current C2HData PDU
has been consumed. Nothing compares the total bytes received against
the length the command asked for: struct nvme_tcp_request has no
receive-side counter, queue->data_remaining is per queue, and
blk_mq_end_request() completes for blk_rq_bytes(rq) unconditionally
with no residual concept anywhere above.
A controller can therefore answer a 4096-byte read with 512 bytes and
have it reported as a complete read; user space then gets 4096 bytes of
which 3584 are whatever was already in the page. I reproduced that with
a test target.
Count the bytes received and refuse to complete a successful read whose
count does not match, at the two NVME_TCP_F_DATA_SUCCESS paths and in
nvme_tcp_process_nvme_cqe(). The success test shifts req->status right
by one, because the driver keeps the wire value there and shifts it on
completion, so the check must see what the completion path will see.
Only REQ_OP_READ is checked, because there the length comes from the
sectors the request covers; a passthrough command is built by its
submitter, which picks both command and buffer, so the kernel has
nothing to compare against.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89480",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:32.814624Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:39.543Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a5c1bb0fb1bab2f24a081339c145870697f6d220",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "aa107e3a68f4af177d60f2d87679e7f67179a36c",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "fca3ebb63e5c82561cd9934365dcc0d068008006",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "99066cf9bba175f610ceb61a35f6fc9fbc33ff65",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "8a02ad98798fd01f51f648c1fdd8f3c9d07195d3",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "832a685efeb5d925ee7d30011d2dbe45f81447a3",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "7fa3f73f6c8ddc5f0425b50fb2a626a782ef7d12",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-tcp: reject a read that transferred too few bytes\n\nnvme_tcp_recv_data() completes a request once the current C2HData PDU\nhas been consumed. Nothing compares the total bytes received against\nthe length the command asked for: struct nvme_tcp_request has no\nreceive-side counter, queue-\u003edata_remaining is per queue, and\nblk_mq_end_request() completes for blk_rq_bytes(rq) unconditionally\nwith no residual concept anywhere above.\n\nA controller can therefore answer a 4096-byte read with 512 bytes and\nhave it reported as a complete read; user space then gets 4096 bytes of\nwhich 3584 are whatever was already in the page. I reproduced that with\na test target.\n\nCount the bytes received and refuse to complete a successful read whose\ncount does not match, at the two NVME_TCP_F_DATA_SUCCESS paths and in\nnvme_tcp_process_nvme_cqe(). The success test shifts req-\u003estatus right\nby one, because the driver keeps the wire value there and shifts it on\ncompletion, so the check must see what the completion path will see.\nOnly REQ_OP_READ is checked, because there the length comes from the\nsectors the request covers; a passthrough command is built by its\nsubmitter, which picks both command and buffer, so the kernel has\nnothing to compare against."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - C2HData is parsed on the nvme-tcp host socket path (nvme_tcp_data_ready -\u003e nvme_tcp_try_recv -\u003e nvme_tcp_recv_skb -\u003e nvme_tcp_recv_data) over routable TCP (typically 4420). A malicious or compromised NVMe-oF target, or an on-path injector into the default-unencrypted stream, triggers it from the network.\nAC:L - nvme_tcp_handle_c2h_data() sets queue-\u003edata_remaining from the attacker-controlled PDU data_length with no comparison to req-\u003edata_len. A short or zero-length C2HData with NVME_TCP_F_DATA_SUCCESS, or a short C2HData plus a success CQE, completes the read every time; no race or layout dependence.\nPR:N - The attacker is the NVMe-oF peer and needs no host account or capability. NVMe/TCP is unauthenticated by default (DH-HMAC-CHAP and TLS are optional), so a malicious, compromised, or spoofed target can short any in-flight read once the fabrics connection exists.\nUI:N - NVMe-oF controllers are persistent boot/autoconnect configuration and are re-established by nvme_tcp_error_recovery(). Namespace scan, partition probe, udev, and mounted-filesystem readahead issue REQ_OP_READ from kernel work without further victim action at attack time.\nS:U - Leftover host page-cache and buddy-page contents are exposed to local readers of the same kernel\u0027s NVMe device. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - blk_mq_end_request() completes the full blk_rq_bytes, so userspace and page cache see leftover destination-page bytes as valid data. Those pages are not zeroed; sibling CVE-2026-89481 showed they hold stale kernel data including struct page pointers. Leak size is attacker-chosen up to the whole I/O, including a 0-length SUCCESS PDU.\nI:N - The bug under-fills the bio and reports success; it does not write out of bounds, free an object, or give a kernel write/hijack primitive. Bytes the target does send are data a storage controller already controls, and leftover bytes are prior page contents rather than attacker-chosen writes.\nA:N - The vulnerable path completes the request as success with no oops, panic, hang, deadlock, or leak. Availability of the host kernel is unaffected; error recovery (-EPROTO) exists only after the fix."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:29.641Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a5c1bb0fb1bab2f24a081339c145870697f6d220"
},
{
"url": "https://git.kernel.org/stable/c/aa107e3a68f4af177d60f2d87679e7f67179a36c"
},
{
"url": "https://git.kernel.org/stable/c/fca3ebb63e5c82561cd9934365dcc0d068008006"
},
{
"url": "https://git.kernel.org/stable/c/99066cf9bba175f610ceb61a35f6fc9fbc33ff65"
},
{
"url": "https://git.kernel.org/stable/c/8a02ad98798fd01f51f648c1fdd8f3c9d07195d3"
},
{
"url": "https://git.kernel.org/stable/c/832a685efeb5d925ee7d30011d2dbe45f81447a3"
},
{
"url": "https://git.kernel.org/stable/c/7fa3f73f6c8ddc5f0425b50fb2a626a782ef7d12"
}
],
"title": "nvme-tcp: reject a read that transferred too few bytes",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89480",
"datePublished": "2026-09-11T19:43:35.930Z",
"dateReserved": "2026-09-11T19:38:34.711Z",
"dateUpdated": "2026-10-19T08:47:29.641Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80714 (GCVE-0-2026-80714)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipvs: do not propagate one-packet flag to synced conns
Synced connections can be created before their destination exists. When
the destination is later added, ip_vs_bind_dest() copies connection flags
from the destination into cp->flags.
IP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced
connection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed,
expiry can treat it as a one-packet connection and skip unlinking the
existing conn_tab node, leaving stale hash nodes pointing at a freed
struct ip_vs_conn.
Drop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced
connections.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80714",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:20:40.726937Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:34.808Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "06d1d9b56ef8132fbf85006885eb43d9510b8b02",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "acbdc276091b308ca7794acb86e761f8203e2f59",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "300348e3ba1521b003d59825f97e24f9a6859688",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "44af98cc7d5ef8e730488d5df1eecd5deeaa5947",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "4649e6faeecdc2d44bfa6ccbe405eef27e55d816",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "b5ee5b266f833601ac4817f6df0bc496fc376a28",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "e7acfc990c29890c883d0d0ce3f737d003a43b44",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "a63d2dbaeb50a85d4c976b15a36e6b0c7113db5b",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.36"
},
{
"lessThan": "2.6.36",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.36",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: do not propagate one-packet flag to synced conns\n\nSynced connections can be created before their destination exists. When\nthe destination is later added, ip_vs_bind_dest() copies connection flags\nfrom the destination into cp-\u003eflags.\n\nIP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced\nconnection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed,\nexpiry can treat it as a one-packet connection and skip unlinking the\nexisting conn_tab node, leaving stale hash nodes pointing at a freed\nstruct ip_vs_conn.\n\nDrop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced\nconnections."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached on IPVS backup nodes processing UDP sync datagrams in ip_vs_process_message()/ip_vs_proc_conn() (default multicast 224.0.0.81:8848), and on internet-facing load balancers client UDP traffic drives master sync that creates the hashed backup connection before destination bind.\nAC:L - An attacker can reliably inject or refresh IPVS sync records for UDP connections whose destination is not yet present, then trigger ip_vs_try_bind_dest() once a ONEPACKET destination exists; only optional syncid filtering (often 0) is outside attacker control, and connection expiry is timer-driven without a race.\nPR:N - The backup sync receiver accepts unauthenticated UDP multicast with no capability checks in ip_vs_receive()/ip_vs_process_message(); configuring IPVS/ONEPACKET is an environmental precondition on HA load balancers, not a privilege the remote attacker must hold on the victim host.\nUI:N - Exploitation requires no victim or administrator action at trigger time beyond normal HA IPVS operation; forged or reflected sync traffic and subsequent connection expiry directly invoke the vulnerable bind/unlink path without user interaction.\nS:U - Impact is confined to the kernel IPVS connection table on the affected load-balancer node (stale hash entries to a freed struct ip_vs_conn); it does not cross a VM, container, or IOMMU security boundary.\nC:H - Incorrect ONE_PACKET handling leaves hashed conn_tab nodes pointing at a freed struct ip_vs_conn; subsequent lookups in __ip_vs_conn_in_get() dereference freed slab memory, giving a use-after-free read primitive and potential kernel pointer/data disclosure.\nI:H - The same use-after-free lets attackers influence reuse of the freed ip_vs_conn object and corrupt connection state during later hash-table operations, enabling memory corruption exploitable for arbitrary kernel writes or control-flow hijacking.\nA:H - Dereferencing stale conn_tab entries for a freed connection causes kernel oops/panic; the condition is repeatable by sending additional sync traffic to recreate and expire affected UDP synced connections on the backup node."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:30.808Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/06d1d9b56ef8132fbf85006885eb43d9510b8b02"
},
{
"url": "https://git.kernel.org/stable/c/acbdc276091b308ca7794acb86e761f8203e2f59"
},
{
"url": "https://git.kernel.org/stable/c/300348e3ba1521b003d59825f97e24f9a6859688"
},
{
"url": "https://git.kernel.org/stable/c/44af98cc7d5ef8e730488d5df1eecd5deeaa5947"
},
{
"url": "https://git.kernel.org/stable/c/4649e6faeecdc2d44bfa6ccbe405eef27e55d816"
},
{
"url": "https://git.kernel.org/stable/c/b5ee5b266f833601ac4817f6df0bc496fc376a28"
},
{
"url": "https://git.kernel.org/stable/c/e7acfc990c29890c883d0d0ce3f737d003a43b44"
},
{
"url": "https://git.kernel.org/stable/c/a63d2dbaeb50a85d4c976b15a36e6b0c7113db5b"
}
],
"title": "ipvs: do not propagate one-packet flag to synced conns",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80714",
"datePublished": "2026-08-28T06:53:13.069Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-10-16T19:26:34.808Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72164 (GCVE-0-2026-72164)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: avoid moving extents to occupied clusters
For non-auto OCFS2_IOC_MOVE_EXT operations, userspace supplies a physical
me_goal. ocfs2_move_extent() initializes new_phys_cpos from that goal and
expects ocfs2_probe_alloc_group() to replace it with a free run in the
target block group.
The probe currently leaves *phys_cpos unchanged if the scan reaches the
end of the group without finding a free run. An occupied goal at the last
bit can therefore survive the probe and be passed to
__ocfs2_move_extent(), which copies file data into a cluster still owned
by another inode before the bitmap is updated.
When the probe does find a free run, it also subtracts move_len from the
ending bit. The start of an N-bit run ending at i is i - N + 1, so the
current calculation can report the bit immediately before the free run.
Clear *phys_cpos before scanning and use the correct free-run start.
Callers already treat a zero result as -ENOSPC, so failed probes no longer
continue with an occupied caller-controlled goal.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 Version: e6b5859cccfa0fec02f3c5b1069481efc7186f47 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72164",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:43:10.262778Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:59.778Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/move_extents.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3112afebf2a76e522fbaabcbb0c47aafbdc35932",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "35486b291b8fbde6c4d0b1c79e565c6260d3329d",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "19f7b04924b20b81dabbeed19d5542792ba5b6d6",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "e281d892ce5870a50fdc718cb3bfc3dd5b62c728",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "0d0c5c17b18bdbc592ac26ab4d1de7e3dbf9be1e",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "d5d5a21fb33cd9b963aea99da81e4dacd452cd95",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "4d1953d3aeb4a7f6623083e1839068ee1c157db2",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
},
{
"lessThan": "22920541c35a9f23f219038ba5874c843a7c4419",
"status": "affected",
"version": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/move_extents.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.0"
},
{
"lessThan": "3.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: avoid moving extents to occupied clusters\n\nFor non-auto OCFS2_IOC_MOVE_EXT operations, userspace supplies a physical\nme_goal. ocfs2_move_extent() initializes new_phys_cpos from that goal and\nexpects ocfs2_probe_alloc_group() to replace it with a free run in the\ntarget block group.\n\nThe probe currently leaves *phys_cpos unchanged if the scan reaches the\nend of the group without finding a free run. An occupied goal at the last\nbit can therefore survive the probe and be passed to\n__ocfs2_move_extent(), which copies file data into a cluster still owned\nby another inode before the bitmap is updated.\n\nWhen the probe does find a free run, it also subtracts move_len from the\nending bit. The start of an N-bit run ending at i is i - N + 1, so the\ncurrent calculation can report the bit immediately before the free run.\n\nClear *phys_cpos before scanning and use the correct free-run start. \nCallers already treat a zero result as -ENOSPC, so failed probes no longer\ncontinue with an occupied caller-controlled goal."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires the OCFS2_IOC_MOVE_EXT ioctl on a locally mounted ocfs2 volume via sys_ioctl\u2192vfs_ioctl\u2192ocfs2_ioctl; OCFS2 has no network-facing handler exposing this code path.\nAC:L - The attacker fully controls me_goal and move length on the non-auto path; an occupied goal at the end of an alloc group deterministically bypasses ocfs2_probe_alloc_group() and reaches __ocfs2_move_extent() with no races or external preconditions.\nPR:L - OCFS2_IOC_MOVE_EXT performs no capable() check (unlike FITRIM); any local user with FMODE_WRITE on a regular file on an ocfs2 mount can invoke ioctl(), including root inside a user namespace per kernel CNA guidance.\nUI:N - The attacker issues OCFS2_IOC_MOVE_EXT on their own writable fd with crafted parameters; no victim interaction or third-party action is required beyond the enterprise ocfs2 mount already being present.\nS:U - Impact is confined to on-disk data corruption and filesystem availability within the same cluster node/kernel authority; it does not cross VM, container, or IOMMU security boundaries.\nC:H - __ocfs2_move_extent() copies into clusters still allocated to other inodes, creating cross-file block aliasing on shared cluster storage so later reads through the new extent can return another tenant\u0027s or root-owned file contents.\nI:H - ocfs2_duplicate_clusters_by_page() writes attacker-controlled file data into physical clusters owned by other inodes before the bitmap is updated, enabling arbitrary corruption of files the attacker lacks write permission to on shared OCFS2 storage.\nA:H - Dual allocation and bitmap/extent inconsistency can trigger ocfs2_error(), forcing remount-ro or panic on the node and corrupting shared storage in ways that impair availability for all cluster members until fsck.ocfs2."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:41:06.039Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3112afebf2a76e522fbaabcbb0c47aafbdc35932"
},
{
"url": "https://git.kernel.org/stable/c/35486b291b8fbde6c4d0b1c79e565c6260d3329d"
},
{
"url": "https://git.kernel.org/stable/c/19f7b04924b20b81dabbeed19d5542792ba5b6d6"
},
{
"url": "https://git.kernel.org/stable/c/e281d892ce5870a50fdc718cb3bfc3dd5b62c728"
},
{
"url": "https://git.kernel.org/stable/c/0d0c5c17b18bdbc592ac26ab4d1de7e3dbf9be1e"
},
{
"url": "https://git.kernel.org/stable/c/d5d5a21fb33cd9b963aea99da81e4dacd452cd95"
},
{
"url": "https://git.kernel.org/stable/c/4d1953d3aeb4a7f6623083e1839068ee1c157db2"
},
{
"url": "https://git.kernel.org/stable/c/22920541c35a9f23f219038ba5874c843a7c4419"
}
],
"title": "ocfs2: avoid moving extents to occupied clusters",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72164",
"datePublished": "2026-08-15T05:53:31.901Z",
"dateReserved": "2026-08-09T03:40:39.909Z",
"dateUpdated": "2026-10-16T18:44:59.778Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-23128 (GCVE-0-2026-23128)
Vulnerability from cvelistv5
Published
2026-02-14 15:09
Modified
2026-10-19 18:25
Severity ?
VLAI Severity ?
EPSS score ?
Summary
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]
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-23128",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-10T20:42:10.523806Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "CWE-476 NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T18:25:32.703Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/arm64/kernel/hibernate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "122b7cb80f7d468fcc2d18cf7eb320f09f310a96",
"status": "affected",
"version": "89245600941e4e0f87d77f60ee269b5e61ef4e49",
"versionType": "git"
},
{
"lessThan": "8557bdd9af8dd04911fba56ff92b17842b0b5c7f",
"status": "affected",
"version": "89245600941e4e0f87d77f60ee269b5e61ef4e49",
"versionType": "git"
},
{
"lessThan": "9773a886f26766a8db92d4b342b620a82c2de7dd",
"status": "affected",
"version": "89245600941e4e0f87d77f60ee269b5e61ef4e49",
"versionType": "git"
},
{
"lessThan": "6e32070d29d1a35d8f4b3c03babf6c0e5efd1d08",
"status": "affected",
"version": "89245600941e4e0f87d77f60ee269b5e61ef4e49",
"versionType": "git"
},
{
"lessThan": "e2f8216ca2d8e61a23cb6ec355616339667e0ba6",
"status": "affected",
"version": "89245600941e4e0f87d77f60ee269b5e61ef4e49",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/arm64/kernel/hibernate.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.162",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.122",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.68",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.19",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.162",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.122",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.68",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.8",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\narm64: Set __nocfi on swsusp_arch_resume()\n\nA DABT is reported[1] on an android based system when resume from hiberate.\nThis happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*()\nand does not have a CFI hash, but swsusp_arch_resume() will attempt to\nverify the CFI hash when calling a copy of swsusp_arch_suspend_exit().\n\nGiven that there\u0027s an existing requirement that the entrypoint to\nswsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text\nsection, we cannot fix this by marking swsusp_arch_suspend_exit() with\nSYM_FUNC_*(). The simplest fix for now is to disable the CFI check in\nswsusp_arch_resume().\n\nMark swsusp_arch_resume() as __nocfi to disable the CFI check.\n\n[1]\n[ 22.991934][ T1] Unable to handle kernel paging request at virtual address 0000000109170ffc\n[ 22.991934][ T1] Mem abort info:\n[ 22.991934][ T1] ESR = 0x0000000096000007\n[ 22.991934][ T1] EC = 0x25: DABT (current EL), IL = 32 bits\n[ 22.991934][ T1] SET = 0, FnV = 0\n[ 22.991934][ T1] EA = 0, S1PTW = 0\n[ 22.991934][ T1] FSC = 0x07: level 3 translation fault\n[ 22.991934][ T1] Data abort info:\n[ 22.991934][ T1] ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000\n[ 22.991934][ T1] CM = 0, WnR = 0, TnD = 0, TagAccess = 0\n[ 22.991934][ T1] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0\n[ 22.991934][ T1] [0000000109170ffc] user address but active_mm is swapper\n[ 22.991934][ T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP\n[ 22.991934][ T1] Dumping ftrace buffer:\n[ 22.991934][ T1] (ftrace buffer empty)\n[ 22.991934][ T1] Modules linked in:\n[ 22.991934][ T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419\n[ 22.991934][ T1] Hardware name: Unisoc UMS9360-base Board (DT)\n[ 22.991934][ T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n[ 22.991934][ T1] pc : swsusp_arch_resume+0x2ac/0x344\n[ 22.991934][ T1] lr : swsusp_arch_resume+0x294/0x344\n[ 22.991934][ T1] sp : ffffffc08006b960\n[ 22.991934][ T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000\n[ 22.991934][ T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820\n[ 22.991934][ T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000\n[ 22.991934][ T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058\n[ 22.991934][ T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004\n[ 22.991934][ T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000\n[ 22.991934][ T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000\n[ 22.991934][ T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b\n[ 22.991934][ T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530\n[ 22.991934][ T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000\n[ 22.991934][ T1] Call trace:\n[ 22.991934][ T1] swsusp_arch_resume+0x2ac/0x344\n[ 22.991934][ T1] hibernation_restore+0x158/0x18c\n[ 22.991934][ T1] load_image_and_restore+0xb0/0xec\n[ 22.991934][ T1] software_resume+0xf4/0x19c\n[ 22.991934][ T1] software_resume_initcall+0x34/0x78\n[ 22.991934][ T1] do_one_initcall+0xe8/0x370\n[ 22.991934][ T1] do_initcall_level+0xc8/0x19c\n[ 22.991934][ T1] do_initcalls+0x70/0xc0\n[ 22.991934][ T1] do_basic_setup+0x1c/0x28\n[ 22.991934][ T1] kernel_init_freeable+0xe0/0x148\n[ 22.991934][ T1] kernel_init+0x20/0x1a8\n[ 22.991934][ T1] ret_from_fork+0x10/0x20\n[ 22.991934][ T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)\n\n[catalin.marinas@arm.com: commit log updated by Mark Rutland]"
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:00:40.280Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/122b7cb80f7d468fcc2d18cf7eb320f09f310a96"
},
{
"url": "https://git.kernel.org/stable/c/8557bdd9af8dd04911fba56ff92b17842b0b5c7f"
},
{
"url": "https://git.kernel.org/stable/c/9773a886f26766a8db92d4b342b620a82c2de7dd"
},
{
"url": "https://git.kernel.org/stable/c/6e32070d29d1a35d8f4b3c03babf6c0e5efd1d08"
},
{
"url": "https://git.kernel.org/stable/c/e2f8216ca2d8e61a23cb6ec355616339667e0ba6"
}
],
"title": "arm64: Set __nocfi on swsusp_arch_resume()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-23128",
"datePublished": "2026-02-14T15:09:56.916Z",
"dateReserved": "2026-01-13T15:37:45.970Z",
"dateUpdated": "2026-10-19T18:25:32.703Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90065 (GCVE-0-2026-90065)
Vulnerability from cvelistv5
Published
2026-09-17 16:05
Modified
2026-10-19 08:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: release the internal TCP sock on IPPROTO_SMC socket creation failure
IPPROTO_SMC sockets create an internal TCP sock ("clcsock") from the
proto->init hook. When socket creation fails after proto->init has
run - e.g. a cgroup BPF program attached to BPF_CGROUP_INET_SOCK_CREATE
denies the socket - sk_common_release() only invokes sk_prot->destroy
if it is set, but neither smc_inet_prot nor smc_inet6_prot defines it,
and smc_destruct() returns early unless sk_state is SMC_CLOSED. As a
result, every failing socket(AF_INET, SOCK_STREAM, IPPROTO_SMC) call
leaks one tcp_sock, so an unprivileged task able to attach a deny-all
BPF_CGROUP_INET_SOCK_CREATE program to its own cgroup can grow kernel
memory unboundedly.
Add a .destroy hook to both protos that releases the clcsock via
smc_clcsock_release(). smc_sk_init() hashes the sock into the smc
hashinfo before the clcsock is created, and smc_diag dumps walk that
hash dereferencing smc->clcsock without taking clcsock_release_lock,
while sk_common_release() calls .destroy before .unhash. Unhash the
sock before releasing the clcsock, as __smc_release() does, so a
concurrent dump cannot observe the release; the second unhash in
sk_common_release() is a no-op.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_inet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2f4ece7fed6d915ec64b7735962c0d84d6261032",
"status": "affected",
"version": "d25a92ccae6bed02327b63d138e12e7806830f78",
"versionType": "git"
},
{
"lessThan": "84180988a455fd8e147c6b35c8df65d8b8cc76c2",
"status": "affected",
"version": "d25a92ccae6bed02327b63d138e12e7806830f78",
"versionType": "git"
},
{
"lessThan": "94a913cd521c0f0408820bcdbd80dadf076d97b5",
"status": "affected",
"version": "d25a92ccae6bed02327b63d138e12e7806830f78",
"versionType": "git"
},
{
"lessThan": "cec261b0b4c5c0b044165303198d10ffcdf3414c",
"status": "affected",
"version": "d25a92ccae6bed02327b63d138e12e7806830f78",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_inet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: release the internal TCP sock on IPPROTO_SMC socket creation failure\n\nIPPROTO_SMC sockets create an internal TCP sock (\"clcsock\") from the\nproto-\u003einit hook. When socket creation fails after proto-\u003einit has\nrun - e.g. a cgroup BPF program attached to BPF_CGROUP_INET_SOCK_CREATE\ndenies the socket - sk_common_release() only invokes sk_prot-\u003edestroy\nif it is set, but neither smc_inet_prot nor smc_inet6_prot defines it,\nand smc_destruct() returns early unless sk_state is SMC_CLOSED. As a\nresult, every failing socket(AF_INET, SOCK_STREAM, IPPROTO_SMC) call\nleaks one tcp_sock, so an unprivileged task able to attach a deny-all\nBPF_CGROUP_INET_SOCK_CREATE program to its own cgroup can grow kernel\nmemory unboundedly.\n\nAdd a .destroy hook to both protos that releases the clcsock via\nsmc_clcsock_release(). smc_sk_init() hashes the sock into the smc\nhashinfo before the clcsock is created, and smc_diag dumps walk that\nhash dereferencing smc-\u003eclcsock without taking clcsock_release_lock,\nwhile sk_common_release() calls .destroy before .unhash. Unhash the\nsock before releasing the clcsock, as __smc_release() does, so a\nconcurrent dump cannot observe the release; the second unhash in\nsk_common_release() is a no-op."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:57:22.598Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2f4ece7fed6d915ec64b7735962c0d84d6261032"
},
{
"url": "https://git.kernel.org/stable/c/84180988a455fd8e147c6b35c8df65d8b8cc76c2"
},
{
"url": "https://git.kernel.org/stable/c/94a913cd521c0f0408820bcdbd80dadf076d97b5"
},
{
"url": "https://git.kernel.org/stable/c/cec261b0b4c5c0b044165303198d10ffcdf3414c"
}
],
"title": "net/smc: release the internal TCP sock on IPPROTO_SMC socket creation failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90065",
"datePublished": "2026-09-17T16:05:48.269Z",
"dateReserved": "2026-09-11T19:38:34.784Z",
"dateUpdated": "2026-10-19T08:57:22.598Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90309 (GCVE-0-2026-90309)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/erdma: Hold CQ references when processing EQ events
EQ handlers look up CQs from dev->cq_xa and invoke CQ completion or
error callbacks outside the xarray lock. erdma_destroy_cq() can erase the
CQ from the xarray and free its queue buffer and doorbell record while a
previously scheduled EQ handler is still using the CQ.
Add a CQ refcount and take a reference under the xarray lock with
refcount_inc_not_zero(). Remove the CQ from the xarray before dropping
the destroy-path reference, then wait for in-flight EQ users before
releasing CQ resources.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 155055771704f8cbb5c176a4309b7dc30a50450c Version: 155055771704f8cbb5c176a4309b7dc30a50450c Version: 155055771704f8cbb5c176a4309b7dc30a50450c Version: 155055771704f8cbb5c176a4309b7dc30a50450c Version: 155055771704f8cbb5c176a4309b7dc30a50450c Version: 155055771704f8cbb5c176a4309b7dc30a50450c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_eq.c",
"drivers/infiniband/hw/erdma/erdma_verbs.c",
"drivers/infiniband/hw/erdma/erdma_verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "610ef81797bb4f709e8675c1d8d093bb9ccdcbd8",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "c0a83f29a24c7e7f8516630848ef6db4c174deed",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "05b8ca493dd02319bca93c640b259c2ba51ef321",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "1fc9c1933959d2776a1ce7bf424251b8b5b586cd",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "4545f355654d044d35a31cd01cc46f491a8a7c36",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "98df2aee1459ee1c62c70cbe9b370d2a532aea36",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_eq.c",
"drivers/infiniband/hw/erdma/erdma_verbs.c",
"drivers/infiniband/hw/erdma/erdma_verbs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/erdma: Hold CQ references when processing EQ events\n\nEQ handlers look up CQs from dev-\u003ecq_xa and invoke CQ completion or\nerror callbacks outside the xarray lock. erdma_destroy_cq() can erase the\nCQ from the xarray and free its queue buffer and doorbell record while a\npreviously scheduled EQ handler is still using the CQ.\n\nAdd a CQ refcount and take a reference under the xarray lock with\nrefcount_inc_not_zero(). Remove the CQ from the xarray before dropping\nthe destroy-path reference, then wait for in-flight EQ users before\nreleasing CQ resources."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached by IB_USER_VERBS_CMD_DESTROY_CQ/UVERBS_METHOD_CQ_DESTROY on /dev/infiniband/uverbsN racing erdma_ceq_completion_handler and erdma_aeq_event_handler; CEQE/AEQE CQNs are written by the ERDMA NIC for locally created CQs, not parsed from a remote RoCE/iWARP message.\nAC:L - The attacker drives both sides: userspace SQ/RQ doorbells via erdma_mmap (or ib_uverbs_post_send) make the NIC post CEQEs and schedule the CEQ tasklet, while another thread runs ib_uverbs_destroy_cq; pre-fix erdma_destroy_cq xa_erase\u0027d the CQ with no ref wait, so the race is attacker-controlled.\nPR:L - ib_uverbs_open allows CQ create/destroy with no capability check; uverbs_devnode sets /dev/infiniband/uverbsN to mode 0666, and erdma_alloc_ucontext/erdma_create_cq/erdma_destroy_cq do not require CAP_NET_ADMIN or init-namespace root.\nUI:N - The attacker creates the CQ via ib_uverbs_create_cq, generates EQ events from their own QPs, and tears it down via ib_uverbs_destroy_cq/uverbs_free_cq on that uverbs fd; no other user must mount, open a file, or otherwise act.\nS:U - The dangling erdma_cq is used inside the same host kernel that issued the uverbs destroy (comp_handler/event_handler on ibcq); this is in-kernel privilege escalation, not a KVM/Xen guest-to-host or IOMMU/DMA boundary bypass.\nC:H - After ib_destroy_cq_user kfree(cq), erdma_ceq_completion_handler still reads cq-\u003eibcq.comp_handler and cq-\u003eibcq.cq_context from the freed object, and ib_uverbs_comp_handler then follows cq-\u003euobject, giving a UAF read of kernel heap.\nI:H - The same dangling pointer is used to invoke cq-\u003eibcq.comp_handler (and on AEQ CQ_ERR, cq-\u003eibcq.event_handler); kernel CQs also do cq-\u003ekern_cq.cmdsn++. Calling a function pointer from a freed erdma_cq is an arbitrary-write/control-flow hijack primitive.\nA:H - erdma_ceq_completion_handler or erdma_aeq_event_handler dereferencing the kfree\u0027d erdma_cq (junk comp_handler/uobject) oopses the kernel, and repeating create_cq/destroy_cq while CEQ/AEQ events are in flight panics the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:26.909Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/610ef81797bb4f709e8675c1d8d093bb9ccdcbd8"
},
{
"url": "https://git.kernel.org/stable/c/c0a83f29a24c7e7f8516630848ef6db4c174deed"
},
{
"url": "https://git.kernel.org/stable/c/05b8ca493dd02319bca93c640b259c2ba51ef321"
},
{
"url": "https://git.kernel.org/stable/c/1fc9c1933959d2776a1ce7bf424251b8b5b586cd"
},
{
"url": "https://git.kernel.org/stable/c/4545f355654d044d35a31cd01cc46f491a8a7c36"
},
{
"url": "https://git.kernel.org/stable/c/98df2aee1459ee1c62c70cbe9b370d2a532aea36"
}
],
"title": "RDMA/erdma: Hold CQ references when processing EQ events",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90309",
"datePublished": "2026-09-17T16:08:30.346Z",
"dateReserved": "2026-09-11T19:38:34.800Z",
"dateUpdated": "2026-10-19T09:01:26.909Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74281 (GCVE-0-2026-74281)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: reject inverted service ranges from peer bindings
tipc_update_nametbl() inserts a binding advertised by a peer node using
the lower and upper service-range bounds taken directly from the wire,
without checking that lower <= upper. The local bind path validates the
ordering (tipc_uaddr_valid()), but the name-distribution path does not.
A binding with lower > upper is inserted at the far end of the
service-range rbtree (keyed on lower) where no lookup or withdrawal can
ever match it (service_range_foreach_match() requires sr->lower <= end).
The publication, its service_range node and the augmented rbtree entry
are then leaked for the lifetime of the namespace, and there is no
per-peer cap equivalent to TIPC_MAX_PUBL on locally created bindings.
Reject inverted ranges in the network path as well. A peer node can
otherwise leak unbounded binding-table memory by sending PUBLICATION
items with lower > upper.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a Version: 37922ea4a3105176357c8d565a9d982c4a08714a |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74281",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:04.430800Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:29.746Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/name_distr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cd1955f81bd8ebeef51b324989ac871ad1947fb6",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "f683200b83a0085d4e11abea8c1fdd9fdfb95b0b",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "f1715d92ee3095d9215b493a8603a81f646fcf61",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "581ef56e5c34d475056ce086dc2ba0e872ba6857",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "7e401233f9bb74a626e70698d0d62f3a94ac0676",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "973bf0ed896b9898668dbadb82ed849d7d573010",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
},
{
"lessThan": "2afb648f7b99216c687db1f89739c995e1144153",
"status": "affected",
"version": "37922ea4a3105176357c8d565a9d982c4a08714a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/name_distr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: reject inverted service ranges from peer bindings\n\ntipc_update_nametbl() inserts a binding advertised by a peer node using\nthe lower and upper service-range bounds taken directly from the wire,\nwithout checking that lower \u003c= upper. The local bind path validates the\nordering (tipc_uaddr_valid()), but the name-distribution path does not.\n\nA binding with lower \u003e upper is inserted at the far end of the\nservice-range rbtree (keyed on lower) where no lookup or withdrawal can\never match it (service_range_foreach_match() requires sr-\u003elower \u003c= end).\nThe publication, its service_range node and the augmented rbtree entry\nare then leaked for the lifetime of the namespace, and there is no\nper-peer cap equivalent to TIPC_MAX_PUBL on locally created bindings.\n\nReject inverted ranges in the network path as well. A peer node can\notherwise leak unbounded binding-table memory by sending PUBLICATION\nitems with lower \u003e upper."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - NAME_DISTRIBUTOR PUBLICATION messages from a remote TIPC peer are processed via tipc_rcv/tipc_link_rcv into tipc_named_rcv with no local syscall, matching Network attack vector for in-kernel protocol handlers.\nAC:L - Sending PUBLICATION items with lower\u003eupper reliably triggers permanent leaked binding-table entries; attacker controls both ends of the exchange over an established link with no race or victim-dependent timing.\nPR:N - A malicious or compromised cluster peer can send crafted name-table updates without any account or capability on the victim; TIPC accepts peer publications after normal link setup without per-message authentication by default.\nUI:N - Victim nodes ingest peer binding advertisements automatically during TIPC name distribution; no administrator or user action is required beyond routine cluster connectivity.\nS:U - The flaw only causes unreachable kernel heap growth in the victim\u0027s network namespace and does not cross VM, container, or IOMMU security boundaries.\nC:N - The issue is allocation without corresponding free of publication/service_range objects; it does not read or disclose kernel or user data beyond attacker-chosen binding fields.\nI:N - Inverted ranges create orphaned nametable metadata without corrupting adjacent memory or modifying legitimate bindings, sockets, or user data.\nA:H - Each unique inverted publication permanently leaks publication, service_range, and rbtree nodes with no per-peer cap and failed cleanup on peer loss/withdrawal, enabling repeatable remote kernel memory exhaustion and OOM."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:22.291Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cd1955f81bd8ebeef51b324989ac871ad1947fb6"
},
{
"url": "https://git.kernel.org/stable/c/f683200b83a0085d4e11abea8c1fdd9fdfb95b0b"
},
{
"url": "https://git.kernel.org/stable/c/f1715d92ee3095d9215b493a8603a81f646fcf61"
},
{
"url": "https://git.kernel.org/stable/c/581ef56e5c34d475056ce086dc2ba0e872ba6857"
},
{
"url": "https://git.kernel.org/stable/c/7e401233f9bb74a626e70698d0d62f3a94ac0676"
},
{
"url": "https://git.kernel.org/stable/c/973bf0ed896b9898668dbadb82ed849d7d573010"
},
{
"url": "https://git.kernel.org/stable/c/2afb648f7b99216c687db1f89739c995e1144153"
}
],
"title": "tipc: reject inverted service ranges from peer bindings",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74281",
"datePublished": "2026-08-15T05:57:51.423Z",
"dateReserved": "2026-08-15T05:44:03.880Z",
"dateUpdated": "2026-10-16T18:55:29.746Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89500 (GCVE-0-2026-89500)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Make cpu_buffer::free_page a buffer_data_read_page
Discarding a cached reader page after a concurrent ring buffer resize
uses the new global subbuf_order for the free_pages() call. This
mismatched order may crashes the kernel or leaks memory because the cached
page was allocated under the old size.
Save the actual free_page order alongside the page address to ensure we
always refer to the correct value and do not rely on the potentially
stalled cpu_buffer->subbuf_order value. The simplest is to make
free_page a buffer_data_read_page which already covers exactly what we
need: a page address and a page order.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d8f52dc3c3f1f987d8cf920ccd8d66590870bf3f",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "a1dabe68fb53730bc0be60c5dbfd3f4c560084e7",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "d787d509bdf6c88c85e095247daf7456cb7fb772",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
},
{
"lessThan": "7a1fb95de5404134f8758c1295ce88986bdf117c",
"status": "affected",
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Make cpu_buffer::free_page a buffer_data_read_page\n\nDiscarding a cached reader page after a concurrent ring buffer resize\nuses the new global subbuf_order for the free_pages() call. This\nmismatched order may crashes the kernel or leaks memory because the cached\npage was allocated under the old size.\n\nSave the actual free_page order alongside the page address to ensure we\nalways refer to the correct value and do not rely on the potentially\nstalled cpu_buffer-\u003esubbuf_order value. The simplest is to make\nfree_page a buffer_data_read_page which already covers exactly what we\nneed: a page address and a page order."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local tracefs: write() to buffer_subbuf_size_kb (buffer_subbuf_size_write -\u003e ring_buffer_subbuf_order_set) racing read/splice/close of per_cpu/cpuN/trace_pipe_raw (ring_buffer_alloc_read_page / ring_buffer_free_read_page) or instance rmdir (rb_free_cpu_buffer). No network, adjacent-radio, or physical path exists.\nAC:L - The attacker owns both sides of the race: one thread toggles buffer_subbuf_size_kb while another caches or discards a reader page via trace_pipe_raw. The window includes synchronize_rcu() and GFP_KERNEL allocation of every new sub-buffer, so the mismatch is reliably retryable with no condition outside attacker control.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC, with no capable() check. buffer_subbuf_size_kb is 0640 and trace_pipe_raw is 0440; Android/Perfetto, ChromeOS, and distro tracing groups routinely delegate these to unprivileged accounts, matching CVE-2024-50207, CVE-2025-38101, and CVE-2026-74634.\nUI:N - Exploitation uses the attacker\u0027s own file descriptors and threads (write buffer_subbuf_size_kb, read/close trace_pipe_raw, optional instance rmdir). No separate victim mount, click, or configuration action is required.\nS:U - Wrong-order free_pages() and reuse of a cached reader page corrupt kernel ring-buffer and buddy-allocator pages within the same OS security authority. This enables local privilege escalation but does not cross VM, IOMMU, container, or hardware trust boundaries.\nC:H - cpu_buffer-\u003efree_page stored no allocation order, so a cached page allocated under the old subbuf size can be discarded or reused with the new order. Over-free and undersized-page swap are page UAF/OOB reads; recycled buddy pages and ring-buffer contents can be disclosed through subsequent trace_pipe_raw reads.\nI:H - free_pages() with a larger-than-allocated order returns neighboring in-use pages to the buddy allocator (page UAF/write). ring_buffer_read_page() can also swap that undersized cached page into the live writer path, producing out-of-bounds kernel stores exploitable for control-flow hijack.\nA:H - Mismatched-order free_pages() corrupts the buddy allocator and the commit states this may crash the kernel; UAF/OOB on ring-buffer pages also oops/panic. The attacker chooses the order delta via buffer_subbuf_size_kb and can retrigger the race at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:51.845Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d8f52dc3c3f1f987d8cf920ccd8d66590870bf3f"
},
{
"url": "https://git.kernel.org/stable/c/a1dabe68fb53730bc0be60c5dbfd3f4c560084e7"
},
{
"url": "https://git.kernel.org/stable/c/d787d509bdf6c88c85e095247daf7456cb7fb772"
},
{
"url": "https://git.kernel.org/stable/c/7a1fb95de5404134f8758c1295ce88986bdf117c"
}
],
"title": "ring-buffer: Make cpu_buffer::free_page a buffer_data_read_page",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89500",
"datePublished": "2026-09-11T19:43:49.392Z",
"dateReserved": "2026-09-11T19:38:34.715Z",
"dateUpdated": "2026-10-19T08:47:51.845Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93108 (GCVE-0-2026-93108)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/ipoib: Drain RCU callbacks during module teardown
IPoIB reclamation completions can be signaled from inside an RCU callback.
Teardown can wake before the callback returns and unload ib_ipoib while its
code is still executing.
Client registration failure can also remove already-added devices and queue
callbacks. Wait after client and workqueue teardown.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 Version: b63b70d8774175b6f8393c495fe455f0fba55ce1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/ipoib/ipoib_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bb9c23733a0c50e136bd40c27cb60023cc58e22c",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "4a6dc313f9661f80e4ed43461d7ed5615c2450ca",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "d8917353966d1d5a486437dd0dd68a2cf8ecb136",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "7bc08d7f9338c9f9c09965e5d020591c793a80cb",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "2b3330cfc097db2d31f47ad09261967630270d66",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "8dc5ffcb8efcc01e44dd1ebc490eaae72de3fadf",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "24ce944721dcd92ae62e7a448d770e2a3e79f5fd",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
},
{
"lessThan": "31b7c700670830a0e8a4cdcd451c88a13cc5dc48",
"status": "affected",
"version": "b63b70d8774175b6f8393c495fe455f0fba55ce1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/ipoib/ipoib_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/ipoib: Drain RCU callbacks during module teardown\n\nIPoIB reclamation completions can be signaled from inside an RCU callback.\nTeardown can wake before the callback returns and unload ib_ipoib while its\ncode is still executing.\n\nClient registration failure can also remove already-added devices and queue\ncallbacks. Wait after client and workqueue teardown."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:40.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bb9c23733a0c50e136bd40c27cb60023cc58e22c"
},
{
"url": "https://git.kernel.org/stable/c/4a6dc313f9661f80e4ed43461d7ed5615c2450ca"
},
{
"url": "https://git.kernel.org/stable/c/d8917353966d1d5a486437dd0dd68a2cf8ecb136"
},
{
"url": "https://git.kernel.org/stable/c/7bc08d7f9338c9f9c09965e5d020591c793a80cb"
},
{
"url": "https://git.kernel.org/stable/c/2b3330cfc097db2d31f47ad09261967630270d66"
},
{
"url": "https://git.kernel.org/stable/c/8dc5ffcb8efcc01e44dd1ebc490eaae72de3fadf"
},
{
"url": "https://git.kernel.org/stable/c/24ce944721dcd92ae62e7a448d770e2a3e79f5fd"
},
{
"url": "https://git.kernel.org/stable/c/31b7c700670830a0e8a4cdcd451c88a13cc5dc48"
}
],
"title": "RDMA/ipoib: Drain RCU callbacks during module teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93108",
"datePublished": "2026-09-17T16:11:18.455Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-19T09:05:40.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90150 (GCVE-0-2026-90150)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
pnfs/blocklayout: Fix device leaks on parse failure
bl_parse_concat() and bl_parse_stripe() allocate a child device array and
then parse each child in turn. If parsing a child fails, the failed child is
not counted in nr_children and the parent may be left with a children array
that bl_free_device() will not release when nr_children is zero.
Release the failed child and the already parsed children before returning the
error. Also make bl_free_device() release the child array whenever the
children pointer is set, so that partially initialised concat or stripe
devices are cleaned up correctly.
bl_parse_scsi() can also fail after assigning d->bdev_file and dropping the
file reference. Clear the pointer after fput() so that an outer cleanup path
does not put it again.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfs/blocklayout/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "51d162dfb618f6cf3aa5e331c0305e27771ad884",
"status": "affected",
"version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
"versionType": "git"
},
{
"lessThan": "8a2494964edac2a13e82441c2bf887548dc3be0b",
"status": "affected",
"version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
"versionType": "git"
},
{
"lessThan": "1e1c36b206c659cf94c6755a1d821ed1babd32bc",
"status": "affected",
"version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
"versionType": "git"
},
{
"lessThan": "23e4162405c456ce12c772d5882d306135e828ae",
"status": "affected",
"version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
"versionType": "git"
},
{
"lessThan": "c056f817e4200fb18079d5052c273a22f191ff0a",
"status": "affected",
"version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfs/blocklayout/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.18"
},
{
"lessThan": "3.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npnfs/blocklayout: Fix device leaks on parse failure\n\nbl_parse_concat() and bl_parse_stripe() allocate a child device array and\nthen parse each child in turn. If parsing a child fails, the failed child is\nnot counted in nr_children and the parent may be left with a children array\nthat bl_free_device() will not release when nr_children is zero.\n\nRelease the failed child and the already parsed children before returning the\nerror. Also make bl_free_device() release the child array whenever the\nchildren pointer is set, so that partially initialised concat or stripe\ndevices are cleaned up correctly.\n\nbl_parse_scsi() can also fail after assigning d-\u003ebdev_file and dropping the\nfile reference. Clear the pointer after fput() so that an outer cleanup path\ndoes not put it again."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:07.707Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/51d162dfb618f6cf3aa5e331c0305e27771ad884"
},
{
"url": "https://git.kernel.org/stable/c/8a2494964edac2a13e82441c2bf887548dc3be0b"
},
{
"url": "https://git.kernel.org/stable/c/1e1c36b206c659cf94c6755a1d821ed1babd32bc"
},
{
"url": "https://git.kernel.org/stable/c/23e4162405c456ce12c772d5882d306135e828ae"
},
{
"url": "https://git.kernel.org/stable/c/c056f817e4200fb18079d5052c273a22f191ff0a"
}
],
"title": "pnfs/blocklayout: Fix device leaks on parse failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90150",
"datePublished": "2026-09-17T16:06:44.320Z",
"dateReserved": "2026-09-11T19:38:34.789Z",
"dateUpdated": "2026-10-21T12:50:07.707Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68264 (GCVE-0-2026-68264)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/pt: Reset current_op in xe_pt_update_ops_init()
xe_pt_update_ops_init() fails to reset current_op to 0. On the
vm_bind path, ops_execute() calls xe_pt_update_ops_prepare() inside
the xe_validation_guard() / drm_exec_until_all_locked() loop. When
that loop retries due to lock contention or OOM eviction
(drm_exec_retry_on_contention() / xe_validation_retry_on_oom()),
xe_pt_update_ops_prepare() runs again on the same vops, and each
call to bind_op_prepare() increments current_op without resetting it.
After N retries current_op exceeds the array size allocated by
xe_vma_ops_alloc(), causing an out-of-bounds write into
SLUB-poisoned memory and a subsequent UAF crash in
xe_migrate_update_pgtables_cpu() when reading the corrupted pt_op->bind.
Also reset needs_svm_lock and needs_invalidation which are derived in
the same prepare pass and would otherwise cause wrong migrate ops
selection and redundant TLB invalidation on retry.
Fix this by resetting current_op, needs_svm_lock and needs_invalidation
in xe_pt_update_ops_init().
v2 (Matt):
- Add details in commit message.
- Add Fixes tag and Cc to stable@vger.kernel.org
(cherry picked from commit 046045543e530605c441063535e7dca0075369a6)
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68264",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:21.749060Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:58.651Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_pt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "be5c39730ab8f1dfe59983bf7d8e3705541d1fee",
"status": "affected",
"version": "e8babb280b5ef904df54b3a90e5a7e3a9600c4a9",
"versionType": "git"
},
{
"lessThan": "157b1e3384d7d37f59c0c2b2ff2af8f557db1daa",
"status": "affected",
"version": "e8babb280b5ef904df54b3a90e5a7e3a9600c4a9",
"versionType": "git"
},
{
"lessThan": "90e4fd331b980259c40118d05b89b0ec514e7c48",
"status": "affected",
"version": "e8babb280b5ef904df54b3a90e5a7e3a9600c4a9",
"versionType": "git"
},
{
"lessThan": "6384271ac1ac0099198d15df79212a19ebdb929d",
"status": "affected",
"version": "e8babb280b5ef904df54b3a90e5a7e3a9600c4a9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_pt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/pt: Reset current_op in xe_pt_update_ops_init()\n\nxe_pt_update_ops_init() fails to reset current_op to 0. On the\nvm_bind path, ops_execute() calls xe_pt_update_ops_prepare() inside\nthe xe_validation_guard() / drm_exec_until_all_locked() loop. When\nthat loop retries due to lock contention or OOM eviction\n(drm_exec_retry_on_contention() / xe_validation_retry_on_oom()),\nxe_pt_update_ops_prepare() runs again on the same vops, and each\ncall to bind_op_prepare() increments current_op without resetting it.\n\nAfter N retries current_op exceeds the array size allocated by\nxe_vma_ops_alloc(), causing an out-of-bounds write into\nSLUB-poisoned memory and a subsequent UAF crash in\nxe_migrate_update_pgtables_cpu() when reading the corrupted pt_op-\u003ebind.\n\nAlso reset needs_svm_lock and needs_invalidation which are derived in\nthe same prepare pass and would otherwise cause wrong migrate ops\nselection and redundant TLB invalidation on retry.\n\nFix this by resetting current_op, needs_svm_lock and needs_invalidation\nin xe_pt_update_ops_init().\n\nv2 (Matt):\n - Add details in commit message.\n - Add Fixes tag and Cc to stable@vger.kernel.org\n\n(cherry picked from commit 046045543e530605c441063535e7dca0075369a6)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached through the DRM_IOCTL_XE_VM_BIND ioctl on an Intel Xe DRM render node (/dev/dri/renderD*), which requires local access to the device file; there is no remote or adjacent-network path.\nAC:L - The overflow needs only one retry of the xe_validation_guard()/drm_exec_until_all_locked() loop, and the attacker drives both retry sources itself: concurrent vm_bind/exec threads on the same BOs force drm_exec_retry_on_contention(), and filling VRAM forces xe_validation_retry_on_oom(). Both sides of the race are attacker-controlled and the sequence is repeatable at will.\nPR:L - Only an open file descriptor on the Xe render node plus a VM created via DRM_IOCTL_XE_VM_CREATE is needed; no capability check exists on the vm_bind path. Render nodes are routinely accessible to unprivileged users, Android apps, containers and GPU-sharing tenants.\nUI:N - The attacker performs the entire sequence (vm create, bo create, vm_bind with induced contention/memory pressure) from its own process; no victim action is required.\nS:U - The out-of-bounds write and the subsequent corrupted-pointer use occur in kernel heap memory within the same security authority as the kernel itself; no VM, IOMMU or sandbox boundary is crossed by the flaw itself.\nC:H - After the index inflates, xe_pt_update_ops_fini()/xe_pt_update_ops_abort() iterate i \u003c current_op and read adjacent-slab contents as xe_vma/pt pointers and num_entries, and xe_migrate_update_pgtables_cpu() consumes the corrupted pt_op, giving out-of-bounds reads of kernel objects and a UAF that can be groomed into an arbitrary-read primitive.\nI:H - Each retry writes a full struct xe_vm_pgtable_update_op (pointer-rich entries[] plus vma pointer and flags) past the end of the kmalloc\u0027d ops array, with attacker-chosen overflow length and slab size, and the corrupted entries are later fed to xe_pt_free_bind()/xe_pt_abort_bind() and GPU page-table programming \u2014 a controllable heap corruption suitable for privilege escalation.\nA:H - The commit documents an out-of-bounds write into SLUB-poisoned memory followed by a UAF crash in xe_migrate_update_pgtables_cpu(); an unprivileged process can reliably and repeatedly panic the kernel, and corrupted page-table state additionally wedges the GPU."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:01:56.847Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/be5c39730ab8f1dfe59983bf7d8e3705541d1fee"
},
{
"url": "https://git.kernel.org/stable/c/157b1e3384d7d37f59c0c2b2ff2af8f557db1daa"
},
{
"url": "https://git.kernel.org/stable/c/90e4fd331b980259c40118d05b89b0ec514e7c48"
},
{
"url": "https://git.kernel.org/stable/c/6384271ac1ac0099198d15df79212a19ebdb929d"
}
],
"title": "drm/xe/pt: Reset current_op in xe_pt_update_ops_init()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68264",
"datePublished": "2026-08-10T12:01:38.686Z",
"dateReserved": "2026-07-30T09:28:09.378Z",
"dateUpdated": "2026-10-19T20:58:58.651Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97605 (GCVE-0-2026-97605)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-21 12:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
erofs: preserve LZMA decoders on resize failure
The pool-resize path frees each stream's old decoder before allocating
its replacement. If an allocation fails after some streams have already
been replaced, the failed stream is put back on the list with state ==
NULL. z_erofs_lzma_max_dictsize is still advanced as if the whole
pool had been resized.
An existing LZMA mount can select the broken stream and pass
NULL to xz_dec_microlzma_reset(). A retry at the same size also
skip another resize attempt. Since the global maximum was advanced,
thus, the invalid state is left unrepaired.
Allocate each replacement before freeing the old decoder, temporarily
retaining one old decoder during allocation. Stop at the first failure
and advance z_erofs_lzma_max_dictsize only after all streams satisfy
the request.
Record each stream's dictionary capacity so retries can skip streams
already enlarged before a partial failure.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/erofs/decompressor_lzma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "db0c3465b54a16debc089b2b3bda251d26c953d0",
"status": "affected",
"version": "622ceaddb7649ca328832f50ba1400af778d75fa",
"versionType": "git"
},
{
"lessThan": "604ce546e1b9f35b1f45588004f53fac6b2869c1",
"status": "affected",
"version": "622ceaddb7649ca328832f50ba1400af778d75fa",
"versionType": "git"
},
{
"lessThan": "0b3c8c39e50249470f00a5f73c288b95a55ab576",
"status": "affected",
"version": "622ceaddb7649ca328832f50ba1400af778d75fa",
"versionType": "git"
},
{
"lessThan": "38e9e07ac02a9453a117410776f1502a9980997e",
"status": "affected",
"version": "622ceaddb7649ca328832f50ba1400af778d75fa",
"versionType": "git"
},
{
"lessThan": "617d0d8d199ba1790c94310fd75a22d01c97a8d6",
"status": "affected",
"version": "622ceaddb7649ca328832f50ba1400af778d75fa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/erofs/decompressor_lzma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.16"
},
{
"lessThan": "5.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nerofs: preserve LZMA decoders on resize failure\n\nThe pool-resize path frees each stream\u0027s old decoder before allocating\nits replacement. If an allocation fails after some streams have already\nbeen replaced, the failed stream is put back on the list with state ==\nNULL. z_erofs_lzma_max_dictsize is still advanced as if the whole\npool had been resized.\n\nAn existing LZMA mount can select the broken stream and pass\nNULL to xz_dec_microlzma_reset(). A retry at the same size also\nskip another resize attempt. Since the global maximum was advanced,\nthus, the invalid state is left unrepaired.\n\nAllocate each replacement before freeing the old decoder, temporarily\nretaining one old decoder during allocation. Stop at the first failure\nand advance z_erofs_lzma_max_dictsize only after all streams satisfy\nthe request.\n\nRecord each stream\u0027s dictionary capacity so retries can skip streams\nalready enlarged before a partial failure."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:53:25.795Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/db0c3465b54a16debc089b2b3bda251d26c953d0"
},
{
"url": "https://git.kernel.org/stable/c/604ce546e1b9f35b1f45588004f53fac6b2869c1"
},
{
"url": "https://git.kernel.org/stable/c/0b3c8c39e50249470f00a5f73c288b95a55ab576"
},
{
"url": "https://git.kernel.org/stable/c/38e9e07ac02a9453a117410776f1502a9980997e"
},
{
"url": "https://git.kernel.org/stable/c/617d0d8d199ba1790c94310fd75a22d01c97a8d6"
}
],
"title": "erofs: preserve LZMA decoders on resize failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97605",
"datePublished": "2026-09-25T10:22:17.233Z",
"dateReserved": "2026-09-24T16:01:01.158Z",
"dateUpdated": "2026-10-21T12:53:25.795Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-31523 (GCVE-0-2026-31523)
Vulnerability from cvelistv5
Published
2026-04-22 13:54
Modified
2026-05-11 22:10
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-pci: ensure we're polling a polled queue
A user can change the polled queue count at run time. There's a brief
window during a reset where a hipri task may try to poll that queue
before the block layer has updated the queue maps, which would race with
the now interrupt driven queue and may cause double completions.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 Version: 4b04cc6a8f86c4842314def22332de1f15de8523 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "965e2c943f065122f14282a88d70a8a92e12a4da",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "ba167d5982e2eb6ff9356d409eca592ce99555da",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "0685dd9cb855ab77fcf3577b4702ba1d6df1c98d",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "6f12734c4b619f923a4df0b1a46b8098b187d324",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "acbc72dd1a09df53cafcf577259f4678be6afd6d",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "b96c7b25eb1b748f3e3b1832ebf028b0b223d7e3",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "b222680ba55e018426c4535067a008f1d81a5d21",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
},
{
"lessThan": "166e31d7dbf6aa44829b98aa446bda5c9580f12a",
"status": "affected",
"version": "4b04cc6a8f86c4842314def22332de1f15de8523",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.253",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.203",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.168",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.131",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.80",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.21",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.253",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.203",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.168",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.131",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.80",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.21",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.11",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-pci: ensure we\u0027re polling a polled queue\n\nA user can change the polled queue count at run time. There\u0027s a brief\nwindow during a reset where a hipri task may try to poll that queue\nbefore the block layer has updated the queue maps, which would race with\nthe now interrupt driven queue and may cause double completions."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:10:26.646Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/965e2c943f065122f14282a88d70a8a92e12a4da"
},
{
"url": "https://git.kernel.org/stable/c/ba167d5982e2eb6ff9356d409eca592ce99555da"
},
{
"url": "https://git.kernel.org/stable/c/0685dd9cb855ab77fcf3577b4702ba1d6df1c98d"
},
{
"url": "https://git.kernel.org/stable/c/6f12734c4b619f923a4df0b1a46b8098b187d324"
},
{
"url": "https://git.kernel.org/stable/c/acbc72dd1a09df53cafcf577259f4678be6afd6d"
},
{
"url": "https://git.kernel.org/stable/c/b96c7b25eb1b748f3e3b1832ebf028b0b223d7e3"
},
{
"url": "https://git.kernel.org/stable/c/b222680ba55e018426c4535067a008f1d81a5d21"
},
{
"url": "https://git.kernel.org/stable/c/166e31d7dbf6aa44829b98aa446bda5c9580f12a"
}
],
"title": "nvme-pci: ensure we\u0027re polling a polled queue",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-31523",
"datePublished": "2026-04-22T13:54:37.568Z",
"dateReserved": "2026-03-09T15:48:24.110Z",
"dateUpdated": "2026-05-11T22:10:26.646Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90151 (GCVE-0-2026-90151)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-19 08:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSv4: remove callback IDR entry on client allocation failure
nfs4_alloc_client() allocates an NFSv4.0 callback identifier before it
finishes setting up the client. If any later initialization step fails,
the error path frees the nfs_client directly with nfs_free_client(). That
bypasses nfs_put_client(), which is where the callback IDR entry is
removed during normal teardown.
A failed allocation can therefore leave cb_ident_idr pointing at a freed
nfs_client. A later NFSv4.0 callback lookup by cb_ident would find the
stale pointer and take a reference to it.
Make the callback IDR removal helper callable by the allocation failure
path, and remove the callback identifier before freeing the client.
This was found by a local static-analysis checker for publish-before-free
lifetime bugs and confirmed by manual inspection.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 Version: f4eecd5da3422e82e88e36c33cbd2595eebcacb1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfs/client.c",
"fs/nfs/internal.h",
"fs/nfs/nfs4client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "68c721391b761dbe38d5b0094d2bb6e8489ad92b",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "9bfdd0f591307b5198826a0e7a5b2f35f87acd2d",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "7c4812eb96bdcafb31a65b12f2aa96659429d1d4",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "fc95ca82d5ae598c428ab5a00ae69f8526d59371",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "80b1c3d5a881f7d9081aa9f46da9742878a0f893",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "3f2387e8bfbc4efda5d77c3a11a028d0a119c48f",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "5891c03e150920618db0e9c4ea2d772abacdcfd1",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
},
{
"lessThan": "d05c2007b3d84ccba11dc6e9cb3202768cc72f14",
"status": "affected",
"version": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfs/client.c",
"fs/nfs/internal.h",
"fs/nfs/nfs4client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.38"
},
{
"lessThan": "2.6.38",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.38",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSv4: remove callback IDR entry on client allocation failure\n\nnfs4_alloc_client() allocates an NFSv4.0 callback identifier before it\nfinishes setting up the client. If any later initialization step fails,\nthe error path frees the nfs_client directly with nfs_free_client(). That\nbypasses nfs_put_client(), which is where the callback IDR entry is\nremoved during normal teardown.\n\nA failed allocation can therefore leave cb_ident_idr pointing at a freed\nnfs_client. A later NFSv4.0 callback lookup by cb_ident would find the\nstale pointer and take a reference to it.\n\nMake the callback IDR removal helper callable by the allocation failure\npath, and remove the callback identifier before freeing the client.\n\nThis was found by a local static-analysis checker for publish-before-free\nlifetime bugs and confirmed by manual inspection."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - nfs4_find_client_ident() is called from nfs4_callback_compound() with hdr_arg.cb_ident taken by decode_compound_hdr_arg() from an NFSv4.0 CB_COMPOUND on the TCP callback listener that nfs4_callback_up_net() binds to INADDR_ANY via svc_xprt_create(); the remote peer supplies that identifier over routable TCP.\nAC:L - A malicious NFSv4.0 server keeps the callback service up, then forces a later nfs4_alloc_client() to fail after nfs_get_cb_ident_idr() by making rpc_create()/rpc_ping() fail in nfs_create_rpc_client() (nfs4_create_referral_server or nfs4_update_server to an RST-ing address), then sends CB_COMPOUND with the next sequential idr id; no uncontrolled race is required.\nPR:N - nfs4_find_client_ident() runs in nfs4_callback_compound() before check_gss_callback_principal(), and nfs_callback_authenticate() accepts RPC_AUTH_UNIX for CB_COMPOUND, so the peer needs no account or capability on the victim client.\nUI:N - The same peer returns NFS4ERR_MOVED so nfs4_schedule_migration_recovery() or a LOOKUP referral (nfs4_create_referral_server) runs nfs4_alloc_client() from the state manager or automount, then sends the CB_COMPOUND itself; no extra victim mount dialog or file-open is required.\nS:U - The UAF is of an nfs_client published in cb_ident_idr and freed by nfs_free_client(); impact stays in the host kernel and does not cross a VM, IOMMU, or guest/host boundary.\nC:H - nfs4_find_client_ident() does refcount_inc(\u0026clp-\u003ecl_count) on the nfs_client that nfs_free_client() already kfree_rcu\u0027d, so a stale cb_ident_idr pointer remains; reclaim of that heap object yields an arbitrary kernel read, as with other kernel UAFs.\nI:H - The same stale-IDR lookup is a use-after-free write (refcount_inc, then nfs_put_client list_del and field access in check_gss_callback_principal/process_op); spraying the freed nfs_client enables arbitrary write and control-flow hijack.\nA:H - refcount_inc on the kfree_rcu\u0027d nfs_client, or later dereference of cl_rpcclient left as ERR_PTR(-EINVAL) when nfs_create_rpc_client() failed, causes a kernel oops/panic even without a full exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:58:50.239Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/68c721391b761dbe38d5b0094d2bb6e8489ad92b"
},
{
"url": "https://git.kernel.org/stable/c/9bfdd0f591307b5198826a0e7a5b2f35f87acd2d"
},
{
"url": "https://git.kernel.org/stable/c/7c4812eb96bdcafb31a65b12f2aa96659429d1d4"
},
{
"url": "https://git.kernel.org/stable/c/fc95ca82d5ae598c428ab5a00ae69f8526d59371"
},
{
"url": "https://git.kernel.org/stable/c/80b1c3d5a881f7d9081aa9f46da9742878a0f893"
},
{
"url": "https://git.kernel.org/stable/c/3f2387e8bfbc4efda5d77c3a11a028d0a119c48f"
},
{
"url": "https://git.kernel.org/stable/c/5891c03e150920618db0e9c4ea2d772abacdcfd1"
},
{
"url": "https://git.kernel.org/stable/c/d05c2007b3d84ccba11dc6e9cb3202768cc72f14"
}
],
"title": "NFSv4: remove callback IDR entry on client allocation failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90151",
"datePublished": "2026-09-17T16:06:44.987Z",
"dateReserved": "2026-09-11T19:38:34.789Z",
"dateUpdated": "2026-10-19T08:58:50.239Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90241 (GCVE-0-2026-90241)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 09:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Tear down scalable-mode context on probe failure
intel_pasid_setup_sm_context() walks a PCI device’s DMA aliases via
pci_for_each_dma_alias() and programs a scalable-mode context entry for
each RID. For a device with a dma_alias_mask, the callback is invoked
once for the device’s own RID and once for each alias bit, all with the
same pci_dev, so device_pasid_table_setup() runs for multiple RIDs.
pci_for_each_dma_alias() stops at the first callback error. Therefore, a
failure partway through the walk can leave context entries for already
processed RIDs present and still pointing to the device’s PASID table.
On this error path, intel_iommu_probe_device() currently jumps directly
to intel_pasid_free_table(), which frees the PASID table without
first tearing down those context entries. The IOMMU may then walk a
present context entry whose PASID table pointer references freed
memory.
intel_iommu_release_device() already performs teardown before freeing the
table. Apply the same ordering on the probe failure path.
device_pasid_table_teardown() safely handles RIDs that were never
programmed: iommu_context_addr() returns NULL when no context table has
been allocated, and clearing the Present bit of an already non-present
entry is a no-op. So unwind is safe for both the alias that failed and
any aliases not yet reached.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "25ac85a9747cd63e1d166ace7b360a2cd9479d9d",
"status": "affected",
"version": "301f1a80487fd2f51012533792583d4425e8b8c0",
"versionType": "git"
},
{
"lessThan": "d0e978ced7429b516358bb4d41d337214768ae98",
"status": "affected",
"version": "301f1a80487fd2f51012533792583d4425e8b8c0",
"versionType": "git"
},
{
"lessThan": "db5daf25f754cdc20c18525adb88240ece6fdee9",
"status": "affected",
"version": "301f1a80487fd2f51012533792583d4425e8b8c0",
"versionType": "git"
},
{
"lessThan": "c509fb73a1093a15accd7d43a61645d4b520f6ac",
"status": "affected",
"version": "301f1a80487fd2f51012533792583d4425e8b8c0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/intel/iommu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Tear down scalable-mode context on probe failure\n\nintel_pasid_setup_sm_context() walks a PCI device\u2019s DMA aliases via\npci_for_each_dma_alias() and programs a scalable-mode context entry for\neach RID. For a device with a dma_alias_mask, the callback is invoked\nonce for the device\u2019s own RID and once for each alias bit, all with the\nsame pci_dev, so device_pasid_table_setup() runs for multiple RIDs.\n\npci_for_each_dma_alias() stops at the first callback error. Therefore, a\nfailure partway through the walk can leave context entries for already\nprocessed RIDs present and still pointing to the device\u2019s PASID table.\n\nOn this error path, intel_iommu_probe_device() currently jumps directly\nto intel_pasid_free_table(), which frees the PASID table without\nfirst tearing down those context entries. The IOMMU may then walk a\npresent context entry whose PASID table pointer references freed\nmemory.\n\nintel_iommu_release_device() already performs teardown before freeing the\ntable. Apply the same ordering on the probe failure path.\n\ndevice_pasid_table_teardown() safely handles RIDs that were never\nprogrammed: iommu_context_addr() returns NULL when no context table has\nbeen allocated, and clearing the Present bit of an already non-present\nentry is a no-op. So unwind is safe for both the alias that failed and\nany aliases not yet reached."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - intel_iommu_probe_device() is called from iommu_probe_device() on BUS_NOTIFY_ADD_DEVICE in iommu_bus_notifier; the Present context entries are programmed by intel_pasid_setup_sm_context() via pci_for_each_dma_alias() during that host probe, not by a remote protocol payload.\nAC:L - device_pasid_table_setup() can succeed for an earlier dma_alias_mask RID then fail when iommu_context_addr(..., true) GFP_ATOMIC-allocates the other scalable-mode context table; pci_for_each_dma_alias() stops, and the free_table path leaves those Present entries indefinitely, so a local attacker who induces that -ENOMEM does not need an uncontrolled race.\nPR:H - The free_table error path is reached only by adding or re-probing a PCI device into intel_iommu_probe_device(), which requires init-namespace CAP_SYS_ADMIN (pci-sysfs rescan is mode 0200 via dev_rescan_store, likewise remove/SR-IOV); user namespaces cannot trigger this IOMMU probe.\nUI:N - The attacker themselves issues the PCI add/rescan (or equivalent hotplug they control) that runs intel_iommu_probe_device(); no separate victim action such as mounting a filesystem is required.\nS:C - context_entry_set_pasid_table() leaves Present scalable-mode context entries pointing at the device PASID directory; intel_pasid_free_table() then frees that directory without teardown, so VT-d can translate DMA against reused host pages and bypass the IOMMU device/host isolation boundary.\nC:H - A Present context entry whose PASID table was freed by intel_pasid_free_table() is a translation-table use-after-free; reclaiming those pages lets a device DMA-read host physical memory outside its assigned domain.\nI:H - The same stale PASID-table pointer lets the device DMA-write host memory outside its domain, turning the probe-path UAF into an arbitrary write and potential control-flow hijack across the IOMMU boundary.\nA:H - Hardware walks of the freed PASID directory cause DMAR faults, kernel oops/panic, or host hangs; the unfixed free_table path is a use-after-free, which is A:H."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:00:17.291Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/25ac85a9747cd63e1d166ace7b360a2cd9479d9d"
},
{
"url": "https://git.kernel.org/stable/c/d0e978ced7429b516358bb4d41d337214768ae98"
},
{
"url": "https://git.kernel.org/stable/c/db5daf25f754cdc20c18525adb88240ece6fdee9"
},
{
"url": "https://git.kernel.org/stable/c/c509fb73a1093a15accd7d43a61645d4b520f6ac"
}
],
"title": "iommu/vt-d: Tear down scalable-mode context on probe failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90241",
"datePublished": "2026-09-17T16:07:45.168Z",
"dateReserved": "2026-09-11T19:38:34.795Z",
"dateUpdated": "2026-10-19T09:00:17.291Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43409 (GCVE-0-2026-43409)
Vulnerability from cvelistv5
Published
2026-05-08 14:21
Modified
2026-05-11 22:24
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
kprobes: avoid crash when rmmod/insmod after ftrace killed
After we hit ftrace is killed by some errors, the kernel crash if
we remove modules in which kprobe probes.
BUG: unable to handle page fault for address: fffffbfff805000d
PGD 817fcc067 P4D 817fcc067 PUD 817fc8067 PMD 101555067 PTE 0
Oops: Oops: 0000 [#1] SMP KASAN PTI
CPU: 4 UID: 0 PID: 2012 Comm: rmmod Tainted: G W OE
Tainted: [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
RIP: 0010:kprobes_module_callback+0x89/0x790
RSP: 0018:ffff88812e157d30 EFLAGS: 00010a02
RAX: 1ffffffff805000d RBX: dffffc0000000000 RCX: ffffffff86a8de90
RDX: ffffed1025c2af9b RSI: 0000000000000008 RDI: ffffffffc0280068
RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed1025c2af9a
R10: ffff88812e157cd7 R11: 205d323130325420 R12: 0000000000000002
R13: ffffffffc0290488 R14: 0000000000000002 R15: ffffffffc0280040
FS: 00007fbc450dd740(0000) GS:ffff888420331000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff805000d CR3: 000000010f624000 CR4: 00000000000006f0
Call Trace:
<TASK>
notifier_call_chain+0xc6/0x280
blocking_notifier_call_chain+0x60/0x90
__do_sys_delete_module.constprop.0+0x32a/0x4e0
do_syscall_64+0x5d/0xfa0
entry_SYSCALL_64_after_hwframe+0x76/0x7e
This is because the kprobe on ftrace does not correctly handles
the kprobe_ftrace_disabled flag set by ftrace_kill().
To prevent this error, check kprobe_ftrace_disabled in
__disarm_kprobe_ftrace() and skip all ftrace related operations.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/kprobes.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8b6767e4141b2a42745b544d4555cf1614ba1a2d",
"status": "affected",
"version": "ae6aa16fdc163afe6b04b6c073ad4ddd4663c03b",
"versionType": "git"
},
{
"lessThan": "b0ca81616a010807e91fc31db9be242b96326adc",
"status": "affected",
"version": "ae6aa16fdc163afe6b04b6c073ad4ddd4663c03b",
"versionType": "git"
},
{
"lessThan": "cae928e3178c75602c21d67e21255d73e7e9ed4f",
"status": "affected",
"version": "ae6aa16fdc163afe6b04b6c073ad4ddd4663c03b",
"versionType": "git"
},
{
"lessThan": "9edc79d664832a842012ad105b1521c1a3c35ab3",
"status": "affected",
"version": "ae6aa16fdc163afe6b04b6c073ad4ddd4663c03b",
"versionType": "git"
},
{
"lessThan": "e113f0b46d19626ec15388bcb91432c9a4fd6261",
"status": "affected",
"version": "ae6aa16fdc163afe6b04b6c073ad4ddd4663c03b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/kprobes.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.7"
},
{
"lessThan": "3.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.130",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.78",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.78",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.19",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.9",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nkprobes: avoid crash when rmmod/insmod after ftrace killed\n\nAfter we hit ftrace is killed by some errors, the kernel crash if\nwe remove modules in which kprobe probes.\n\nBUG: unable to handle page fault for address: fffffbfff805000d\nPGD 817fcc067 P4D 817fcc067 PUD 817fc8067 PMD 101555067 PTE 0\nOops: Oops: 0000 [#1] SMP KASAN PTI\nCPU: 4 UID: 0 PID: 2012 Comm: rmmod Tainted: G W OE\nTainted: [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE\nRIP: 0010:kprobes_module_callback+0x89/0x790\nRSP: 0018:ffff88812e157d30 EFLAGS: 00010a02\nRAX: 1ffffffff805000d RBX: dffffc0000000000 RCX: ffffffff86a8de90\nRDX: ffffed1025c2af9b RSI: 0000000000000008 RDI: ffffffffc0280068\nRBP: 0000000000000000 R08: 0000000000000001 R09: ffffed1025c2af9a\nR10: ffff88812e157cd7 R11: 205d323130325420 R12: 0000000000000002\nR13: ffffffffc0290488 R14: 0000000000000002 R15: ffffffffc0280040\nFS: 00007fbc450dd740(0000) GS:ffff888420331000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: fffffbfff805000d CR3: 000000010f624000 CR4: 00000000000006f0\nCall Trace:\n \u003cTASK\u003e\n notifier_call_chain+0xc6/0x280\n blocking_notifier_call_chain+0x60/0x90\n __do_sys_delete_module.constprop.0+0x32a/0x4e0\n do_syscall_64+0x5d/0xfa0\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nThis is because the kprobe on ftrace does not correctly handles\nthe kprobe_ftrace_disabled flag set by ftrace_kill().\n\nTo prevent this error, check kprobe_ftrace_disabled in\n__disarm_kprobe_ftrace() and skip all ftrace related operations."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:24:01.453Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8b6767e4141b2a42745b544d4555cf1614ba1a2d"
},
{
"url": "https://git.kernel.org/stable/c/b0ca81616a010807e91fc31db9be242b96326adc"
},
{
"url": "https://git.kernel.org/stable/c/cae928e3178c75602c21d67e21255d73e7e9ed4f"
},
{
"url": "https://git.kernel.org/stable/c/9edc79d664832a842012ad105b1521c1a3c35ab3"
},
{
"url": "https://git.kernel.org/stable/c/e113f0b46d19626ec15388bcb91432c9a4fd6261"
}
],
"title": "kprobes: avoid crash when rmmod/insmod after ftrace killed",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43409",
"datePublished": "2026-05-08T14:21:48.239Z",
"dateReserved": "2026-05-01T14:12:56.008Z",
"dateUpdated": "2026-05-11T22:24:01.453Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74377 (GCVE-0-2026-74377)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Copy WQE to local buffer in non-SRQ receive path
For non-SRQ QPs, the responder reads WQE fields directly from the
shared queue buffer mapped into userspace. This allows a malicious
user to modify fields like num_sge or sge entries while the kernel
is processing the WQE, leading to out-of-bounds reads in
rxe_resp_check_length() and copy_data().
Introduce get_recv_wqe() that validates num_sge and copies the WQE
to a kernel-local buffer before processing, matching the approach
already used for SRQ WQEs in get_srq_wqe(). The srq_wqe buffer is
reused since SRQ and non-SRQ paths are mutually exclusive per QP.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74377",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:49.610673Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:36.323Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2e60378fb3c8b51c94103bb40014c4fe38fa5033",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "fc72fd61cc8b2e2e3e92ae4c0e9cc30c9a7ecb78",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "9fa785137303f7109c23dea779b8dedc67c9b531",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "5420eebf3b3c162bfaf965f30e61cd1d689e5732",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "a211b7904aed365e4e4f08a48ec6e6dd1ea7b16b",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "d6ab440240a04b8737ee4c7bb21af9182e451733",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_resp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Copy WQE to local buffer in non-SRQ receive path\n\nFor non-SRQ QPs, the responder reads WQE fields directly from the\nshared queue buffer mapped into userspace. This allows a malicious\nuser to modify fields like num_sge or sge entries while the kernel\nis processing the WQE, leading to out-of-bounds reads in\nrxe_resp_check_length() and copy_data().\n\nIntroduce get_recv_wqe() that validates num_sge and copies the WQE\nto a kernel-local buffer before processing, matching the approach\nalready used for SRQ WQEs in get_srq_wqe(). The srq_wqe buffer is\nreused since SRQ and non-SRQ paths are mutually exclusive per QP."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires mutating mmap\u0027d receive WQEs through /dev/infiniband/uverbs; inbound RoCE packets (rxe_udp_encap_recv\u2192rxe_rcv\u2192rxe_receiver) only trigger processing and cannot alter WQE fields without local control of the userspace-mapped receive queue.\nAC:L - The attacker controls both sides of the TOCTOU\u2014userspace threads racing num_sge/sge edits while posting recv WRs and driving inbound RoCE SEND/WRITE traffic\u2014so out-of-bounds reads in rxe_resp_check_length() and copy_data() are reliably triggerable with retries.\nPR:L - uverbs_devnode() publishes /dev/infiniband/uverbsN as mode 0666, letting any local account create userspace QPs and mmap receive queues; rxe link setup needs CAP_NET_ADMIN obtainable in a user+network namespace via unshare -Urn, matching PR:L kernel guidance.\nUI:N - Exploitation is entirely self-driven from the attacker\u0027s own RDMA verbs client and concurrent userspace threads; no victim user action, mount, or file open is required.\nS:U - Impact is kernel memory corruption and local privilege escalation within the host kernel security authority, not a VM guest-to-host escape, IOMMU/DMA boundary bypass, or other cross-scope compromise.\nC:H - Inflating num_sge or rewriting sge entries during processing causes out-of-bounds reads in rxe_resp_check_length() and copy_data() beyond the allocated WQE slot, potentially into adjacent vmalloc/kernel memory, enabling arbitrary kernel information disclosure.\nI:H - copy_data() walks attacker-forged out-of-bounds sge entries and performs rxe_mr_copy writes of incoming RDMA payload into MR-backed memory; combined with queue overruns this yields controlled memory corruption exploitable for arbitrary write and code execution.\nA:H - Processing a WQE with an attacker-inflated num_sge causes the kernel to walk far past valid sge slots, dereferencing invalid pointers and corrupting memory, reliably producing kernel oops/panic and total loss of availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:29.745Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2e60378fb3c8b51c94103bb40014c4fe38fa5033"
},
{
"url": "https://git.kernel.org/stable/c/fc72fd61cc8b2e2e3e92ae4c0e9cc30c9a7ecb78"
},
{
"url": "https://git.kernel.org/stable/c/9fa785137303f7109c23dea779b8dedc67c9b531"
},
{
"url": "https://git.kernel.org/stable/c/5420eebf3b3c162bfaf965f30e61cd1d689e5732"
},
{
"url": "https://git.kernel.org/stable/c/a211b7904aed365e4e4f08a48ec6e6dd1ea7b16b"
},
{
"url": "https://git.kernel.org/stable/c/d6ab440240a04b8737ee4c7bb21af9182e451733"
}
],
"title": "RDMA/rxe: Copy WQE to local buffer in non-SRQ receive path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74377",
"datePublished": "2026-08-15T05:58:55.704Z",
"dateReserved": "2026-08-15T05:44:03.889Z",
"dateUpdated": "2026-10-16T18:55:36.323Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72434 (GCVE-0-2026-72434)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: make sure gc is properly stopped
Sashiko noticed that when destroying a set,
cancel_delayed_work_sync() was called while gc
calls queue_delayed_work() unconditionally which
can lead not to properly shutting down the gc.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: f66ee0410b1c3481ee75e5db9b34547b4d582465 Version: 5dd9488ae41070b69d2f4acb580f77db5705f9ca Version: a469bab3386aebff33c59506f3a95e35b91118fd Version: 5.4.24 ≤ Version: 5.5.8 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72434",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:50.650584Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:23.726Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c940d1b96248c3081b664ede5418078bdc7c8c07",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "12088da6add5b003657c8506c5b0fcef835083b8",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "c78bd5195a5998094a5866df702fbeafda60dafb",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"lessThan": "4a597a87e2e2f608edb6be2c510dc826b4fdfb53",
"status": "affected",
"version": "f66ee0410b1c3481ee75e5db9b34547b4d582465",
"versionType": "git"
},
{
"status": "affected",
"version": "5dd9488ae41070b69d2f4acb580f77db5705f9ca",
"versionType": "git"
},
{
"status": "affected",
"version": "a469bab3386aebff33c59506f3a95e35b91118fd",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.24",
"versionType": "semver"
},
{
"lessThan": "5.6",
"status": "affected",
"version": "5.5.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: make sure gc is properly stopped\n\nSashiko noticed that when destroying a set,\ncancel_delayed_work_sync() was called while gc\ncalls queue_delayed_work() unconditionally which\ncan lead not to properly shutting down the gc."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via NFNETLINK ipset destroy/cleanup (IPSET_CMD_DESTROY or netns exit calling cancel_gc), not by processing remote packets; all entry points are local netlink syscalls into net/netfilter/ipset.\nAC:L - An attacker with CAP_NET_ADMIN creates a timeout hash ipset, waits for the workqueue GC to run, then destroys the set; because mtype_gc always re-queues itself at the end of execution, cancel_delayed_work_sync reliably leaves a pending GC after teardown.\nPR:L - All ipset management, including set destroy that calls mtype_cancel_gc, requires CAP_NET_ADMIN checked by netlink_net_capable in nfnetlink; unprivileged users can obtain this in an isolated user+network namespace via unshare -Urn.\nUI:N - Exploitation is fully automated through netlink ipset create/destroy commands and does not require any victim user action such as mounting filesystems or opening files.\nS:U - The use-after-free corrupts kernel heap memory within the same host kernel security boundary; it does not by itself cross VM, container runtime, or IOMMU isolation boundaries.\nC:H - After teardown, the orphaned GC work dereferences freed ip_set and htype structures (including embedded delayed_work), a classic slab UAF that enables heap grooming and arbitrary kernel memory disclosure.\nI:H - UAF on ipset hash control structures and hbucket data allows corrupting freed heap objects and building write primitives for control-flow hijacking and local privilege escalation beyond the caller\u0027s namespace.\nA:H - Dereferencing freed set, htype, and hash table memory from the GC workqueue can immediately trigger kernel oopses or panics, and the bug is repeatable on every destroy of a timeout hash ipset."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:09.822Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c940d1b96248c3081b664ede5418078bdc7c8c07"
},
{
"url": "https://git.kernel.org/stable/c/12088da6add5b003657c8506c5b0fcef835083b8"
},
{
"url": "https://git.kernel.org/stable/c/c78bd5195a5998094a5866df702fbeafda60dafb"
},
{
"url": "https://git.kernel.org/stable/c/4a597a87e2e2f608edb6be2c510dc826b4fdfb53"
}
],
"title": "netfilter: ipset: make sure gc is properly stopped",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72434",
"datePublished": "2026-08-15T05:56:48.756Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-10-16T18:55:23.726Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72322 (GCVE-0-2026-72322)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: mcast: Fix potential UAF in MLD delayed work
A race condition exists between device teardown and incoming MLD query
processing, leading to a Use-After-Free in the MLD delayed work.
During device destruction, the primary reference to inet6_dev is dropped,
which can drop its refcount to 0. The actual freeing of inet6_dev memory
is deferred via RCU.
Concurrently, the packet receive path runs under RCU read lock and obtains
the inet6_dev pointer. Because the memory is RCU-protected, CPU-0 can
safely dereference inet6_dev even if its refcount has hit 0.
However, if CPU-0 calls igmp6_event_query() and schedules delayed work, it
attempts to acquire a reference using in6_dev_hold(). This increments the
refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning.
Since the inet6_dev memory is still scheduled to be freed after the RCU
grace period, the device is freed while the work is still scheduled.
When the work runs, it accesses the freed memory, causing a kernel panic.
Fix this by using refcount_inc_not_zero() (via a new helper
in6_dev_hold_safe()) to prevent acquiring a reference if the device is
already being destroyed. If the refcount is 0, we do not schedule the work.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72322",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:46:54.836744Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:17.786Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h",
"net/ipv6/mcast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f12b63ef26a035c5a29b3ef56401e38199010d4a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0401d6cf7877c9be36652385dfcbf7f891b8b590",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f03b0a45535d49bdab7e502efaacee205b2a7865",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9815e834f5ff8b39e0ea9f0dbd532f4a3b8f0785",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ebbebf6cee950d7f1c81990256c0eae9e62572ae",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9ce741c22df4fd9546e30306317ac7df3607e48f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0458ba1cda830ba4ccfcd9e19c0891438bcdbe4e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9b26518b6896a16b809b1e42986f4ebac7bccc1e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/addrconf.h",
"net/ipv6/mcast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: mcast: Fix potential UAF in MLD delayed work\n\nA race condition exists between device teardown and incoming MLD query\nprocessing, leading to a Use-After-Free in the MLD delayed work.\n\nDuring device destruction, the primary reference to inet6_dev is dropped,\nwhich can drop its refcount to 0. The actual freeing of inet6_dev memory\nis deferred via RCU.\n\nConcurrently, the packet receive path runs under RCU read lock and obtains\nthe inet6_dev pointer. Because the memory is RCU-protected, CPU-0 can\nsafely dereference inet6_dev even if its refcount has hit 0.\n\nHowever, if CPU-0 calls igmp6_event_query() and schedules delayed work, it\nattempts to acquire a reference using in6_dev_hold(). This increments the\nrefcount from 0 to 1, triggering a \"refcount_t: addition on 0\" warning.\nSince the inet6_dev memory is still scheduled to be freed after the RCU\ngrace period, the device is freed while the work is still scheduled.\nWhen the work runs, it accesses the freed memory, causing a kernel panic.\n\nFix this by using refcount_inc_not_zero() (via a new helper\nin6_dev_hold_safe()) to prevent acquiring a reference if the device is\nalready being destroyed. If the refcount is 0, we do not schedule the work."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached from the IPv6 receive path when ICMPv6 MLD query/report packets are processed (icmpv6_rcv \u2192 igmp6_event_query/igmp6_event_report); igmp6_event_query queues work before link-local validation, so any remotely deliverable ICMPv6 MLD packet to an IPv6-enabled interface can hit the vulnerable code.\nAC:L - A race between incoming MLD traffic and inet6_dev teardown during unregister; an attacker can flood MLD packets and concurrently unregister/delete the interface (e.g., via CAP_NET_ADMIN in a user/network namespace), controlling both sides of the race to reliably trigger the UAF.\nPR:N - Triggering MLD processing requires no authentication or local account\u2014only the ability to send IPv6 ICMPv6 packets to the target; interface teardown can occur during routine operations (container stop, hot-unplug, reconfiguration) without attacker admin rights, and full control is also available with namespace CAP_NET_ADMIN (PR:L).\nUI:N - Exploitation requires no victim interaction beyond normal network operation; the attacker sends crafted or high-rate MLD traffic during interface teardown without the user opening files, clicking links, or performing any deliberate action.\nS:U - Impact is confined to kernel memory corruption and denial of service on the affected host; it does not cross a security boundary such as VM escape, container-to-host breakout, or IOMMU bypass\u2014standard kernel privilege context remains unchanged.\nC:H - Use-after-free of the inet6_dev structure after RCU reclamation allows an attacker to dereference and potentially reuse freed kernel heap memory, providing a path to arbitrary kernel memory disclosure through controlled object reuse and heap grooming.\nI:H - The UAF on inet6_dev and its embedded delayed-work structures enables heap spraying and corruption of kernel function pointers and data, creating a credible path to arbitrary kernel code execution and privilege escalation beyond a simple crash.\nA:H - When the scheduled MLD delayed work runs after inet6_dev is freed, the kernel accesses freed memory causing a use-after-free that the fix commit explicitly documents as leading to kernel panic, resulting in complete loss of system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:47.888Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f12b63ef26a035c5a29b3ef56401e38199010d4a"
},
{
"url": "https://git.kernel.org/stable/c/0401d6cf7877c9be36652385dfcbf7f891b8b590"
},
{
"url": "https://git.kernel.org/stable/c/f03b0a45535d49bdab7e502efaacee205b2a7865"
},
{
"url": "https://git.kernel.org/stable/c/9815e834f5ff8b39e0ea9f0dbd532f4a3b8f0785"
},
{
"url": "https://git.kernel.org/stable/c/ebbebf6cee950d7f1c81990256c0eae9e62572ae"
},
{
"url": "https://git.kernel.org/stable/c/9ce741c22df4fd9546e30306317ac7df3607e48f"
},
{
"url": "https://git.kernel.org/stable/c/0458ba1cda830ba4ccfcd9e19c0891438bcdbe4e"
},
{
"url": "https://git.kernel.org/stable/c/9b26518b6896a16b809b1e42986f4ebac7bccc1e"
}
],
"title": "ipv6: mcast: Fix potential UAF in MLD delayed work",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72322",
"datePublished": "2026-08-15T05:55:34.171Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-16T18:55:17.786Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68448 (GCVE-0-2026-68448)
Vulnerability from cvelistv5
Published
2026-08-12 00:51
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ovl: check access to copy_file_range source with src mounter creds
Commit 5dae222a5ff0c ("vfs: allow copy_file_range to copy across devices")
allowed filesystems that implement the copy_file_range() f_op to decide
if they want to access cross-sb copy from/to the same fs type.
The same commit added checks to verify same sb copy for filesystems that
implement ->copy_file_range() and do not support cross-sb copy at the
time, namely, to ceph, fuse and nfs.
The two remaining fs which implement ->copy_file_range(), cifs and
overlayfs started to support cross-sb copy from this time.
While overlayfs does support cross-sb copy when the two underlying files
are on the same base fs, the copy operation on the two real files from
two different overalyfs filesystems is performed with the mounter
creds of the destination overlayfs and the read permission access hook
for the source file was called with the wrong creds.
This could cause either deny of access to copy which would otherwise be
allowed (e.g. with splice) or allow read access to file which would
otherwise be denied.
Fix the latter case by explicitly verifying read access to source file
with the source overlayfs mounter creds.
The former case remains a quirk of cross-sb overlayfs copy, but
userspace could fall back to regular copy so no harm done.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/overlayfs/file.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7e13e5b087375f1aee1e930503d20efa7084c0fa",
"status": "affected",
"version": "5dae222a5ff0c269730393018a5539cc970a4726",
"versionType": "git"
},
{
"lessThan": "46c296aa678828105842eee29a147508d803d926",
"status": "affected",
"version": "5dae222a5ff0c269730393018a5539cc970a4726",
"versionType": "git"
},
{
"lessThan": "9ec22c8113d8cf72ed7197bb61037dcad09e50d8",
"status": "affected",
"version": "5dae222a5ff0c269730393018a5539cc970a4726",
"versionType": "git"
},
{
"lessThan": "1f4a107439d2e43db176e34919933e617cb7f2c5",
"status": "affected",
"version": "5dae222a5ff0c269730393018a5539cc970a4726",
"versionType": "git"
},
{
"lessThan": "a1e0eb8f55cfe09bb31a202a388babc411292656",
"status": "affected",
"version": "5dae222a5ff0c269730393018a5539cc970a4726",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/overlayfs/file.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\novl: check access to copy_file_range source with src mounter creds\n\nCommit 5dae222a5ff0c (\"vfs: allow copy_file_range to copy across devices\")\nallowed filesystems that implement the copy_file_range() f_op to decide\nif they want to access cross-sb copy from/to the same fs type.\n\nThe same commit added checks to verify same sb copy for filesystems that\nimplement -\u003ecopy_file_range() and do not support cross-sb copy at the\ntime, namely, to ceph, fuse and nfs.\n\nThe two remaining fs which implement -\u003ecopy_file_range(), cifs and\noverlayfs started to support cross-sb copy from this time.\n\nWhile overlayfs does support cross-sb copy when the two underlying files\nare on the same base fs, the copy operation on the two real files from\ntwo different overalyfs filesystems is performed with the mounter\ncreds of the destination overlayfs and the read permission access hook\nfor the source file was called with the wrong creds.\n\nThis could cause either deny of access to copy which would otherwise be\nallowed (e.g. with splice) or allow read access to file which would\notherwise be denied.\n\nFix the latter case by explicitly verifying read access to source file\nwith the source overlayfs mounter creds.\n\nThe former case remains a quirk of cross-sb overlayfs copy, but\nuserspace could fall back to regular copy so no harm done."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:12.676Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7e13e5b087375f1aee1e930503d20efa7084c0fa"
},
{
"url": "https://git.kernel.org/stable/c/46c296aa678828105842eee29a147508d803d926"
},
{
"url": "https://git.kernel.org/stable/c/9ec22c8113d8cf72ed7197bb61037dcad09e50d8"
},
{
"url": "https://git.kernel.org/stable/c/1f4a107439d2e43db176e34919933e617cb7f2c5"
},
{
"url": "https://git.kernel.org/stable/c/a1e0eb8f55cfe09bb31a202a388babc411292656"
}
],
"title": "ovl: check access to copy_file_range source with src mounter creds",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68448",
"datePublished": "2026-08-12T00:51:44.866Z",
"dateReserved": "2026-07-30T09:28:09.395Z",
"dateUpdated": "2026-10-21T12:44:12.676Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72054 (GCVE-0-2026-72054)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ip_vti: require CAP_NET_ADMIN in the device netns for changelink
vti_changelink() operates on at most two netns, dev_net(dev) and the
tunnel link netns t->net. They differ once the device is created in or
moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Gate vti_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e Version: 895de9a3488abcdd186680f0af3cce7f2d4d4a6e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72054",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:59.364061Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:25.227Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/ip_vti.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1caf737e625143c6f23c32d2b747b1a3e42e5699",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "32edf8aa297745226854eda2d96c0fac66c1bb15",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "973ead9e565423642e4533e1547b5d2c0476fb03",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "33fd93961557ec8e3e9958995b28684c5f949394",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "6d8bc0dc99472d62c57c2a3d436e6ab408592bda",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "9571af2eec8023af9a1671b7f2cd4ab400011724",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "88b33ee458a6ca5fbef6c53b9dba772da69dab68",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
},
{
"lessThan": "95cceadbfd52d7239bd730afdda0655287d77425",
"status": "affected",
"version": "895de9a3488abcdd186680f0af3cce7f2d4d4a6e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/ip_vti.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.15"
},
{
"lessThan": "3.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ip_vti: require CAP_NET_ADMIN in the device netns for changelink\n\nvti_changelink() operates on at most two netns, dev_net(dev) and the\ntunnel link netns t-\u003enet. They differ once the device is created in or\nmoved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in t-\u003enet can rewrite a tunnel that\nlives in t-\u003enet.\n\nGate vti_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires RTM_NEWLINK changelink over a local rtnetlink socket; vti_changelink is only reachable from rtnl configuration, not from received IPsec or IPv4 packets handled by vti_input/vti_rcv_proto.\nAC:L - Once a VTI device exists with t-\u003enet differing from dev_net(dev) via IFLA_NET_NS_FD migration or IFLA_LINK_NETNSID newlink, a single deterministic netlink changelink bypasses the missing check with no race or memory-layout dependency.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN only in dev_net(dev), obtainable by an unprivileged local user via unshare --user --map-root-user --net; no CAP_NET_ADMIN in the sticky link netns t-\u003enet is required.\nUI:N - The attack is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - Authorization is checked against dev_net(dev) while vti_changelink mutates tunnel state in t-\u003enet via ip_tunnel_changelink/ip_tunnel_update, crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host\u0027s network namespace.\nC:H - An attacker can rewrite IFLA_VTI_LOCAL/REMOTE, i_key/o_key, link, and fwmark to redirect IPsec VTI traffic to an attacker-controlled endpoint, exposing decrypted inner payloads carried by the VPN tunnel in the victim link netns.\nI:H - Unauthorized changelink updates live VTI tunnel endpoints, IPsec keys, underlay netdev, and fwmark in t-\u003enet, enabling redirection and injection of IPsec-protected traffic across the namespace boundary.\nA:H - Rewriting tunnel remote/local addresses, IPsec keys, or the underlay link breaks site-to-site IPsec VPN connectivity, causing sustained loss of service for every workload depending on the affected VTI tunnel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:51.024Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1caf737e625143c6f23c32d2b747b1a3e42e5699"
},
{
"url": "https://git.kernel.org/stable/c/32edf8aa297745226854eda2d96c0fac66c1bb15"
},
{
"url": "https://git.kernel.org/stable/c/973ead9e565423642e4533e1547b5d2c0476fb03"
},
{
"url": "https://git.kernel.org/stable/c/33fd93961557ec8e3e9958995b28684c5f949394"
},
{
"url": "https://git.kernel.org/stable/c/6d8bc0dc99472d62c57c2a3d436e6ab408592bda"
},
{
"url": "https://git.kernel.org/stable/c/9571af2eec8023af9a1671b7f2cd4ab400011724"
},
{
"url": "https://git.kernel.org/stable/c/88b33ee458a6ca5fbef6c53b9dba772da69dab68"
},
{
"url": "https://git.kernel.org/stable/c/95cceadbfd52d7239bd730afdda0655287d77425"
}
],
"title": "net: ip_vti: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72054",
"datePublished": "2026-08-15T05:52:10.679Z",
"dateReserved": "2026-08-09T03:40:39.903Z",
"dateUpdated": "2026-10-19T21:19:25.227Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90265 (GCVE-0-2026-90265)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: defrag: fix deadlock between defrag and delalloc space reservation
While running fsstress with autodefrag and flushoncommit, hit a deadlock
due to the fact that defrag reserves delalloc space while it's holding
dirty and locked folios, besides the extent range lock. The stack traces
are the following:
[958.624] task:kworker/u50:3 state:D stack:0 pid:20365 tgid:20365 ppid:2 task_flags:0x4208060 flags:0x00080000
[958.626] Workqueue: events_unbound btrfs_async_reclaim_metadata_space [btrfs]
[958.627] Call Trace:
[958.628] <TASK>
[958.628] __schedule+0x4be/0x10f0
[958.629] ? preempt_count_add+0x69/0xa0
[958.630] schedule+0x26/0xd0
[958.631] wait_current_trans+0x102/0x160 [btrfs]
[958.632] ? __pfx_autoremove_wake_function+0x10/0x10
[958.633] start_transaction+0x374/0x900 [btrfs]
[958.634] btrfs_commit_current_transaction+0x1d/0x70 [btrfs]
[958.635] flush_space+0xca/0x5e0 [btrfs]
[958.636] ? _raw_spin_unlock+0x15/0x30
[958.637] ? btrfs_reduce_alloc_profile+0x8c/0x190 [btrfs]
[958.639] ? _raw_spin_unlock+0x15/0x30
[958.640] ? calc_available_free_space.isra.0+0x6f/0x110 [btrfs]
[958.641] do_async_reclaim_metadata_space+0x84/0x190 [btrfs]
[958.642] btrfs_async_reclaim_metadata_space+0x64/0x80 [btrfs]
[958.644] process_one_work+0x19d/0x3a0
[958.644] worker_thread+0x1c4/0x330
[958.645] ? __pfx_worker_thread+0x10/0x10
[958.646] kthread+0xfc/0x130
[958.647] ? __pfx_kthread+0x10/0x10
[958.648] ret_from_fork+0x1f7/0x2c0
[958.648] ? __pfx_kthread+0x10/0x10
[958.649] ret_from_fork_asm+0x1a/0x30
[958.650] </TASK>
[958.651] task:kworker/u49:7 state:D stack:0 pid:52990 tgid:52990 ppid:2 task_flags:0x4208060 flags:0x00080000
[958.653] Workqueue: writeback wb_workfn (flush-btrfs-334)
[958.655] Call Trace:
[958.655] <TASK>
[958.656] __schedule+0x4be/0x10f0
[958.657] ? __blk_flush_plug+0xe9/0x140
[958.658] schedule+0x26/0xd0
[958.658] io_schedule+0x42/0x70
[958.659] folio_wait_bit_common+0x12b/0x330
[958.660] ? folio_wait_bit_common+0x100/0x330
[958.662] ? __pfx_wake_page_function+0x10/0x10
[958.663] extent_write_cache_pages+0x599/0x830 [btrfs]
[958.664] ? acpi_fwnode_get_reference_args+0x1fa/0x270
[958.665] btrfs_writepages+0x77/0x130 [btrfs]
[958.666] ? __pfx_end_bbio_data_write+0x10/0x10 [btrfs]
[958.667] do_writepages+0xc6/0x160
[958.668] __writeback_single_inode+0x42/0x310
[958.669] writeback_sb_inodes+0x231/0x570
[958.670] wb_writeback+0x8a/0x340
[958.671] wb_workfn+0xbf/0x450
[958.672] ? finish_task_switch.isra.0+0xc1/0x350
[958.673] process_one_work+0x19d/0x3a0
[958.673] worker_thread+0x1c4/0x330
[958.674] ? __pfx_worker_thread+0x10/0x10
[958.675] kthread+0xfc/0x130
[958.676] ? __pfx_kthread+0x10/0x10
[958.676] ret_from_fork+0x1f7/0x2c0
[958.677] ? __pfx_kthread+0x10/0x10
[958.678] ret_from_fork_asm+0x1a/0x30
[958.679] </TASK>
[958.679] task:btrfs-cleaner state:D stack:0 pid:296750 tgid:296750 ppid:2 task_flags:0x208040 flags:0x00080000
[958.681] Call Trace:
[958.682] <TASK>
[958.682] __schedule+0x4be/0x10f0
[958.683] schedule+0x26/0xd0
[958.684] handle_reserve_ticket+0x1b9/0x2c0 [btrfs]
[958.685] ? __pfx_autoremove_wake_function+0x10/0x10
[958.686] reserve_bytes+0x283/0x4c0 [btrfs]
[958.687] btrfs_reserve_metadata_bytes+0x18/0xb0 [btrfs]
[958.688] btrfs_delalloc_reserve_metadata+0x121/0x320 [btrfs]
[958.690] btrfs_delalloc_reserve_space+0x46/0xb0 [btrfs]
[958.691] btrfs_defrag_file+0x903/0x1110 [btrfs]
[958.692] btrfs_run_defrag_inodes+0x334/0x430 [btrfs]
[958.694] cleaner_kthread+0x97/0x1c0 [btrfs]
[958.694] ? __pfx_cleaner_kthread+0x10/0x10 [btrfs]
[958.696] kthread+0xfc/0x130
[958.696] ? __pfx_kthread+0x10/0x10
[958.697] ret_
---truncated---
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/defrag.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c97277aa6ce8ac725642aced0fe20cd8d31f6e09",
"status": "affected",
"version": "22b398eeeed43d51e85b1008e51bf9663ac1f491",
"versionType": "git"
},
{
"lessThan": "37614074596827a5f292243673b699c90ff63e7d",
"status": "affected",
"version": "22b398eeeed43d51e85b1008e51bf9663ac1f491",
"versionType": "git"
},
{
"lessThan": "a9701dd06e82c345fe70debdf8835b7eb5000c59",
"status": "affected",
"version": "22b398eeeed43d51e85b1008e51bf9663ac1f491",
"versionType": "git"
},
{
"lessThan": "ac916391e1c70801649f7d6f85014f687983bc33",
"status": "affected",
"version": "22b398eeeed43d51e85b1008e51bf9663ac1f491",
"versionType": "git"
},
{
"lessThan": "ba02eab28041f9a4bbe9fc90c7249644fef6de0f",
"status": "affected",
"version": "22b398eeeed43d51e85b1008e51bf9663ac1f491",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/defrag.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.16"
},
{
"lessThan": "5.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: defrag: fix deadlock between defrag and delalloc space reservation\n\nWhile running fsstress with autodefrag and flushoncommit, hit a deadlock\ndue to the fact that defrag reserves delalloc space while it\u0027s holding\ndirty and locked folios, besides the extent range lock. The stack traces\nare the following:\n\n [958.624] task:kworker/u50:3 state:D stack:0 pid:20365 tgid:20365 ppid:2 task_flags:0x4208060 flags:0x00080000\n [958.626] Workqueue: events_unbound btrfs_async_reclaim_metadata_space [btrfs]\n [958.627] Call Trace:\n [958.628] \u003cTASK\u003e\n [958.628] __schedule+0x4be/0x10f0\n [958.629] ? preempt_count_add+0x69/0xa0\n [958.630] schedule+0x26/0xd0\n [958.631] wait_current_trans+0x102/0x160 [btrfs]\n [958.632] ? __pfx_autoremove_wake_function+0x10/0x10\n [958.633] start_transaction+0x374/0x900 [btrfs]\n [958.634] btrfs_commit_current_transaction+0x1d/0x70 [btrfs]\n [958.635] flush_space+0xca/0x5e0 [btrfs]\n [958.636] ? _raw_spin_unlock+0x15/0x30\n [958.637] ? btrfs_reduce_alloc_profile+0x8c/0x190 [btrfs]\n [958.639] ? _raw_spin_unlock+0x15/0x30\n [958.640] ? calc_available_free_space.isra.0+0x6f/0x110 [btrfs]\n [958.641] do_async_reclaim_metadata_space+0x84/0x190 [btrfs]\n [958.642] btrfs_async_reclaim_metadata_space+0x64/0x80 [btrfs]\n [958.644] process_one_work+0x19d/0x3a0\n [958.644] worker_thread+0x1c4/0x330\n [958.645] ? __pfx_worker_thread+0x10/0x10\n [958.646] kthread+0xfc/0x130\n [958.647] ? __pfx_kthread+0x10/0x10\n [958.648] ret_from_fork+0x1f7/0x2c0\n [958.648] ? __pfx_kthread+0x10/0x10\n [958.649] ret_from_fork_asm+0x1a/0x30\n [958.650] \u003c/TASK\u003e\n [958.651] task:kworker/u49:7 state:D stack:0 pid:52990 tgid:52990 ppid:2 task_flags:0x4208060 flags:0x00080000\n [958.653] Workqueue: writeback wb_workfn (flush-btrfs-334)\n [958.655] Call Trace:\n [958.655] \u003cTASK\u003e\n [958.656] __schedule+0x4be/0x10f0\n [958.657] ? __blk_flush_plug+0xe9/0x140\n [958.658] schedule+0x26/0xd0\n [958.658] io_schedule+0x42/0x70\n [958.659] folio_wait_bit_common+0x12b/0x330\n [958.660] ? folio_wait_bit_common+0x100/0x330\n [958.662] ? __pfx_wake_page_function+0x10/0x10\n [958.663] extent_write_cache_pages+0x599/0x830 [btrfs]\n [958.664] ? acpi_fwnode_get_reference_args+0x1fa/0x270\n [958.665] btrfs_writepages+0x77/0x130 [btrfs]\n [958.666] ? __pfx_end_bbio_data_write+0x10/0x10 [btrfs]\n [958.667] do_writepages+0xc6/0x160\n [958.668] __writeback_single_inode+0x42/0x310\n [958.669] writeback_sb_inodes+0x231/0x570\n [958.670] wb_writeback+0x8a/0x340\n [958.671] wb_workfn+0xbf/0x450\n [958.672] ? finish_task_switch.isra.0+0xc1/0x350\n [958.673] process_one_work+0x19d/0x3a0\n [958.673] worker_thread+0x1c4/0x330\n [958.674] ? __pfx_worker_thread+0x10/0x10\n [958.675] kthread+0xfc/0x130\n [958.676] ? __pfx_kthread+0x10/0x10\n [958.676] ret_from_fork+0x1f7/0x2c0\n [958.677] ? __pfx_kthread+0x10/0x10\n [958.678] ret_from_fork_asm+0x1a/0x30\n [958.679] \u003c/TASK\u003e\n [958.679] task:btrfs-cleaner state:D stack:0 pid:296750 tgid:296750 ppid:2 task_flags:0x208040 flags:0x00080000\n [958.681] Call Trace:\n [958.682] \u003cTASK\u003e\n [958.682] __schedule+0x4be/0x10f0\n [958.683] schedule+0x26/0xd0\n [958.684] handle_reserve_ticket+0x1b9/0x2c0 [btrfs]\n [958.685] ? __pfx_autoremove_wake_function+0x10/0x10\n [958.686] reserve_bytes+0x283/0x4c0 [btrfs]\n [958.687] btrfs_reserve_metadata_bytes+0x18/0xb0 [btrfs]\n [958.688] btrfs_delalloc_reserve_metadata+0x121/0x320 [btrfs]\n [958.690] btrfs_delalloc_reserve_space+0x46/0xb0 [btrfs]\n [958.691] btrfs_defrag_file+0x903/0x1110 [btrfs]\n [958.692] btrfs_run_defrag_inodes+0x334/0x430 [btrfs]\n [958.694] cleaner_kthread+0x97/0x1c0 [btrfs]\n [958.694] ? __pfx_cleaner_kthread+0x10/0x10 [btrfs]\n [958.696] kthread+0xfc/0x130\n [958.696] ? __pfx_kthread+0x10/0x10\n [958.697] ret_\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:45.545Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c97277aa6ce8ac725642aced0fe20cd8d31f6e09"
},
{
"url": "https://git.kernel.org/stable/c/37614074596827a5f292243673b699c90ff63e7d"
},
{
"url": "https://git.kernel.org/stable/c/a9701dd06e82c345fe70debdf8835b7eb5000c59"
},
{
"url": "https://git.kernel.org/stable/c/ac916391e1c70801649f7d6f85014f687983bc33"
},
{
"url": "https://git.kernel.org/stable/c/ba02eab28041f9a4bbe9fc90c7249644fef6de0f"
}
],
"title": "btrfs: defrag: fix deadlock between defrag and delalloc space reservation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90265",
"datePublished": "2026-09-17T16:08:01.372Z",
"dateReserved": "2026-09-11T19:38:34.796Z",
"dateUpdated": "2026-10-21T12:50:45.545Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72352 (GCVE-0-2026-72352)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
HID: bpf: Fix hid_bpf_get_data() range check
hid_bpf_get_data() returns a pointer into the HID-BPF context data when
the caller-provided offset and size fit inside ctx->allocated_size.
The current check adds rdwr_buf_size and offset before comparing the
result against ctx->allocated_size. Since both values are unsigned, a
very large size can wrap the sum below ctx->allocated_size and make the
helper return a pointer even though the requested range is not contained
in the backing buffer.
Use check_add_overflow() to reject wrapped range ends before comparing
the requested range end against ctx->allocated_size.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72352",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:53.495070Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:20.122Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hid/bpf/hid_bpf_dispatch.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f72176bde0cc0e709e41ab170c71e8f229232af6",
"status": "affected",
"version": "658ee5a64fcfbbf758447fa3af425729eaabb0dc",
"versionType": "git"
},
{
"lessThan": "ca373549140dfb386aa2de38364b58441b1f4885",
"status": "affected",
"version": "658ee5a64fcfbbf758447fa3af425729eaabb0dc",
"versionType": "git"
},
{
"lessThan": "61a959b82f1aecd6d2d35c208013dd077cac9d10",
"status": "affected",
"version": "658ee5a64fcfbbf758447fa3af425729eaabb0dc",
"versionType": "git"
},
{
"lessThan": "f81bc5a709dcbaf2a3bbef4ca7167f93900cc39f",
"status": "affected",
"version": "658ee5a64fcfbbf758447fa3af425729eaabb0dc",
"versionType": "git"
},
{
"lessThan": "2d044049421dd48212b28646a850749d4a2d57fa",
"status": "affected",
"version": "658ee5a64fcfbbf758447fa3af425729eaabb0dc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hid/bpf/hid_bpf_dispatch.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: bpf: Fix hid_bpf_get_data() range check\n\nhid_bpf_get_data() returns a pointer into the HID-BPF context data when\nthe caller-provided offset and size fit inside ctx-\u003eallocated_size.\n\nThe current check adds rdwr_buf_size and offset before comparing the\nresult against ctx-\u003eallocated_size. Since both values are unsigned, a\nvery large size can wrap the sum below ctx-\u003eallocated_size and make the\nhelper return a pointer even though the requested range is not contained\nin the backing buffer.\n\nUse check_add_overflow() to reject wrapped range ends before comparing\nthe requested range end against ctx-\u003eallocated_size."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is only reachable through local bpf() syscalls that load BPF_PROG_TYPE_STRUCT_OPS HID-BPF programs and attach them via BPF_LINK_CREATE; per kernel CNA guidance BPF subsystem bugs are Local even though callbacks may later run on HID input.\nAC:L - Once a HID-BPF program is loaded, the attacker fully controls offset and rdwr_buf_size passed to hid_bpf_get_data(); values such as offset=2 with size=~0 reliably wrap the unsigned sum and bypass the check without races or uncontrollable memory layout.\nPR:L - Loading BPF_MAP_TYPE_STRUCT_OPS maps and BPF_PROG_TYPE_STRUCT_OPS programs requires CAP_BPF (sysctl_unprivileged_bpf_disabled blocks unprivileged BPF); per kernel CNA guidance this is Low because CAP_BPF can be delegated via BPF tokens into user namespaces, not only init-namespace root.\nUI:N - The attacker loads and attaches their own HID-BPF program and triggers hid_bpf_get_data() from its callbacks; no separate victim action such as mounting, opening a file, or plugging in a device is required beyond the attacker\u0027s own bpf operations.\nS:U - Exploitation corrupts kernel heap memory from within the same kernel security authority to achieve local privilege escalation; it does not inherently cross VM, IOMMU, or container sandbox boundaries as a distinct scope change.\nC:H - The overflow lets BPF code obtain a pointer outside the allocated HID-BPF context buffer and read adjacent kernel heap memory, enabling arbitrary kernel information disclosure and supporting further exploitation primitives.\nI:H - The same out-of-bounds pointer allows arbitrary kernel heap writes through the returned buffer, enabling control of adjacent objects and potential arbitrary code execution in kernel context.\nA:H - Large out-of-bounds reads/writes against kmalloc-backed HID-BPF buffers can corrupt critical kernel structures and cause kernel oops, panic, or hang during HID-BPF callback execution."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:39.607Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f72176bde0cc0e709e41ab170c71e8f229232af6"
},
{
"url": "https://git.kernel.org/stable/c/ca373549140dfb386aa2de38364b58441b1f4885"
},
{
"url": "https://git.kernel.org/stable/c/61a959b82f1aecd6d2d35c208013dd077cac9d10"
},
{
"url": "https://git.kernel.org/stable/c/f81bc5a709dcbaf2a3bbef4ca7167f93900cc39f"
},
{
"url": "https://git.kernel.org/stable/c/2d044049421dd48212b28646a850749d4a2d57fa"
}
],
"title": "HID: bpf: Fix hid_bpf_get_data() range check",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72352",
"datePublished": "2026-08-15T05:55:54.809Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-10-21T12:44:39.607Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72413 (GCVE-0-2026-72413)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-03 10:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix err_chunk memory leaks in INIT handling
When sctp_verify_init() encounters unrecognized parameters, it allocates an
err_chunk to report them. However, this chunk is leaked in several code
paths:
1. In sctp_sf_do_5_1B_init(), if security_sctp_assoc_request() fails after
sctp_verify_init() has populated err_chunk, the function returns
immediately without freeing it.
2. In sctp_sf_do_unexpected_init(), the same leak occurs on the
security_sctp_assoc_request() failure path.
3. In sctp_sf_do_unexpected_init(), on the success path after copying
unrecognized parameters to the INIT-ACK, the function returns without
freeing err_chunk, unlike sctp_sf_do_5_1B_init() which properly frees
it.
Fix all three leaks by adding sctp_chunk_free(err_chunk) calls before
returning in the error paths and on the success path in
sctp_sf_do_unexpected_init().
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_statefuns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a8e6a839c0e7ca1da752faaab51e2eafb17483a4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "43ddbcdc0ed74a8fba4aff5e623ace8135411b93",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6acedac7a14af71cfe25024ead28e16a070899e4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1cae40d423a2042c7970f29c00028951ec20db8a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "94f55994e19e8f0676990b9d5015b58ab6a97e00",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9f58a0a4d6c2ed5d341bba64f058f15d1b0c36f2",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_statefuns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix err_chunk memory leaks in INIT handling\n\nWhen sctp_verify_init() encounters unrecognized parameters, it allocates an\nerr_chunk to report them. However, this chunk is leaked in several code\npaths:\n\n1. In sctp_sf_do_5_1B_init(), if security_sctp_assoc_request() fails after\n sctp_verify_init() has populated err_chunk, the function returns\n immediately without freeing it.\n\n2. In sctp_sf_do_unexpected_init(), the same leak occurs on the\n security_sctp_assoc_request() failure path.\n\n3. In sctp_sf_do_unexpected_init(), on the success path after copying\n unrecognized parameters to the INIT-ACK, the function returns without\n freeing err_chunk, unlike sctp_sf_do_5_1B_init() which properly frees\n it.\n\nFix all three leaks by adding sctp_chunk_free(err_chunk) calls before\nreturning in the error paths and on the success path in\nsctp_sf_do_unexpected_init()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:55:52.258Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a8e6a839c0e7ca1da752faaab51e2eafb17483a4"
},
{
"url": "https://git.kernel.org/stable/c/43ddbcdc0ed74a8fba4aff5e623ace8135411b93"
},
{
"url": "https://git.kernel.org/stable/c/6acedac7a14af71cfe25024ead28e16a070899e4"
},
{
"url": "https://git.kernel.org/stable/c/1cae40d423a2042c7970f29c00028951ec20db8a"
},
{
"url": "https://git.kernel.org/stable/c/94f55994e19e8f0676990b9d5015b58ab6a97e00"
},
{
"url": "https://git.kernel.org/stable/c/9f58a0a4d6c2ed5d341bba64f058f15d1b0c36f2"
}
],
"title": "sctp: fix err_chunk memory leaks in INIT handling",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72413",
"datePublished": "2026-08-15T05:56:34.857Z",
"dateReserved": "2026-08-09T03:40:39.926Z",
"dateUpdated": "2026-10-03T10:55:52.258Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63795 (GCVE-0-2026-63795)
Vulnerability from cvelistv5
Published
2026-07-19 12:02
Modified
2026-10-19 20:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
9p: avoid putting oldfid in p9_client_walk() error path
When p9_client_walk() is called with clone set to false, fid aliases
oldfid. If the walk subsequently fails after the request has been sent,
the error path jumps to clunk_fid, which currently calls p9_fid_put(fid)
unconditionally.
This drops a reference to oldfid even though ownership of oldfid remains
with the caller. If this is the last reference, oldfid can be clunked and
destroyed while the caller still expects it to be valid. A later use or
put of oldfid can then trigger a use-after-free or refcount underflow.
Fix this by only putting fid in the clunk_fid error path when it does not
alias oldfid, matching the existing guard in the error path below.
This can be triggered when a multi-component walk is split into multiple
p9_client_walk() calls and a later non-cloning walk fails. A reproducer
and refcount warning logs are available on request.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e Version: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63795",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:30:35.744549Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:07:47.155Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/9p/client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "99c379ca1e221c3d75c7c804ebbf4e5ee37a3070",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
},
{
"lessThan": "b84f46179c806450b89821221ea5bd9a1698aba8",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
},
{
"lessThan": "a61bdcba4f64c2f90d01461913f429ab151f1ca6",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
},
{
"lessThan": "6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
},
{
"lessThan": "a7656d368265d085ac9bb85ab31b0cdb72ad8c38",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
},
{
"lessThan": "1a3860d46e3eb47dbd60339783cdad7904486b9f",
"status": "affected",
"version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/9p/client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.177",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.144",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.95",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.38",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.177",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.144",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.95",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.38",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.3",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\n9p: avoid putting oldfid in p9_client_walk() error path\n\nWhen p9_client_walk() is called with clone set to false, fid aliases\noldfid. If the walk subsequently fails after the request has been sent,\nthe error path jumps to clunk_fid, which currently calls p9_fid_put(fid)\nunconditionally.\n\nThis drops a reference to oldfid even though ownership of oldfid remains\nwith the caller. If this is the last reference, oldfid can be clunked and\ndestroyed while the caller still expects it to be valid. A later use or\nput of oldfid can then trigger a use-after-free or refcount underflow.\n\nFix this by only putting fid in the clunk_fid error path when it does not\nalias oldfid, matching the existing guard in the error path below.\n\nThis can be triggered when a multi-component walk is split into multiple\np9_client_walk() calls and a later non-cloning walk fails. A reproducer\nand refcount warning logs are available on request."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The kernel 9p client processes TWALK responses from a remote 9p server over TCP/RDMA transports, and a malicious or compromised server can return a partial RWALK (nwqids \u003c nwname) or malformed reply to hit the clunk_fid error path during a multi-segment walk.\nAC:L - An attacker who controls the 9p server can reliably craft deep directory layouts and RWALK failure responses; the reproducer path (split multi-component walk with a failing non-cloning segment) does not depend on race timing or memory layout.\nPR:N - Exploitation only requires access to an already-mounted 9p filesystem and normal file operations (lookup/stat/open) that trigger v9fs_fid_lookup(); no elevated kernel capabilities or real-root privileges are needed beyond filesystem access permissions.\nUI:N - No interactive victim action is required beyond routine file access on a pre-mounted 9p filesystem (common with virtio-9p in QEMU/KVM/Firecracker VMs where the mount is established at boot).\nS:C - A malicious remote 9p server operates outside the kernel client\u0027s security boundary, and successful exploitation corrupts kernel heap memory (struct p9_fid use-after-free), impacting the kernel beyond the 9p client\u0027s own scope.\nC:H - Premature p9_fid_put() can destroy oldfid while callers still hold dangling references, producing a heap use-after-free on struct p9_fid that is exploitable for arbitrary kernel memory disclosure.\nI:H - The use-after-free and refcount underflow on struct p9_fid provide heap corruption primitives that can be leveraged for arbitrary kernel writes and local privilege escalation.\nA:H - The bug can cause immediate kernel oops/panic from use-after-free or refcount underflow when the prematurely freed fid is subsequently accessed or put again."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:51:00.086Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/99c379ca1e221c3d75c7c804ebbf4e5ee37a3070"
},
{
"url": "https://git.kernel.org/stable/c/b84f46179c806450b89821221ea5bd9a1698aba8"
},
{
"url": "https://git.kernel.org/stable/c/a61bdcba4f64c2f90d01461913f429ab151f1ca6"
},
{
"url": "https://git.kernel.org/stable/c/6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea"
},
{
"url": "https://git.kernel.org/stable/c/a7656d368265d085ac9bb85ab31b0cdb72ad8c38"
},
{
"url": "https://git.kernel.org/stable/c/1a3860d46e3eb47dbd60339783cdad7904486b9f"
}
],
"title": "9p: avoid putting oldfid in p9_client_walk() error path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63795",
"datePublished": "2026-07-19T12:02:04.069Z",
"dateReserved": "2026-07-19T07:54:57.012Z",
"dateUpdated": "2026-10-19T20:07:47.155Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74671 (GCVE-0-2026-74671)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-22 15:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ima: fix out-of-bounds read in xattr_verify()
The digest-length check in xattr_verify() mixes int and size_t:
if (xattr_len - sizeof(xattr_value->type) - hash_start >=
iint->ima_hash->length)
sizeof() yields size_t, so the usual arithmetic conversions promote
the whole left-hand side to unsigned 64-bit before the subtraction
runs. For a truncated xattr this underflows instead of going negative:
a 1-byte IMA_XATTR_DIGEST_NG xattr (xattr_len == 1, hash_start == 1)
turns "1 - 1 - 1" into SIZE_MAX, which is trivially >= ima_hash->length.
The check then passes and the following memcmp() reads
iint->ima_hash->length bytes starting past the end of the buffer
vfs_getxattr_alloc() allocated for it.
Nothing upstream clamps xattr_len back into a safe range first:
ima_get_hash_algo() only special-cases xattr_len < 2 to pick a default
algorithm, and evm_verifyxattr() returns INTEGRITY_UNKNOWN rather than
failing when no HMAC key is loaded, so a truncated security.ima value
reaches the length check as-is.
Rewrite the comparison so every operand stays a signed int and no
implicit conversion to size_t can occur.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d Version: 3ea7a56067e663278470c04fd655adf809e72d4d |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/integrity/ima/ima_appraise.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d823b5f4557083d1dd92096f796a78a2b1b06d10",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "caeb105c15ea2431fa8da7ecfa242d0c68272426",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "a784b4732ac7e51862b9b210c2d8b2ab9e83568c",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "b6cb134707a2127d90a58d69dd818679cae8033c",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "7e515b6c9aab452a4f0734bd7208e4e780e164ca",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "27f3924061592d0ef6b04e16f48754b6cb6adf27",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "dd04114af0d451091f7b8cbd26d9e37d011e9131",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
},
{
"lessThan": "5ff232d31106f45ac87c3b64e1d35a0667777797",
"status": "affected",
"version": "3ea7a56067e663278470c04fd655adf809e72d4d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/integrity/ima/ima_appraise.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.13"
},
{
"lessThan": "3.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nima: fix out-of-bounds read in xattr_verify()\n\nThe digest-length check in xattr_verify() mixes int and size_t:\n\n\tif (xattr_len - sizeof(xattr_value-\u003etype) - hash_start \u003e=\n\t\t\tiint-\u003eima_hash-\u003elength)\n\nsizeof() yields size_t, so the usual arithmetic conversions promote\nthe whole left-hand side to unsigned 64-bit before the subtraction\nruns. For a truncated xattr this underflows instead of going negative:\na 1-byte IMA_XATTR_DIGEST_NG xattr (xattr_len == 1, hash_start == 1)\nturns \"1 - 1 - 1\" into SIZE_MAX, which is trivially \u003e= ima_hash-\u003elength.\nThe check then passes and the following memcmp() reads\niint-\u003eima_hash-\u003elength bytes starting past the end of the buffer\nvfs_getxattr_alloc() allocated for it.\n\nNothing upstream clamps xattr_len back into a safe range first:\nima_get_hash_algo() only special-cases xattr_len \u003c 2 to pick a default\nalgorithm, and evm_verifyxattr() returns INTEGRITY_UNKNOWN rather than\nfailing when no HMAC key is loaded, so a truncated security.ima value\nreaches the length check as-is.\n\nRewrite the comparison so every operand stays a signed int and no\nimplicit conversion to size_t can occur."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:32:41.480Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d823b5f4557083d1dd92096f796a78a2b1b06d10"
},
{
"url": "https://git.kernel.org/stable/c/caeb105c15ea2431fa8da7ecfa242d0c68272426"
},
{
"url": "https://git.kernel.org/stable/c/a784b4732ac7e51862b9b210c2d8b2ab9e83568c"
},
{
"url": "https://git.kernel.org/stable/c/b6cb134707a2127d90a58d69dd818679cae8033c"
},
{
"url": "https://git.kernel.org/stable/c/7e515b6c9aab452a4f0734bd7208e4e780e164ca"
},
{
"url": "https://git.kernel.org/stable/c/27f3924061592d0ef6b04e16f48754b6cb6adf27"
},
{
"url": "https://git.kernel.org/stable/c/dd04114af0d451091f7b8cbd26d9e37d011e9131"
},
{
"url": "https://git.kernel.org/stable/c/5ff232d31106f45ac87c3b64e1d35a0667777797"
}
],
"title": "ima: fix out-of-bounds read in xattr_verify()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74671",
"datePublished": "2026-08-22T15:32:41.480Z",
"dateReserved": "2026-08-15T05:44:03.925Z",
"dateUpdated": "2026-08-22T15:32:41.480Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80864 (GCVE-0-2026-80864)
Vulnerability from cvelistv5
Published
2026-09-04 15:55
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix responder UAF on IB_QP_MAX_DEST_RD_ATOMIC modify_qp
rxe_qp_from_attr() handles IB_QP_MAX_DEST_RD_ATOMIC outside the
IB_QP_STATE path, so it holds no state_lock and runs while the responder
task rxe_receiver() (recv_task on rxe_wq) is live. A modify_qp() setting
only that attribute calls free_rd_atomic_resources() then
alloc_rd_atomic_resources(), swapping qp->resp.resources[] while
rxe_prepare_res()/find_resource() walk it; free_rd_atomic_resources()
also leaves the cached pointer qp->resp.res dangling. A local
unprivileged user can race the free/realloc into a use-after-free in
rxe_receiver() (local DoS).
Drain recv_task around the swap with rxe_disable_task()/rxe_enable_task(),
as rxe_qp_reset() already does when tearing this array down, re-enabling
only after alloc_rd_atomic_resources() succeeds so the responder never
resumes against a NULL qp->resp.resources on the ENOMEM path. Also clear
qp->resp.res in free_rd_atomic_resources(), like the rxe_resp.c
completion paths.
Reproduced under KASAN; the slab-use-after-free in rxe_receiver() is gone.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_qp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82257379061c0a7aba6c77081d988339982af115",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "0136b528b753c5a56e4d997ef20b86bb6750b8fb",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "ffa4f0be69656be1755090f02db38d49816585c6",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "d4cd32eb8bd2b0ffbdc7b1f3d82ce6a371f8f844",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "60dfd47929cd1e7070daa810d40ce538d888410d",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "6f7014237405e7f032b5c53a82d9eccf6161c291",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_qp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Fix responder UAF on IB_QP_MAX_DEST_RD_ATOMIC modify_qp\n\nrxe_qp_from_attr() handles IB_QP_MAX_DEST_RD_ATOMIC outside the\nIB_QP_STATE path, so it holds no state_lock and runs while the responder\ntask rxe_receiver() (recv_task on rxe_wq) is live. A modify_qp() setting\nonly that attribute calls free_rd_atomic_resources() then\nalloc_rd_atomic_resources(), swapping qp-\u003eresp.resources[] while\nrxe_prepare_res()/find_resource() walk it; free_rd_atomic_resources()\nalso leaves the cached pointer qp-\u003eresp.res dangling. A local\nunprivileged user can race the free/realloc into a use-after-free in\nrxe_receiver() (local DoS).\n\nDrain recv_task around the swap with rxe_disable_task()/rxe_enable_task(),\nas rxe_qp_reset() already does when tearing this array down, re-enabling\nonly after alloc_rd_atomic_resources() succeeds so the responder never\nresumes against a NULL qp-\u003eresp.resources on the ENOMEM path. Also clear\nqp-\u003eresp.res in free_rd_atomic_resources(), like the rxe_resp.c\ncompletion paths.\n\nReproduced under KASAN; the slab-use-after-free in rxe_receiver() is gone."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:09.239Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82257379061c0a7aba6c77081d988339982af115"
},
{
"url": "https://git.kernel.org/stable/c/0136b528b753c5a56e4d997ef20b86bb6750b8fb"
},
{
"url": "https://git.kernel.org/stable/c/ffa4f0be69656be1755090f02db38d49816585c6"
},
{
"url": "https://git.kernel.org/stable/c/d4cd32eb8bd2b0ffbdc7b1f3d82ce6a371f8f844"
},
{
"url": "https://git.kernel.org/stable/c/60dfd47929cd1e7070daa810d40ce538d888410d"
},
{
"url": "https://git.kernel.org/stable/c/6f7014237405e7f032b5c53a82d9eccf6161c291"
}
],
"title": "RDMA/rxe: Fix responder UAF on IB_QP_MAX_DEST_RD_ATOMIC modify_qp",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80864",
"datePublished": "2026-09-04T15:55:18.791Z",
"dateReserved": "2026-08-26T14:34:25.798Z",
"dateUpdated": "2026-10-21T12:47:09.239Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74697 (GCVE-0-2026-74697)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Disable EOP for TPA on all chips to prevent data corruption
EOP (End of frame padding) on the AGG ring may cause overlapping of
zero padding at the end of one segment with the next segment's data.
If Relaxed Ordering (RO) is enabled, the zero padding may overwrite
valid data in the next segment and corrupt the data. Older chips
(P5 and older) do not automatically disable RO when EOP is enabled.
On some ARM systems, data corruption was reported on 57508 (P5)
chips with RO enabled.
Always disable EOP on all chips on the AGG rings when TPA is enabled
to fix the data corruption.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e Version: bfcd8d791ec18496772d117774398e336917f56e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74697",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:48.095926Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:09.972Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "68c181af7cd1ca9cbf29acd95911073bfd3c6397",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "7aee22a35978b44784612c156e358e375ddf5d16",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "410da4428b1f47bf9a84bdc0bcaa089d73ba2048",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "b61c4911204a0a2f900e538d64ceb608f6c9614d",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "927e2617a36f49752cb5613900ca21f40593f07d",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "aab3b5f4d8ec8598606ee011e219ef824ae25ca0",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "c1962ab4645a914a91ff492735881150ddc8a79e",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
},
{
"lessThan": "c3faf548a00f4c17100cc9204746975fa46a73b9",
"status": "affected",
"version": "bfcd8d791ec18496772d117774398e336917f56e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Disable EOP for TPA on all chips to prevent data corruption\n\nEOP (End of frame padding) on the AGG ring may cause overlapping of\nzero padding at the end of one segment with the next segment\u0027s data.\nIf Relaxed Ordering (RO) is enabled, the zero padding may overwrite\nvalid data in the next segment and corrupt the data. Older chips\n(P5 and older) do not automatically disable RO when EOP is enabled.\nOn some ARM systems, data corruption was reported on 57508 (P5)\nchips with RO enabled.\n\nAlways disable EOP on all chips on the AGG rings when TPA is enabled\nto fix the data corruption."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in bnxt_en hardware RX/TPA aggregation on incoming packets; remote TCP traffic reaches bnxt_msix\u2192napi\u2192bnxt_rx_pkt\u2192bnxt_tpa_end without local syscalls, matching network-reachable net driver guidance for internet-facing cloud servers with Broadcom NICs.\nAC:L - An attacker controls TCP segment sizes, timing, and retry volume to drive TPA aggregation on default NETIF_F_GRO_HW interfaces; the fix documents reproducible corruption on 57508/P5 ARM hosts with PCIe Relaxed Ordering, the scored deployment scenario.\nPR:N - The vulnerable receive fast path performs no authentication or capability checks on incoming frames; any remote peer sending TCP traffic to a host with an affected P5-or-older bnxt_en NIC can trigger hardware TPA aggregation and AGG-ring DMA corruption.\nUI:N - Hardware GRO/TPA is enabled by default on bnxt_en netdevs; exploitation requires only normal network exposure and attacker-sent traffic, with no victim mount, file open, or administrative action.\nS:U - Impact is corrupted RX skb payload data processed within the host kernel and network stack; it does not cross VM, container-host, or IOMMU security boundaries into a separate authority.\nC:N - EOP zero-padding overwrites valid segment bytes with zeros in page-pool RX buffers; there is no out-of-bounds read, UAF, or kernel-memory disclosure\u2014only destruction of receive-buffer contents.\nI:H - Hardware DMA corruption of TPA aggregation buffers modifies delivered skb payload bytes before napi_gro_receive, enabling remote integrity corruption of TCP/application data processed by the kernel and upper-layer services on affected hosts.\nA:L - No kernel oops or panic is documented, but repeated remote triggering can persistently corrupt received payloads, provoking TCP/application errors and degrading availability of correct network processing on affected Broadcom P5 NICs."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:11.741Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/68c181af7cd1ca9cbf29acd95911073bfd3c6397"
},
{
"url": "https://git.kernel.org/stable/c/7aee22a35978b44784612c156e358e375ddf5d16"
},
{
"url": "https://git.kernel.org/stable/c/410da4428b1f47bf9a84bdc0bcaa089d73ba2048"
},
{
"url": "https://git.kernel.org/stable/c/b61c4911204a0a2f900e538d64ceb608f6c9614d"
},
{
"url": "https://git.kernel.org/stable/c/927e2617a36f49752cb5613900ca21f40593f07d"
},
{
"url": "https://git.kernel.org/stable/c/aab3b5f4d8ec8598606ee011e219ef824ae25ca0"
},
{
"url": "https://git.kernel.org/stable/c/c1962ab4645a914a91ff492735881150ddc8a79e"
},
{
"url": "https://git.kernel.org/stable/c/c3faf548a00f4c17100cc9204746975fa46a73b9"
}
],
"title": "bnxt_en: Disable EOP for TPA on all chips to prevent data corruption",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74697",
"datePublished": "2026-08-22T15:32:59.073Z",
"dateReserved": "2026-08-15T05:44:03.927Z",
"dateUpdated": "2026-10-21T12:46:11.741Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68385 (GCVE-0-2026-68385)
Vulnerability from cvelistv5
Published
2026-08-10 12:04
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/checksum: Fix csum_partial() without vector facility
Currently csum_partial() calls csum_copy() with copy=false and dst=NULL.
On machines without the vector facility, csum_copy() falls back to
cksm(dst, ...), causing the checksum to be calculated from address zero
instead of the source buffer.
The VX implementation already checksums data loaded from src. Make the
fallback do the same by passing src to cksm().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68385",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:51.059677Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "CWE-476 NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:07.531Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/s390/lib/csum-partial.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5fc0a2a6eeb99cac991242bb48796c7749ce3261",
"status": "affected",
"version": "dcd3e1de9d17dc43dfed87a9fc814b9dec508043",
"versionType": "git"
},
{
"lessThan": "1d9a2f01b3c4e5c88e06b2db4b5460c2ec884722",
"status": "affected",
"version": "dcd3e1de9d17dc43dfed87a9fc814b9dec508043",
"versionType": "git"
},
{
"lessThan": "898bb2814f38399108bdd2113f38d97383a7036a",
"status": "affected",
"version": "dcd3e1de9d17dc43dfed87a9fc814b9dec508043",
"versionType": "git"
},
{
"lessThan": "4bb06b60d982355e22647b3d12d6619419f8c1fa",
"status": "affected",
"version": "dcd3e1de9d17dc43dfed87a9fc814b9dec508043",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/s390/lib/csum-partial.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/checksum: Fix csum_partial() without vector facility\n\nCurrently csum_partial() calls csum_copy() with copy=false and dst=NULL.\nOn machines without the vector facility, csum_copy() falls back to\ncksm(dst, ...), causing the checksum to be calculated from address zero\ninstead of the source buffer.\n\nThe VX implementation already checksums data loaded from src. Make the\nfallback do the same by passing src to cksm()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - csum_partial() is the s390 software checksum used by the network stack on received and transmitted packets (skb_checksum, __skb_checksum_complete, ICMP/UDP/TCP, tunnels, GSO fallback); a remote peer both triggers the code and observes the resulting bad checksum values in packets sent back to it, with no local access needed.\nAC:L - On any affected system (a machine or guest without the vector facility, i.e. pre-z13 hardware or a z/VM/KVM/QEMU CPU model lacking VX) the wrong-address checksum happens unconditionally and deterministically on every call, and eliciting replies of chosen lengths (e.g. ICMP echo) is trivially repeatable.\nPR:N - No credentials or account are needed; simply sending packets to the host (or receiving its traffic) exercises the software checksum path, and the leaked checksum values are returned to an unauthenticated remote party.\nUI:N - Packet processing and checksum computation occur automatically in the kernel network stack with no action by any local user or administrator.\nS:U - The faulty read and its consequences stay within the kernel\u0027s own security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - The checksum is computed over kernel memory at address 0 (the s390 lowcore: kernel stack/task pointers, PSWs, per-CPU state, and following low kernel memory) for an attacker-influenced length, and that value is emitted in transmitted packet checksum fields; differencing results over successive lengths reconstructs kernel memory contents remotely, defeating KASLR and disclosing kernel pointers.\nI:H - Computed checksums no longer depend on packet contents, so IP/TCP/UDP checksum verification is fully defeated: corrupted or attacker-modified payloads are accepted as valid by the stack and delivered to applications, destroying the integrity protection the checksum exists to provide.\nA:H - All software-checksummed traffic carries or fails bogus checksums and is dropped, causing loss of network connectivity on affected machines, and where the identity mapping base is randomized or the lowcore is relocated the read from address 0 hits unmapped memory and triggers a program check / kernel crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:04:31.922Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5fc0a2a6eeb99cac991242bb48796c7749ce3261"
},
{
"url": "https://git.kernel.org/stable/c/1d9a2f01b3c4e5c88e06b2db4b5460c2ec884722"
},
{
"url": "https://git.kernel.org/stable/c/898bb2814f38399108bdd2113f38d97383a7036a"
},
{
"url": "https://git.kernel.org/stable/c/4bb06b60d982355e22647b3d12d6619419f8c1fa"
}
],
"title": "s390/checksum: Fix csum_partial() without vector facility",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68385",
"datePublished": "2026-08-10T12:04:04.281Z",
"dateReserved": "2026-07-30T09:28:09.387Z",
"dateUpdated": "2026-10-19T21:09:07.531Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-81000 (GCVE-0-2026-81000)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: tun: bound receive headroom
tun_get_user() uses tun->align both as skb headroom and when choosing how
much packet data to keep linear. OVS can propagate an oversized headroom
request from another port to TUN or TAP.
When align is larger than the usable space in a one-page skb head,
SKB_MAX_HEAD(align) underflows and the result becomes negative when stored
in good_linear. That value later wraps when assigned to the size_t linear
variable, and tun_alloc_skb() can place skb->data outside the allocated
head.
Bound the headroom stored by TUN to the one-page skb-head budget and the
largest non-sentinel 16-bit skb header offset. Leave one linear byte for
raw TUN and a complete Ethernet header for TAP, including NET_IP_ALIGN.
Also pull the raw-TUN protocol byte and the TAP Ethernet header before
accessing them, so these checks remain safe for nonlinear skbs supplied by
other allocation paths.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b Version: eaea34b23c46bf17b4a5638be69ab3561854f34b |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-81000",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:04.024628Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:38.160Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ad715e713610d2d5473c3a6498c825ccecf26491",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "708e87937de93f445225c134a2e20519f9b4ce60",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "18ef24cdb2eba32e38f1d27f2d02b7b4212e8f76",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "010eee265d6bd8769b6a523d2a0693d9b3f5df43",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "379d85c7f25f3e05a428225e6b8a65613c6e9b9d",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "e098d9cc8859614a7f7baebc96e32a5a16b18ed2",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "0ada54ea63e48b9c1608e917ccb7dfadbe86db28",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
},
{
"lessThan": "447c9303942c439a117d9b76ce6d6e2116b38ee7",
"status": "affected",
"version": "eaea34b23c46bf17b4a5638be69ab3561854f34b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: tun: bound receive headroom\n\ntun_get_user() uses tun-\u003ealign both as skb headroom and when choosing how\nmuch packet data to keep linear. OVS can propagate an oversized headroom\nrequest from another port to TUN or TAP.\n\nWhen align is larger than the usable space in a one-page skb head,\nSKB_MAX_HEAD(align) underflows and the result becomes negative when stored\nin good_linear. That value later wraps when assigned to the size_t linear\nvariable, and tun_alloc_skb() can place skb-\u003edata outside the allocated\nhead.\n\nBound the headroom stored by TUN to the one-page skb-head budget and the\nlargest non-sentinel 16-bit skb header offset. Leave one linear byte for\nraw TUN and a complete Ethernet header for TAP, including NET_IP_ALIGN.\n\nAlso pull the raw-TUN protocol byte and the TAP Ethernet header before\naccessing them, so these checks remain safe for nonlinear skbs supplied by\nother allocation paths."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - tun_get_user() runs on write/sendmsg to /dev/net/tun after ndo_set_rx_headroom stores an oversized tun-\u003ealign. That is a local tun/tap injection path, not parsing of frames received from a remote peer.\nAC:L - The attacker fully controls both sides: inflate rx headroom via netkit IFLA_NETKIT_HEADROOM or the OVS/veth/VXLAN and bridge/veth/GRETAP loops, then write a TUN frame. No race or uninfluenced victim state is required.\nPR:L - TUNSETIFF uses ns_capable(net-\u003euser_ns, CAP_NET_ADMIN) and OVS vport commands use GENL_UNS_ADMIN_PERM, so an unprivileged user with a user+net namespace can create the topology and trigger the write.\nUI:N - The attacker opens /dev/net/tun, configures local net devices, and writes the frame; no separate victim action is required.\nS:U - The out-of-bounds access occurs in the same kernel that handles the local TUN write and yields privilege escalation within that kernel, not a VM/IOMMU boundary crossing.\nC:H - SKB_MAX_HEAD underflow wraps the linear length so tun_alloc_skb()/skb_reserve() can place skb-\u003edata outside the allocated head, turning later header reads and packet processing into out-of-bounds kernel reads.\nI:H - After skb-\u003edata is moved outside the allocated head, skb_copy_datagram_from_iter copies attacker-controlled frame bytes relative to that pointer, an out-of-bounds write usable for kernel corruption and control-flow hijacking.\nA:H - The misplaced skb leads to a kernel oops, BUG() in eth_type_trans/__skb_pull on a nonlinear TAP skb, or panic when the out-of-bounds access is hit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:24.640Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ad715e713610d2d5473c3a6498c825ccecf26491"
},
{
"url": "https://git.kernel.org/stable/c/708e87937de93f445225c134a2e20519f9b4ce60"
},
{
"url": "https://git.kernel.org/stable/c/18ef24cdb2eba32e38f1d27f2d02b7b4212e8f76"
},
{
"url": "https://git.kernel.org/stable/c/010eee265d6bd8769b6a523d2a0693d9b3f5df43"
},
{
"url": "https://git.kernel.org/stable/c/379d85c7f25f3e05a428225e6b8a65613c6e9b9d"
},
{
"url": "https://git.kernel.org/stable/c/e098d9cc8859614a7f7baebc96e32a5a16b18ed2"
},
{
"url": "https://git.kernel.org/stable/c/0ada54ea63e48b9c1608e917ccb7dfadbe86db28"
},
{
"url": "https://git.kernel.org/stable/c/447c9303942c439a117d9b76ce6d6e2116b38ee7"
}
],
"title": "net: tun: bound receive headroom",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-81000",
"datePublished": "2026-09-11T19:42:54.181Z",
"dateReserved": "2026-08-26T14:34:25.812Z",
"dateUpdated": "2026-10-19T08:46:24.640Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74284 (GCVE-0-2026-74284)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_hfsc: Don't make class passive twice
update_vf() is called from two places for the same class during a single
dequeue when the class's child qdisc (e.g. codel/fq_codel) drops its last
packets while dequeuing:
1. The child calls qdisc_tree_reduce_backlog(), which, now that the child
is empty, invokes hfsc_qlen_notify() -> update_vf(cl, 0, 0) and turns
the class passive (cl_nactive is decremented up the hierarchy).
2. hfsc_dequeue() then calls update_vf(cl, qdisc_pkt_len(skb), cur_time)
to charge the dequeued bytes.
On the second call the class is already passive, but its child qdisc is
still empty, so update_vf() arms go_passive again:
if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC)
go_passive = 1;
The leaf is then skipped by the cl_nactive == 0 check inside the loop,
which does not clear go_passive, so the stale go_passive propagates to the
parent and decrements its cl_nactive a second time. A parent that still
has other active children is driven to cl_nactive == 0 and removed from
the vttree, even though those siblings are still backlogged. They are
never dequeued again and the qdisc stalls.
Fix this by only arming go_passive when the class is actually active, so an
already-passive class no longer triggers a second passive transition. The
byte accounting (cl->cl_total += len) still runs for every ancestor, so
dequeued bytes continue to be counted exactly once.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 72c61ffbeeb8c50f6d4d70c65d3283aa1bac57a7 Version: a5efc95a33bd4fcb879250852828cc58c7862970 Version: 0475c85426b18eccdcb7f9fb58d8f8e9c6c58c87 Version: 9030a91235ae4845ec71902c3e0cecfc9ed1f2df Version: d06476714d2819b550e0cc39222347e2c8941c9d Version: 51eb3b65544c9efd6a1026889ee5fb5aa62da3bb Version: 51eb3b65544c9efd6a1026889ee5fb5aa62da3bb Version: 51eb3b65544c9efd6a1026889ee5fb5aa62da3bb Version: 9a5fd5c2f4d4afdd5e405083ee53e0789ce76956 Version: c1175c4ad01dbc9c979d099861fa90a754f72059 Version: 5.10.241 ≤ Version: 5.15.190 ≤ Version: 6.1.138 ≤ Version: 6.6.90 ≤ Version: 6.12.28 ≤ Version: 5.4.297 ≤ Version: 6.14.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_hfsc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a425c82ff06cda5165e0de3de8c2a445ec1f863e",
"status": "affected",
"version": "72c61ffbeeb8c50f6d4d70c65d3283aa1bac57a7",
"versionType": "git"
},
{
"lessThan": "fc973ecd1a079b9a87c360478542f3a56dea085b",
"status": "affected",
"version": "a5efc95a33bd4fcb879250852828cc58c7862970",
"versionType": "git"
},
{
"lessThan": "15720cd8fa3fc625146128f89a8e11b0449a20a7",
"status": "affected",
"version": "0475c85426b18eccdcb7f9fb58d8f8e9c6c58c87",
"versionType": "git"
},
{
"lessThan": "b2a017bfcf565721918ec7355a373911d2f2a227",
"status": "affected",
"version": "9030a91235ae4845ec71902c3e0cecfc9ed1f2df",
"versionType": "git"
},
{
"lessThan": "9221a594c72a1446137926d4c2aa04e345f798dc",
"status": "affected",
"version": "d06476714d2819b550e0cc39222347e2c8941c9d",
"versionType": "git"
},
{
"lessThan": "66dbb13eeb2fc339f8f548a9076be4c1a94857b0",
"status": "affected",
"version": "51eb3b65544c9efd6a1026889ee5fb5aa62da3bb",
"versionType": "git"
},
{
"lessThan": "3a49bbae676fef1ffe548971e6229ae2adeb9d10",
"status": "affected",
"version": "51eb3b65544c9efd6a1026889ee5fb5aa62da3bb",
"versionType": "git"
},
{
"lessThan": "90b662ea25f5e83bb3b8ccec5b93ced810b92fb8",
"status": "affected",
"version": "51eb3b65544c9efd6a1026889ee5fb5aa62da3bb",
"versionType": "git"
},
{
"status": "affected",
"version": "9a5fd5c2f4d4afdd5e405083ee53e0789ce76956",
"versionType": "git"
},
{
"status": "affected",
"version": "c1175c4ad01dbc9c979d099861fa90a754f72059",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.241",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.190",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.138",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.90",
"versionType": "semver"
},
{
"lessThan": "6.12.97",
"status": "affected",
"version": "6.12.28",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.297",
"versionType": "semver"
},
{
"lessThan": "6.15",
"status": "affected",
"version": "6.14.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_hfsc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.241",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.190",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.138",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.90",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.12.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.297",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.14.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: sch_hfsc: Don\u0027t make class passive twice\n\nupdate_vf() is called from two places for the same class during a single\ndequeue when the class\u0027s child qdisc (e.g. codel/fq_codel) drops its last\npackets while dequeuing:\n\n1. The child calls qdisc_tree_reduce_backlog(), which, now that the child\n is empty, invokes hfsc_qlen_notify() -\u003e update_vf(cl, 0, 0) and turns\n the class passive (cl_nactive is decremented up the hierarchy).\n\n2. hfsc_dequeue() then calls update_vf(cl, qdisc_pkt_len(skb), cur_time)\n to charge the dequeued bytes.\n\nOn the second call the class is already passive, but its child qdisc is\nstill empty, so update_vf() arms go_passive again:\n\n if (cl-\u003eqdisc-\u003eq.qlen == 0 \u0026\u0026 cl-\u003ecl_flags \u0026 HFSC_FSC)\n go_passive = 1;\n\nThe leaf is then skipped by the cl_nactive == 0 check inside the loop,\nwhich does not clear go_passive, so the stale go_passive propagates to the\nparent and decrements its cl_nactive a second time. A parent that still\nhas other active children is driven to cl_nactive == 0 and removed from\nthe vttree, even though those siblings are still backlogged. They are\nnever dequeued again and the qdisc stalls.\n\nFix this by only arming go_passive when the class is actually active, so an\nalready-passive class no longer triggers a second passive transition. The\nbyte accounting (cl-\u003ecl_total += len) still runs for every ancestor, so\ndequeued bytes continue to be counted exactly once."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:16:29.785Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a425c82ff06cda5165e0de3de8c2a445ec1f863e"
},
{
"url": "https://git.kernel.org/stable/c/fc973ecd1a079b9a87c360478542f3a56dea085b"
},
{
"url": "https://git.kernel.org/stable/c/15720cd8fa3fc625146128f89a8e11b0449a20a7"
},
{
"url": "https://git.kernel.org/stable/c/b2a017bfcf565721918ec7355a373911d2f2a227"
},
{
"url": "https://git.kernel.org/stable/c/9221a594c72a1446137926d4c2aa04e345f798dc"
},
{
"url": "https://git.kernel.org/stable/c/66dbb13eeb2fc339f8f548a9076be4c1a94857b0"
},
{
"url": "https://git.kernel.org/stable/c/3a49bbae676fef1ffe548971e6229ae2adeb9d10"
},
{
"url": "https://git.kernel.org/stable/c/90b662ea25f5e83bb3b8ccec5b93ced810b92fb8"
}
],
"title": "net/sched: sch_hfsc: Don\u0027t make class passive twice",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74284",
"datePublished": "2026-08-15T05:57:53.290Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-08-17T05:16:29.785Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74628 (GCVE-0-2026-74628)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-27 12:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/x25: fix use-after-free of the socket by its timers
The x25 timers are armed with mod_timer() and cancelled with
timer_delete(), so a pending timer holds no reference on the socket and a
cancel does not wait for a callback already running on another CPU.
x25_heartbeat_expiry() also rearms unconditionally, so it can reinstall
sk->sk_timer after __x25_destroy_socket() has passed its cancel point.
The following __sock_put() frees the socket while the timer is still
queued, and the next expiry uses freed memory. KASAN reports a
slab-use-after-free on the kmalloc-2k object freed by close().
timer_delete_sync() cannot be used here: x25_heartbeat_expiry() and
x25_timer_expiry() both reach the cancels from inside the timer they
would wait on, through __x25_destroy_socket() and x25_disconnect().
Arm the timers with sk_reset_timer() and cancel them with sk_stop_timer()
so that an armed timer owns a reference, and release it in both expiry
handlers. Rearm the heartbeat only while sk_hashed(sk) is still true,
since __x25_destroy_socket() unlinks the socket before dropping it. Arm
the deferred destroy timer the same way and drop its reference in
x25_destroy_timer().
Reproduced on net with KASAN, with the heartbeat period shortened so the
window recurs. With this patch the reproducer no longer triggers a
report and /proc/net/x25 drains.
Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/x25/af_x25.c",
"net/x25/x25_timer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ba925a2e98ce967a0e71c5bcbcf5dbd3facaf0c8",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6b79659590f0f82a9b8efd2ffd55ec6399ebfc33",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fdd9ac50b9b61ef2b2d52c5156aff788be91454d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1fc9f6d2c7c9fdb341bfe8ca449c990632299ea6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3c4919be5d910db4beebca420953858606fba7d8",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "4bc522b33438fefc3272840ae5988771863a4f1f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e92c7e2b41d1528a830bc64c5e4e46dfa8133dda",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2195424c3da2ef1829a63b807e3a900a90e57d85",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/x25/af_x25.c",
"net/x25/x25_timer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/x25: fix use-after-free of the socket by its timers\n\nThe x25 timers are armed with mod_timer() and cancelled with\ntimer_delete(), so a pending timer holds no reference on the socket and a\ncancel does not wait for a callback already running on another CPU.\n\nx25_heartbeat_expiry() also rearms unconditionally, so it can reinstall\nsk-\u003esk_timer after __x25_destroy_socket() has passed its cancel point.\nThe following __sock_put() frees the socket while the timer is still\nqueued, and the next expiry uses freed memory. KASAN reports a\nslab-use-after-free on the kmalloc-2k object freed by close().\n\ntimer_delete_sync() cannot be used here: x25_heartbeat_expiry() and\nx25_timer_expiry() both reach the cancels from inside the timer they\nwould wait on, through __x25_destroy_socket() and x25_disconnect().\n\nArm the timers with sk_reset_timer() and cancel them with sk_stop_timer()\nso that an armed timer owns a reference, and release it in both expiry\nhandlers. Rearm the heartbeat only while sk_hashed(sk) is still true,\nsince __x25_destroy_socket() unlinks the socket before dropping it. Arm\nthe deferred destroy timer the same way and drop its reference in\nx25_destroy_timer().\n\nReproduced on net with KASAN, with the heartbeat period shortened so the\nwindow recurs. With this patch the reproducer no longer triggers a\nreport and /proc/net/x25 drains.\n\nDiscovered by XBOW, triaged by Baul Lee \u003cbaul.lee@xbow.com\u003e"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote X.25 frames reach x25_lapb_receive_frame() on init_net gateways, where unauthenticated CALL_REQUEST/CLEAR handling arms heartbeat timers and drives server socket teardown through __x25_destroy_socket() during close.\nAC:L - The attacker controls both sides of the race by opening/closing sockets or sending concurrent connect/clear traffic, repeatedly forcing __x25_destroy_socket() against sk_timer callbacks that re-arm via mod_timer().\nPR:N - X.25 call setup and clearing are unauthenticated on the wire; a remote peer can create sockets via CALL_REQUEST and force teardown without any local account or CAP_NET_ADMIN.\nUI:N - Exploitation requires no end-user action; automated server handling of remote X.25 connect/clear suffices to reach the vulnerable close/timer path.\nS:U - Impact stays within kernel memory via standard slab UAF on the AF_X25 socket object; this is not a guest/host or IOMMU boundary escape.\nC:H - KASAN reports slab-use-after-free on the kmalloc-2k socket freed by close(), and UAF on struct sock gives attacker-controlled reuse enabling arbitrary kernel memory disclosure.\nI:H - Use-after-free of the socket structure enables heap grooming and corrupting freed object contents for control-flow or arbitrary kernel writes/code execution.\nA:H - The freed socket timer expiry dereferences released memory and can oops/panic the kernel; UAF reliably threatens system availability even before full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:49.703Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ba925a2e98ce967a0e71c5bcbcf5dbd3facaf0c8"
},
{
"url": "https://git.kernel.org/stable/c/6b79659590f0f82a9b8efd2ffd55ec6399ebfc33"
},
{
"url": "https://git.kernel.org/stable/c/fdd9ac50b9b61ef2b2d52c5156aff788be91454d"
},
{
"url": "https://git.kernel.org/stable/c/1fc9f6d2c7c9fdb341bfe8ca449c990632299ea6"
},
{
"url": "https://git.kernel.org/stable/c/3c4919be5d910db4beebca420953858606fba7d8"
},
{
"url": "https://git.kernel.org/stable/c/4bc522b33438fefc3272840ae5988771863a4f1f"
},
{
"url": "https://git.kernel.org/stable/c/e92c7e2b41d1528a830bc64c5e4e46dfa8133dda"
},
{
"url": "https://git.kernel.org/stable/c/2195424c3da2ef1829a63b807e3a900a90e57d85"
}
],
"title": "net/x25: fix use-after-free of the socket by its timers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74628",
"datePublished": "2026-08-22T15:32:10.135Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-08-27T12:39:49.703Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89789 (GCVE-0-2026-89789)
Vulnerability from cvelistv5
Published
2026-09-16 08:48
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free
gtp_newlink()'s error path frees tid_hash and addr_hash without
waiting for an RCU grace period after clearing sk_user_data. A
concurrent gtp_encap_recv() in softirq may still hold the gtp_dev
pointer obtained via rcu_dereference_sk_user_data() and access the
freed memory.
BUG: KASAN: slab-use-after-free in gtp0_pdp_find+0x1f6/0x200 (gtp.c:152)
Call Trace:
<IRQ>
gtp0_pdp_find+0x1f6/0x200
gtp_encap_recv+0x527/0x24b0
udp_queue_rcv_one_skb+0x75f/0xc10
Add synchronize_net() before the kfree calls in out_hashtable, which
covers all error paths from both gtp_encap_enable() and
gtp_create_sockets().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 Version: 459aa660eb1d8ce67080da1983bb81d716aa5a69 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fcafb2b1430824bae4258c01a439ec97ca0c6973",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "3ca3da5c305caa873ddb81e8c6b118143f6dd3d1",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "6f815c2fb6ab20385f81c353cdad0ea3b88132af",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "e3b9aa0773abd5d4ed90be41ce5306c146d5b09e",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "fd8396cfecbd904468c71362f08aaa25f96d5337",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "7677eb2cbf2cc7446de474c01a6b06277c0051e5",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "8d85498016a5bb56339734a14c276209fa65bafc",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "d989e22ae9802c52c56ad4284d0caf26696cf6ae",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free\n\ngtp_newlink()\u0027s error path frees tid_hash and addr_hash without\nwaiting for an RCU grace period after clearing sk_user_data. A\nconcurrent gtp_encap_recv() in softirq may still hold the gtp_dev\npointer obtained via rcu_dereference_sk_user_data() and access the\nfreed memory.\n\n BUG: KASAN: slab-use-after-free in gtp0_pdp_find+0x1f6/0x200 (gtp.c:152)\n Call Trace:\n \u003cIRQ\u003e\n gtp0_pdp_find+0x1f6/0x200\n gtp_encap_recv+0x527/0x24b0\n udp_queue_rcv_one_skb+0x75f/0xc10\n\nAdd synchronize_net() before the kfree calls in out_hashtable, which\ncovers all error paths from both gtp_encap_enable() and\ngtp_create_sockets()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is triggered from gtp_newlink()\u0027s RTM_NEWLINK error path (ip link add type gtp), a local rtnetlink configuration interface. Concurrent gtp_encap_recv() in softirq only uses already-freed tid_hash/addr_hash; a remote GTP-U peer cannot cause the free.\nAC:L - The attacker controls both sides of the RCU race: one thread issues RTM_NEWLINK that fails after setup_udp_tunnel_sock() (invalid second FD, IPv4/IPv6 family mismatch, or register_netdevice failure) while another floods UDP datagrams at the encap socket so gtp_encap_recv() still holds the gtp_dev pointer across the kfree.\nPR:L - Creating a GTP device requires CAP_NET_ADMIN in the target netns via rtnl_link_get_net_capable()/netlink_ns_capable(). Unprivileged users obtain this through user+network namespaces (unshare -Urn); gtp_link_ops has no extra init-namespace check and MODULE_ALIAS_RTNL_LINK(\"gtp\") permits module autoload.\nUI:N - The attacker opens its own UDP sockets, sends packets to them, and issues the failing RTM_NEWLINK from its own process. No separate victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is a host-kernel slab use-after-free in drivers/net/gtp.c, i.e. standard local privilege escalation within the same kernel security authority, not a KVM/Xen guest-to-host escape or IOMMU/DMA boundary bypass.\nC:H - gtp0_pdp_find()/gtp1_pdp_find() walk the attacker-sized freed tid_hash hlist under RCU. Heap spraying that slab yields a fake pdp_ctx and an arbitrary kernel read primitive, so Confidentiality is High per UAF guidance.\nI:H - A sprayed fake pdp_ctx is passed to gtp_rx(), which writes device stats, assigns skb-\u003edev, and calls __netif_rx(); combined with UAF heap reuse this is an arbitrary write and control-flow hijack primitive, so Integrity is High.\nA:H - KASAN reports slab-use-after-free in gtp0_pdp_find from gtp_encap_recv in softirq (udp_queue_rcv_one_skb). The UAF causes a kernel oops or panic even when not fully exploited, so Availability is High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:43.083Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fcafb2b1430824bae4258c01a439ec97ca0c6973"
},
{
"url": "https://git.kernel.org/stable/c/3ca3da5c305caa873ddb81e8c6b118143f6dd3d1"
},
{
"url": "https://git.kernel.org/stable/c/6f815c2fb6ab20385f81c353cdad0ea3b88132af"
},
{
"url": "https://git.kernel.org/stable/c/e3b9aa0773abd5d4ed90be41ce5306c146d5b09e"
},
{
"url": "https://git.kernel.org/stable/c/fd8396cfecbd904468c71362f08aaa25f96d5337"
},
{
"url": "https://git.kernel.org/stable/c/7677eb2cbf2cc7446de474c01a6b06277c0051e5"
},
{
"url": "https://git.kernel.org/stable/c/8d85498016a5bb56339734a14c276209fa65bafc"
},
{
"url": "https://git.kernel.org/stable/c/d989e22ae9802c52c56ad4284d0caf26696cf6ae"
}
],
"title": "gtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89789",
"datePublished": "2026-09-16T08:48:25.689Z",
"dateReserved": "2026-09-11T19:38:34.766Z",
"dateUpdated": "2026-10-19T08:52:43.083Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89540 (GCVE-0-2026-89540)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sunrpc: init gssp_lock before publishing proc entry
create_use_gss_proxy_proc_entry() publishes /proc/net/rpc/use-gss-proxy
via proc_create_data() before init_gssp_clnt() runs mutex_init() on
sn->gssp_lock. Once the dentry is linked under proc_subdir_lock it is
immediately reachable from userspace, so a write that lands in the
window drives set_gssp_clnt() into mutex_lock() on a zero-initialized
struct mutex.
create_use_gss_proxy_proc_entry(net)
proc_create_data("use-gss-proxy", ...) /* dentry live */
init_gssp_clnt(sn)
mutex_init(&sn->gssp_lock) /* too late */
write_gssp()
set_gssp_clnt(net)
mutex_lock(&sn->gssp_lock) /* uninitialized */
gssp_rpc_create(...)
sn->gssp_clnt = clnt
mutex_unlock(&sn->gssp_lock)
The window spans only the two statements between proc_create_data()
returning and init_gssp_clnt(), so a writer reaches it only if the
registering thread is preempted there while another task is already
opening the freshly published file. register_pernet_subsys() runs in
preemptible context under pernet_ops_rwsem, so that preemption is
possible, and the window widens on auth_rpcgss module load, when the
proc entry is created for every live net namespace whose tasks are
already running. A writer that wins the race locks a zero-filled
struct mutex. On CONFIG_DEBUG_MUTEXES the missing magic value trips a
"lock used without init" splat; on a production kernel the fast path
acquires the lock via CMPXCHG(owner, 0, current). In the latter case
a second writer that arrives before init_gssp_clnt() re-zeroes owner
can enter set_gssp_clnt() concurrently, shut down the first writer's
clnt while it is still in use, and leak the loser's clnt.
Fix by initializing sn->gssp_lock in sunrpc_init_net() so its lifetime
matches the sunrpc_net it lives in. sn->gssp_clnt is already NULL from
the kzalloc that backs net_generic storage, so the lazy helper is no
longer needed; drop init_gssp_clnt(), its prototype, and the call from
create_use_gss_proxy_proc_entry(). sunrpc.ko is a build-time
dependency of auth_rpcgss.ko, so sunrpc_init_net() has always run on
every netns before any auth_gss pernet init can publish the proc
entry.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b Version: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89540",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:23.496498Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.049Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_upcall.c",
"net/sunrpc/auth_gss/gss_rpc_upcall.h",
"net/sunrpc/auth_gss/svcauth_gss.c",
"net/sunrpc/sunrpc_syms.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "159a4fab7170badd6c4a553aef81cac079d6f4ee",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "b3526ae3351968f6726bcbe25d8d09973ad79109",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "7f5bcdc8da15077ebe846c2756a5a17741021410",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "89c8e0733e8c46b7973503f15b1b31a8587d8030",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "f15b87521168c2a92cb1931f532cba422f856f01",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "edeefb111d6181a4aa278f415b005efe284b9489",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "3f019571928b269feebcff59926ec13294215e0e",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
},
{
"lessThan": "5ce1ed6159731a41fdd0b03eedbed4e147036a5a",
"status": "affected",
"version": "030d794bf49855f5e2a9e8dfbfad34211d1eb08b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_rpc_upcall.c",
"net/sunrpc/auth_gss/gss_rpc_upcall.h",
"net/sunrpc/auth_gss/svcauth_gss.c",
"net/sunrpc/sunrpc_syms.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsunrpc: init gssp_lock before publishing proc entry\n\ncreate_use_gss_proxy_proc_entry() publishes /proc/net/rpc/use-gss-proxy\nvia proc_create_data() before init_gssp_clnt() runs mutex_init() on\nsn-\u003egssp_lock. Once the dentry is linked under proc_subdir_lock it is\nimmediately reachable from userspace, so a write that lands in the\nwindow drives set_gssp_clnt() into mutex_lock() on a zero-initialized\nstruct mutex.\n\n create_use_gss_proxy_proc_entry(net)\n proc_create_data(\"use-gss-proxy\", ...) /* dentry live */\n init_gssp_clnt(sn)\n mutex_init(\u0026sn-\u003egssp_lock) /* too late */\n\n write_gssp()\n set_gssp_clnt(net)\n mutex_lock(\u0026sn-\u003egssp_lock) /* uninitialized */\n gssp_rpc_create(...)\n sn-\u003egssp_clnt = clnt\n mutex_unlock(\u0026sn-\u003egssp_lock)\n\nThe window spans only the two statements between proc_create_data()\nreturning and init_gssp_clnt(), so a writer reaches it only if the\nregistering thread is preempted there while another task is already\nopening the freshly published file. register_pernet_subsys() runs in\npreemptible context under pernet_ops_rwsem, so that preemption is\npossible, and the window widens on auth_rpcgss module load, when the\nproc entry is created for every live net namespace whose tasks are\nalready running. A writer that wins the race locks a zero-filled\nstruct mutex. On CONFIG_DEBUG_MUTEXES the missing magic value trips a\n\"lock used without init\" splat; on a production kernel the fast path\nacquires the lock via CMPXCHG(owner, 0, current). In the latter case\na second writer that arrives before init_gssp_clnt() re-zeroes owner\ncan enter set_gssp_clnt() concurrently, shut down the first writer\u0027s\nclnt while it is still in use, and leak the loser\u0027s clnt.\n\nFix by initializing sn-\u003egssp_lock in sunrpc_init_net() so its lifetime\nmatches the sunrpc_net it lives in. sn-\u003egssp_clnt is already NULL from\nthe kzalloc that backs net_generic storage, so the lazy helper is no\nlonger needed; drop init_gssp_clnt(), its prototype, and the call from\ncreate_use_gss_proxy_proc_entry(). sunrpc.ko is a build-time\ndependency of auth_rpcgss.ko, so sunrpc_init_net() has always run on\nevery netns before any auth_gss pernet init can publish the proc\nentry."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only by write(2) to /proc/net/rpc/use-gss-proxy (write_gssp \u2192 set_gssp_clnt \u2192 mutex_lock(\u0026sn-\u003egssp_lock)); remote NFS/RPC peers never hit that procfs path.\nAC:L - The attacker fully controls writer threads that hammer the proc file, and on auth_rpcgss module load register_pernet_subsys() publishes it for every live netns whose tasks are already running; preemption between proc_create_data() and mutex_init() is possible in that preemptible pernet context, so the race is attacker-driven.\nPR:L - The 0600 use-gss-proxy entry inherits /proc/net ownership from proc_net_ns_init()\u0027s make_kuid(net-\u003euser_ns, 0), so an unprivileged user who unshares user+net namespaces owns the file; write_gssp() has no capable() check.\nUI:N - The attacker creates the namespace and writes \"1\" to the proc file from their own tasks; no victim must mount a filesystem, open a file, or otherwise cooperate.\nS:U - Uninitialized-mutex use and concurrent rpc_clnt teardown corrupt host kernel memory inside the same kernel security authority; this is not a VM escape, IOMMU bypass, or other cross-boundary impact.\nC:H - A writer that wins the race locks a zeroed mutex; mutex_init() can then re-zero owner so a second writer enters set_gssp_clnt() concurrently and rpc_shutdown_client()s a live rpc_clnt, a use-after-free that per kernel guidance yields an arbitrary read primitive.\nI:H - Concurrent set_gssp_clnt() can shut down an in-use rpc_clnt (UAF) while mutex_init() of a held lock corrupts mutex wait-list state, giving heap/lock-structure writes exploitable for control-flow hijack rather than a pure crash.\nA:H - CONFIG_DEBUG_MUTEXES treats the uninitialized lock as a lock-used-without-init splat/oops, and on production kernels the rpc_clnt UAF and corrupted mutex wait lists cause a kernel oops or panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:31.930Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/159a4fab7170badd6c4a553aef81cac079d6f4ee"
},
{
"url": "https://git.kernel.org/stable/c/b3526ae3351968f6726bcbe25d8d09973ad79109"
},
{
"url": "https://git.kernel.org/stable/c/7f5bcdc8da15077ebe846c2756a5a17741021410"
},
{
"url": "https://git.kernel.org/stable/c/89c8e0733e8c46b7973503f15b1b31a8587d8030"
},
{
"url": "https://git.kernel.org/stable/c/f15b87521168c2a92cb1931f532cba422f856f01"
},
{
"url": "https://git.kernel.org/stable/c/edeefb111d6181a4aa278f415b005efe284b9489"
},
{
"url": "https://git.kernel.org/stable/c/3f019571928b269feebcff59926ec13294215e0e"
},
{
"url": "https://git.kernel.org/stable/c/5ce1ed6159731a41fdd0b03eedbed4e147036a5a"
}
],
"title": "sunrpc: init gssp_lock before publishing proc entry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89540",
"datePublished": "2026-09-11T19:44:17.440Z",
"dateReserved": "2026-09-11T19:38:34.721Z",
"dateUpdated": "2026-10-19T08:48:31.930Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89703 (GCVE-0-2026-89703)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: set SC_STATUS_FREED in nfsd4_drop_revoked_stid for delegations
nfsd4_drop_revoked_stid() handles FREE_STATEID for admin-revoked
delegations but does not set SC_STATUS_FREED before releasing cl_lock.
revoke_delegation() uses this flag to detect whether FREE_STATEID has
already processed the delegation -- without it, the freed delegation is
added to cl_revoked via list_add(), producing a use-after-free when
cl_revoked is later traversed in __destroy_client().
The SC_STATUS_REVOKED path in nfsd4_free_stateid() (line 7983) already
sets SC_STATUS_FREED correctly. Apply the same pattern to the
SC_STATUS_ADMIN_REVOKED path in nfsd4_drop_revoked_stid().
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a Version: 8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a Version: 8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a Version: 8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a Version: 967faa26f313a62e7bebc55d5b8122eaee43b929 Version: 6.11.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d832a0587528853d45481d1faf75d4b5d062adaf",
"status": "affected",
"version": "8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a",
"versionType": "git"
},
{
"lessThan": "1e4795766719ffd74b8cf0f2fde4a1350f8326bf",
"status": "affected",
"version": "8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a",
"versionType": "git"
},
{
"lessThan": "a6d89032e5c6620d5bb44582a72555ce07bf1c2e",
"status": "affected",
"version": "8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a",
"versionType": "git"
},
{
"lessThan": "650d370cfbc66a96dd14d517bd704689b5bda4e5",
"status": "affected",
"version": "8dd91e8d31febf4d9cca3ae1bb4771d33ae7ee5a",
"versionType": "git"
},
{
"status": "affected",
"version": "967faa26f313a62e7bebc55d5b8122eaee43b929",
"versionType": "git"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: set SC_STATUS_FREED in nfsd4_drop_revoked_stid for delegations\n\nnfsd4_drop_revoked_stid() handles FREE_STATEID for admin-revoked\ndelegations but does not set SC_STATUS_FREED before releasing cl_lock.\nrevoke_delegation() uses this flag to detect whether FREE_STATEID has\nalready processed the delegation -- without it, the freed delegation is\nadded to cl_revoked via list_add(), producing a use-after-free when\ncl_revoked is later traversed in __destroy_client().\n\nThe SC_STATUS_REVOKED path in nfsd4_free_stateid() (line 7983) already\nsets SC_STATUS_FREED correctly. Apply the same pattern to the\nSC_STATUS_ADMIN_REVOKED path in nfsd4_drop_revoked_stid()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is in nfsd nfsd4_drop_revoked_stid()/revoke_delegation() in fs/nfsd/nfs4state.c. A remote NFSv4 peer reaches it over TCP/2049 via svc_process to nfsd_dispatch to nfsd4_proc_compound: SEQUENCE then FREE_STATEID (ALLOWED_WITHOUT_FH), or a v4.0 op that hits nfsd40_drop_revoked_stid on an admin-revoked delegation.\nAC:L - The attacker holds a delegation and retries FREE_STATEID (or v4.0 use of that stateid) while nfsd4_revoke_states() unhashes with ADMIN_REVOKED and revoke_delegation() runs, then DESTROY_CLIENTID/expire so __destroy_client() walks cl_revoked. They control the NFS side of the race; unexport is a routine nfsd operational condition, not an uninfluenced layout.\nPR:N - Typical nfsd deployments use AUTH_SYS/AUTH_NULL with no cryptographic RPC authentication. Any host allowed by the export can EXCHANGE_ID/CREATE_SESSION or SETCLIENTID, OPEN to receive a delegation, and issue FREE_STATEID; no local Linux account or capability on the NFS server is required.\nUI:N - The attacker sends the NFSv4 compounds that obtain the delegation, FREE_STATEID, and client teardown. Administrative unlock_filesystem/unexport is a server operational condition (exportfs -u or volume detach), not a required victim user action such as mounting or opening a file.\nS:U - The use-after-free corrupts a kmalloc\u0027d nfs4_delegation (deleg_slab) in the NFS server kernel. Impact stays in that host kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Without SC_STATUS_FREED, revoke_delegation() list_add()s a kmem_cache_free\u0027d nfs4_delegation onto cl_revoked (KMEM_CACHE flags 0, not SLAB_TYPESAFE_BY_RCU). __destroy_client() then walks that freed object; slab reuse yields an arbitrary kernel-read primitive. Per guidance a UAF is C:H.\nI:H - list_add on the freed dl_recall_lru and later list_del_init/nfs4_put_stid in __destroy_client() write through reclaimed deleg_slab, including sc_free. That is a heap-spray write and control-flow hijack primitive. Per guidance a UAF is I:H.\nA:H - Use-after-free of nfs4_delegation when __destroy_client() traverses cl_revoked oopses or panics the nfsd thread even without full exploitation, fully denying service of the NFS server host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:16.319Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d832a0587528853d45481d1faf75d4b5d062adaf"
},
{
"url": "https://git.kernel.org/stable/c/1e4795766719ffd74b8cf0f2fde4a1350f8326bf"
},
{
"url": "https://git.kernel.org/stable/c/a6d89032e5c6620d5bb44582a72555ce07bf1c2e"
},
{
"url": "https://git.kernel.org/stable/c/650d370cfbc66a96dd14d517bd704689b5bda4e5"
}
],
"title": "nfsd: set SC_STATUS_FREED in nfsd4_drop_revoked_stid for delegations",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89703",
"datePublished": "2026-09-11T19:46:20.280Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:16.319Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72053 (GCVE-0-2026-72053)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ipip: require CAP_NET_ADMIN in the device netns for changelink
ipip_changelink() operates on at most two netns, dev_net(dev) and the
tunnel link netns t->net. They differ once the device is created in or
moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Gate ipip_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee Version: 6c742e714d8c282fd8f8b22d3e20b5141738c1ee |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72053",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:56.854683Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:25.074Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/ipip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a7d2642a50282322bc33f34ee7305f2b793df494",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "068ad9b85f681755f751ebab82ae98146cec163d",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "91571643e554ae89a91942380d5f5361fb7060a2",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "983cc4aa7e6f633b34c3ee743771252d7afa9a90",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "26544021d5c49cc6ae8a968ccb5033e6363854a4",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "68cadc3698c7de88966d306d12ec9c6217da228a",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "d49edcc65e0a37cc9b386a94415c5d6670ca8b71",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
},
{
"lessThan": "8211a26324667980a463c069469a818e71207e02",
"status": "affected",
"version": "6c742e714d8c282fd8f8b22d3e20b5141738c1ee",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/ipip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.12"
},
{
"lessThan": "3.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipip: require CAP_NET_ADMIN in the device netns for changelink\n\nipip_changelink() operates on at most two netns, dev_net(dev) and the\ntunnel link netns t-\u003enet. They differ once the device is created in or\nmoved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in t-\u003enet can rewrite a tunnel that\nlives in t-\u003enet.\n\nGate ipip_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires RTM_NEWLINK changelink over a local rtnetlink socket; ipip_changelink is only reachable from rtnl configuration, not from received IPv4/MPLS packets processed by ipip_rcv.\nAC:L - Once an IPIP device exists with t-\u003enet differing from dev_net(dev) via IFLA_LINK_NETNSID newlink or IFLA_NET_NS_FD migration, a single deterministic netlink changelink bypasses the missing check with no race or memory-layout dependency.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN only in dev_net(dev), obtainable by an unprivileged local user via unshare --user --map-root-user --net; no CAP_NET_ADMIN in the sticky link netns t-\u003enet is required.\nUI:N - The attack is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - Authorization is checked against dev_net(dev) while ipip_changelink mutates tunnel state in t-\u003enet via ip_tunnel_changelink/ip_tunnel_update, crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host\u0027s network namespace.\nC:H - An attacker can rewrite IFLA_IPTUN_LOCAL/REMOTE, link, fwmark, and encap parameters to redirect IPv4-in-IPv4/MPLS traffic to an attacker-controlled endpoint and read all tunneled payloads in the victim link netns.\nI:H - Unauthorized changelink updates live tunnel endpoints, underlay netdev, encap ports, and fwmark in t-\u003enet, enabling redirection and injection of encapsulated IPv4/MPLS traffic across the namespace boundary.\nA:H - Rewriting tunnel remote/local addresses, underlay device, or encap parameters breaks IPIP/MPLS overlay connectivity, causing sustained loss of service for every workload depending on the affected tunnel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:35.344Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a7d2642a50282322bc33f34ee7305f2b793df494"
},
{
"url": "https://git.kernel.org/stable/c/068ad9b85f681755f751ebab82ae98146cec163d"
},
{
"url": "https://git.kernel.org/stable/c/91571643e554ae89a91942380d5f5361fb7060a2"
},
{
"url": "https://git.kernel.org/stable/c/983cc4aa7e6f633b34c3ee743771252d7afa9a90"
},
{
"url": "https://git.kernel.org/stable/c/26544021d5c49cc6ae8a968ccb5033e6363854a4"
},
{
"url": "https://git.kernel.org/stable/c/68cadc3698c7de88966d306d12ec9c6217da228a"
},
{
"url": "https://git.kernel.org/stable/c/d49edcc65e0a37cc9b386a94415c5d6670ca8b71"
},
{
"url": "https://git.kernel.org/stable/c/8211a26324667980a463c069469a818e71207e02"
}
],
"title": "net: ipip: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72053",
"datePublished": "2026-08-15T05:52:09.924Z",
"dateReserved": "2026-08-09T03:40:39.902Z",
"dateUpdated": "2026-10-19T21:19:25.074Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72325 (GCVE-0-2026-72325)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf/x86/amd/core: Avoid enabling BRS from the SVM reload path
Branch Sampling (BRS) and Last Branch Record (LBR) are mutually
exclusive hardware features, and users of both are tracked via
cpuc->lbr_users.
When SVM is toggled on a CPU, the host perf events are reprogrammed to
update the HostOnly filter bit (set when virtualization is enabled,
cleared when it is disabled). On PerfMonV2-capable processors, this
reprogramming is performed by calling amd_pmu_enable_all() to rewrite
the event selectors. However, amd_pmu_enable_all() also calls
amd_brs_enable_all(), which enables BRS whenever cpuc->lbr_users > 0.
Having active LBR events satisfies this gating on processors that have
LBR but not BRS. The kernel then tries to set the BRS enable bit in
DebugExtnCfg (MSR 0xc000010f). Since that bit is deprecated on such
hardware, the write results in a #GP:
Call Trace:
<IRQ>
amd_pmu_enable_all+0x1d/0x90
amd_pmu_disable_virt+0x62/0xb0
kvm_arch_disable_virtualization_cpu+0xa/0x40 [kvm]
hardware_disable_nolock+0x1a/0x30 [kvm]
__flush_smp_call_function_queue+0x9b/0x410
__sysvec_call_function+0x18/0xc0
sysvec_call_function+0x69/0x90
</IRQ>
<TASK>
asm_sysvec_call_function+0x16/0x20
RIP: 0010:cpuidle_enter_state+0xc4/0x450
? cpuidle_enter_state+0xb7/0x450
cpuidle_enter+0x29/0x40
cpuidle_idle_call+0xf5/0x160
do_idle+0x7b/0xe0
cpu_startup_entry+0x26/0x30
start_secondary+0x115/0x140
secondary_startup_64_no_verify+0x194/0x19b
</TASK>
Fix this by ensuring that BRS is not enabled from the event selector
reprogramming path even when cpuc->lbr_users > 0.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/events/amd/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3b0aa139ba09a5b73c0f300e652076232f869f68",
"status": "affected",
"version": "bae19fdd7e9e759580ac4693d2df3bc23ab415d7",
"versionType": "git"
},
{
"lessThan": "e9b1a7411a667539c2f55e720bbb5f623b526a32",
"status": "affected",
"version": "bae19fdd7e9e759580ac4693d2df3bc23ab415d7",
"versionType": "git"
},
{
"lessThan": "7cc438c99bba324a0562b1bafa747b10f7e251df",
"status": "affected",
"version": "bae19fdd7e9e759580ac4693d2df3bc23ab415d7",
"versionType": "git"
},
{
"lessThan": "46d0fd8535edce31f15e48d2de1bdee39a4850e5",
"status": "affected",
"version": "bae19fdd7e9e759580ac4693d2df3bc23ab415d7",
"versionType": "git"
},
{
"lessThan": "07c60dda9c059c09f83d42a3ebda2e7cc1cf3bc2",
"status": "affected",
"version": "bae19fdd7e9e759580ac4693d2df3bc23ab415d7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/events/amd/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/x86/amd/core: Avoid enabling BRS from the SVM reload path\n\nBranch Sampling (BRS) and Last Branch Record (LBR) are mutually\nexclusive hardware features, and users of both are tracked via\ncpuc-\u003elbr_users.\n\nWhen SVM is toggled on a CPU, the host perf events are reprogrammed to\nupdate the HostOnly filter bit (set when virtualization is enabled,\ncleared when it is disabled). On PerfMonV2-capable processors, this\nreprogramming is performed by calling amd_pmu_enable_all() to rewrite\nthe event selectors. However, amd_pmu_enable_all() also calls\namd_brs_enable_all(), which enables BRS whenever cpuc-\u003elbr_users \u003e 0.\nHaving active LBR events satisfies this gating on processors that have\nLBR but not BRS. The kernel then tries to set the BRS enable bit in\nDebugExtnCfg (MSR 0xc000010f). Since that bit is deprecated on such\nhardware, the write results in a #GP:\n\n Call Trace:\n \u003cIRQ\u003e\n amd_pmu_enable_all+0x1d/0x90\n amd_pmu_disable_virt+0x62/0xb0\n kvm_arch_disable_virtualization_cpu+0xa/0x40 [kvm]\n hardware_disable_nolock+0x1a/0x30 [kvm]\n __flush_smp_call_function_queue+0x9b/0x410\n __sysvec_call_function+0x18/0xc0\n sysvec_call_function+0x69/0x90\n \u003c/IRQ\u003e\n \u003cTASK\u003e\n asm_sysvec_call_function+0x16/0x20\n RIP: 0010:cpuidle_enter_state+0xc4/0x450\n ? cpuidle_enter_state+0xb7/0x450\n cpuidle_enter+0x29/0x40\n cpuidle_idle_call+0xf5/0x160\n do_idle+0x7b/0xe0\n cpu_startup_entry+0x26/0x30\n start_secondary+0x115/0x140\n secondary_startup_64_no_verify+0x194/0x19b\n \u003c/TASK\u003e\n\nFix this by ensuring that BRS is not enabled from the event selector\nreprogramming path even when cpuc-\u003elbr_users \u003e 0."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:35.148Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3b0aa139ba09a5b73c0f300e652076232f869f68"
},
{
"url": "https://git.kernel.org/stable/c/e9b1a7411a667539c2f55e720bbb5f623b526a32"
},
{
"url": "https://git.kernel.org/stable/c/7cc438c99bba324a0562b1bafa747b10f7e251df"
},
{
"url": "https://git.kernel.org/stable/c/46d0fd8535edce31f15e48d2de1bdee39a4850e5"
},
{
"url": "https://git.kernel.org/stable/c/07c60dda9c059c09f83d42a3ebda2e7cc1cf3bc2"
}
],
"title": "perf/x86/amd/core: Avoid enabling BRS from the SVM reload path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72325",
"datePublished": "2026-08-15T05:55:36.148Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-21T12:44:35.148Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74479 (GCVE-0-2026-74479)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: pktgen: fix proc entry use-after-free
pktgen_change_name() replaces pkt_dev->entry while holding t->if_lock.
pktgen_remove_device() removes the same entry before
_rem_dev_from_if_list() takes that lock.
This allows the following interleaving:
CPU 0 (NETDEV_CHANGENAME) CPU 1 (kpktgend)
if_lock(t)
proc_remove(pkt_dev->entry)
proc_remove(pkt_dev->entry)
pkt_dev->entry = proc_create_data(...)
if_unlock(t)
The kthread can pass the stale proc_dir_entry to proc_remove() after the
rename path has freed it. A reproducer with a widened race window reports:
BUG: KASAN: slab-use-after-free in proc_remove+0x78/0x80
Read of size 8 at addr ffff8881478fea70 by task kpktgend_0/67
Call Trace:
proc_remove+0x78/0x80
pktgen_remove_device.isra.0+0x11c/0x4c0
pktgen_thread_worker+0x1214/0x6bc0
kthread+0x2c6/0x3b0
Allocated by task 95:
__proc_create+0x204/0x790
proc_create_data+0x72/0xe0
pktgen_thread_write+0xd61/0x1510
Freed by task 28:
kmem_cache_free+0xcb/0x3d0
proc_free_inode+0x5b/0x80
rcu_core+0x50a/0x1850
The buggy address belongs to the object at ffff8881478fea00
which belongs to the cache proc_dir_entry of size 192
Move proc_remove() into the if_lock-protected list removal helper. Keep it
before list_del_rcu() to preserve the ordering required by add_device().
The rename path must then finish replacing the entry before removal, or
it observes that the device is no longer on the list.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 Version: 39df232f1a9ba48d41c68ee7d4046756e709cf91 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74479",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:37.706862Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:48.651Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/pktgen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82ed3db9269cb61e3c15bad2f6e221efce90e1e0",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "d1cc9797cf8f7aeb87e7ad01b748c6a960a819e4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "7991c7cff8b8622cddb3d8dee07dbe74aa4cbec4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "577443530cb592d5782a1f79847411a9363a65c8",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "f85a58340b91f225de3299dfa782c6414098077c",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "4ef801b838d85c0ea5852c50667f7344ce3b6cd0",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "b006a5404470bd3eb2aa0425fc447183032047ef",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "817ff6efdb7f484ea547218e11e17d8e43daa3b4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/pktgen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: pktgen: fix proc entry use-after-free\n\npktgen_change_name() replaces pkt_dev-\u003eentry while holding t-\u003eif_lock.\npktgen_remove_device() removes the same entry before\n_rem_dev_from_if_list() takes that lock.\n\nThis allows the following interleaving:\n\n CPU 0 (NETDEV_CHANGENAME) CPU 1 (kpktgend)\n if_lock(t)\n proc_remove(pkt_dev-\u003eentry)\n proc_remove(pkt_dev-\u003eentry)\n pkt_dev-\u003eentry = proc_create_data(...)\n if_unlock(t)\n\nThe kthread can pass the stale proc_dir_entry to proc_remove() after the\nrename path has freed it. A reproducer with a widened race window reports:\n\n BUG: KASAN: slab-use-after-free in proc_remove+0x78/0x80\n Read of size 8 at addr ffff8881478fea70 by task kpktgend_0/67\n Call Trace:\n proc_remove+0x78/0x80\n pktgen_remove_device.isra.0+0x11c/0x4c0\n pktgen_thread_worker+0x1214/0x6bc0\n kthread+0x2c6/0x3b0\n Allocated by task 95:\n __proc_create+0x204/0x790\n proc_create_data+0x72/0xe0\n pktgen_thread_write+0xd61/0x1510\n Freed by task 28:\n kmem_cache_free+0xcb/0x3d0\n proc_free_inode+0x5b/0x80\n rcu_core+0x50a/0x1850\n The buggy address belongs to the object at ffff8881478fea00\n which belongs to the cache proc_dir_entry of size 192\n\nMove proc_remove() into the if_lock-protected list removal helper. Keep it\nbefore list_del_rcu() to preserve the ordering required by add_device().\nThe rename path must then finish replacing the entry before removal, or\nit observes that the device is no longer on the list."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local access to /proc/net/pktgen procfs writes and a SIOCSIFNAME/ip-link rename of a pktgen-bound netdev; pktgen is configured only via local proc and ioctl paths, not via remote network packets.\nAC:L - The UAF is a race between pktgen_change_name() on NETDEV_CHANGENAME and pktgen_remove_device() in kpktgend; an attacker controls both sides concurrently via rem_device_all/unregister and interface rename, so success does not depend on uncontrollable timing.\nPR:L - Triggering rename needs ns_capable(CAP_NET_ADMIN) and pktgen proc writes are mode 0600; CAP_NET_ADMIN is obtainable by an unprivileged user via user/network namespaces (unshare -Urn), so real init-namespace root is not required.\nUI:N - No victim interaction is required; the attacker drives pktgen device add/remove and netdev rename/unregister directly through local proc writes and netlink/ioctl without needing another user to act.\nS:U - Impact is kernel slab corruption and potential privilege escalation within the same kernel security domain; it does not inherently cross VM, container, or IOMMU boundaries without additional unrelated primitives.\nC:H - The bug is a slab use-after-free of a proc_dir_entry in proc_remove(); KASAN shows reads of freed 192-byte objects, and UAF on proc metadata can be turned into arbitrary kernel memory disclosure via heap grooming.\nI:H - Corrupting or reusing the freed proc_dir_entry during proc_remove()/procfs teardown can enable attacker-controlled writes and control-flow hijack in kernel context, not merely a benign NULL dereference crash.\nA:H - Concurrent rename and removal causes proc_remove() to dereference a freed proc_dir_entry, producing KASAN slab-use-after-free and kernel oops/panic; even without full exploit development, the UAF reliably threatens system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:23.408Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82ed3db9269cb61e3c15bad2f6e221efce90e1e0"
},
{
"url": "https://git.kernel.org/stable/c/d1cc9797cf8f7aeb87e7ad01b748c6a960a819e4"
},
{
"url": "https://git.kernel.org/stable/c/7991c7cff8b8622cddb3d8dee07dbe74aa4cbec4"
},
{
"url": "https://git.kernel.org/stable/c/577443530cb592d5782a1f79847411a9363a65c8"
},
{
"url": "https://git.kernel.org/stable/c/f85a58340b91f225de3299dfa782c6414098077c"
},
{
"url": "https://git.kernel.org/stable/c/4ef801b838d85c0ea5852c50667f7344ce3b6cd0"
},
{
"url": "https://git.kernel.org/stable/c/b006a5404470bd3eb2aa0425fc447183032047ef"
},
{
"url": "https://git.kernel.org/stable/c/817ff6efdb7f484ea547218e11e17d8e43daa3b4"
}
],
"title": "net: pktgen: fix proc entry use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74479",
"datePublished": "2026-08-15T12:27:13.172Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-10-16T19:05:48.651Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72487 (GCVE-0-2026-72487)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
PCI: Check ROM header and data structure addr before accessing
We meet a crash when running stress-ng on x86_64 machine:
BUG: unable to handle page fault for address: ffa0000007f40000
RIP: 0010:pci_get_rom_size+0x52/0x220
Call Trace:
<TASK>
pci_map_rom+0x80/0x130
pci_read_rom+0x4b/0xe0
kernfs_file_read_iter+0x96/0x180
vfs_read+0x1b1/0x300
Our analysis reveals that the ROM space's start address is
0xffa0000007f30000, and size is 0x10000. Because of broken ROM space,
before calling readl(pds), the pds's value is 0xffa0000007f3ffff, which is
already pointed to the ROM space end, invoking readl() would read 4 bytes
therefore cause an out-of-bounds access and trigger a crash. Fix this by
adding image header and data structure checking.
We also found another crash on arm64 machine:
Unable to handle kernel paging request at virtual address ffff8000dd1393ff
Mem abort info:
ESR = 0x0000000096000021
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x21: alignment fault
The call trace is the same with x86_64, but the crash reason is that the
data structure addr is not aligned with 4, and arm64 machine report
"alignment fault". Fix this by adding alignment checking.
[bhelgaas: shorten function names, wrap comments]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 Version: 47b975d234eac39f3a72e5496d5f6158d8b806d1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72487",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:42.763719Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:26.195Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/rom.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cd5b242d5848369b9e957340a7e30adee7b6763d",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
},
{
"lessThan": "4997873e3abbad47a9e1e4abd05f045f77a74f22",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
},
{
"lessThan": "724042f8f98d2594b9d164549fd4292c6bd58120",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
},
{
"lessThan": "1d495446ec7ace5b61da366ffb161ee8319dd9a2",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
},
{
"lessThan": "721ad5b72448b5065ed309017ab563205f162404",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
},
{
"lessThan": "538796b807fcfb81b2ce40cc97a614fd8588feb5",
"status": "affected",
"version": "47b975d234eac39f3a72e5496d5f6158d8b806d1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/rom.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.5"
},
{
"lessThan": "4.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: Check ROM header and data structure addr before accessing\n\nWe meet a crash when running stress-ng on x86_64 machine:\n\n BUG: unable to handle page fault for address: ffa0000007f40000\n RIP: 0010:pci_get_rom_size+0x52/0x220\n Call Trace:\n \u003cTASK\u003e\n pci_map_rom+0x80/0x130\n pci_read_rom+0x4b/0xe0\n kernfs_file_read_iter+0x96/0x180\n vfs_read+0x1b1/0x300\n\nOur analysis reveals that the ROM space\u0027s start address is\n0xffa0000007f30000, and size is 0x10000. Because of broken ROM space,\nbefore calling readl(pds), the pds\u0027s value is 0xffa0000007f3ffff, which is\nalready pointed to the ROM space end, invoking readl() would read 4 bytes\ntherefore cause an out-of-bounds access and trigger a crash. Fix this by\nadding image header and data structure checking.\n\nWe also found another crash on arm64 machine:\n\n Unable to handle kernel paging request at virtual address ffff8000dd1393ff\n Mem abort info:\n ESR = 0x0000000096000021\n EC = 0x25: DABT (current EL), IL = 32 bits\n SET = 0, FnV = 0\n EA = 0, S1PTW = 0\n FSC = 0x21: alignment fault\n\nThe call trace is the same with x86_64, but the crash reason is that the\ndata structure addr is not aligned with 4, and arm64 machine report\n\"alignment fault\". Fix this by adding alignment checking.\n\n[bhelgaas: shorten function names, wrap comments]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only through local kernel paths\u2014sysfs rom reads, VFIO PCI ROM region access, or pci_map_rom() during driver probe\u2014not via any network-facing handler.\nAC:L - An attacker fully controls option-ROM header fields on a malicious or broken PCI device and can reliably craft pointers/lengths that place MMIO reads at the ROM window edge to trigger the fault.\nPR:N - Exploitation requires no OS privileges when a crafted option ROM on a hot-plugged PCIe/Thunderbolt device is parsed during automatic driver probe; VFIO ROM access also needs only standard device file permissions.\nUI:N - No victim interaction is required beyond attacker-initiated local ROM access or automatic kernel parsing when a malicious PCI device is inserted and bound to a driver.\nS:U - The impact is a kernel page fault/panic within the host kernel from malformed ROM parsing; it does not cross VM, IOMMU, or other security boundaries.\nC:H - pci_get_rom_size() performs unchecked readw/readl on attacker-controlled offsets, causing out-of-bounds MMIO reads past the ioremap window before faulting (CWE-125).\nI:N - The bug is an out-of-bounds read that faults immediately; it does not modify kernel memory, device state, or provide a write/control-flow primitive.\nA:H - Confirmed kernel crashes on x86_64 (page fault) and arm64 (alignment fault) when parsing malformed ROM data, causing denial of service via kernel oops/panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:48.915Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cd5b242d5848369b9e957340a7e30adee7b6763d"
},
{
"url": "https://git.kernel.org/stable/c/4997873e3abbad47a9e1e4abd05f045f77a74f22"
},
{
"url": "https://git.kernel.org/stable/c/724042f8f98d2594b9d164549fd4292c6bd58120"
},
{
"url": "https://git.kernel.org/stable/c/1d495446ec7ace5b61da366ffb161ee8319dd9a2"
},
{
"url": "https://git.kernel.org/stable/c/721ad5b72448b5065ed309017ab563205f162404"
},
{
"url": "https://git.kernel.org/stable/c/538796b807fcfb81b2ce40cc97a614fd8588feb5"
}
],
"title": "PCI: Check ROM header and data structure addr before accessing",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72487",
"datePublished": "2026-08-15T05:57:23.490Z",
"dateReserved": "2026-08-09T03:40:39.936Z",
"dateUpdated": "2026-10-16T18:55:26.195Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98029 (GCVE-0-2026-98029)
Vulnerability from cvelistv5
Published
2026-09-25 10:23
Modified
2026-10-19 09:12
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
eth: nfp: bound the ntuple rule dump by the caller's buffer size
nfp_net_get_fs_loc() dumps every entry of nn->fs.list into rule_locs[]
without consulting cmd->rule_cnt, which is how many entries the caller
had room for. ETHTOOL_GRXCLSRLALL requires no CAP_NET_ADMIN and the
ioctl sizes the buffer from the rule_cnt userspace passes in, so once an
admin has installed flow steering rules any user can ask for fewer slots
than there are rules and run off the end of the allocation. A rule_cnt
of 0 leaves the buffer pointer NULL and the walk dereferences it.
Bail out with -EMSGSIZE when the buffer fills up, the way the other
ntuple capable drivers do, and report how many locations were filled so
a shrinking rule list does not leave the caller reading stale slots.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82812583b9c69c241da6da4186f14e9df2516488",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "a7e023c63e855761c1426cee8d17c2bca32aa339",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "ecebfdaab72a504c10f4907bd00fc3b705ec3b12",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
},
{
"lessThan": "f1986bf87b0709c95126fe196cf39e5b8c8453a1",
"status": "affected",
"version": "9eb03bb1c035ff6e2c3a34046419446588253dda",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\neth: nfp: bound the ntuple rule dump by the caller\u0027s buffer size\n\nnfp_net_get_fs_loc() dumps every entry of nn-\u003efs.list into rule_locs[]\nwithout consulting cmd-\u003erule_cnt, which is how many entries the caller\nhad room for. ETHTOOL_GRXCLSRLALL requires no CAP_NET_ADMIN and the\nioctl sizes the buffer from the rule_cnt userspace passes in, so once an\nadmin has installed flow steering rules any user can ask for fewer slots\nthan there are rules and run off the end of the allocation. A rule_cnt\nof 0 leaves the buffer pointer NULL and the walk dereferences it.\n\nBail out with -EMSGSIZE when the buffer fills up, the way the other\nntuple capable drivers do, and report how many locations were filled so\na shrinking rule list does not leave the caller reading stale slots."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The trigger is a local SIOCETHTOOL ioctl (ETHTOOL_GRXCLSRLALL) on a socket, reaching ethtool_get_rxnfc() -\u003e nfp_net_get_rxnfc() -\u003e nfp_net_get_fs_loc(). The rule_cnt that sizes the buffer comes from the local caller, not from any packet off the wire.\nAC:H - The overflow needs a non-empty nn-\u003efs.list on an NFP NIC with NFP_NET_CFG_CTRL_FLOW_STEER. Only an admin can create those rules, via set_rxnfc/nfp_net_fs_add with CAP_NET_ADMIN on a physical init-netns device. The unprivileged attacker cannot create this state and must wait for it to exist.\nPR:L - dev_ethtool() lists ETHTOOL_GRXCLSRLALL among the commands anyone may run and skips the ns_capable(CAP_NET_ADMIN) check for it. Any local unprivileged user can call it with a small rule_cnt.\nUI:N - No victim action is needed. The attacker issues the ioctl whenever they like, once the rules exist as a standing configuration.\nS:U - Kernel heap corruption leading to local privilege escalation or a crash stays within the kernel\u0027s own security authority.\nC:H - ethtool_get_rxnfc() sizes rule_buf with kcalloc(rule_cnt), so the attacker chooses the slab cache. nfp_net_get_fs_loc() then writes up to ~4KB of u32 rule locations past it. That corrupts adjacent kmalloc objects, which can be leveraged into an information leak.\nI:H - This is an out-of-bounds heap write into neighbouring slab objects in a cache the attacker chooses, with an attacker-chosen overflow length (rule count minus rule_cnt). It is a memory corruption primitive usable against adjacent object fields.\nA:H - With rule_cnt=0, rule_buf stays NULL and rule_locs[0] = entry-\u003eloc writes through the NULL pointer, oopsing the kernel. Larger overflows corrupt the slab and can panic the kernel. Either can be repeated at will by an unprivileged user."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:34.306Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82812583b9c69c241da6da4186f14e9df2516488"
},
{
"url": "https://git.kernel.org/stable/c/a7e023c63e855761c1426cee8d17c2bca32aa339"
},
{
"url": "https://git.kernel.org/stable/c/ecebfdaab72a504c10f4907bd00fc3b705ec3b12"
},
{
"url": "https://git.kernel.org/stable/c/f1986bf87b0709c95126fe196cf39e5b8c8453a1"
}
],
"title": "eth: nfp: bound the ntuple rule dump by the caller\u0027s buffer size",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98029",
"datePublished": "2026-09-25T10:23:46.347Z",
"dateReserved": "2026-09-25T10:19:56.070Z",
"dateUpdated": "2026-10-19T09:12:34.306Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89564 (GCVE-0-2026-89564)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ip: orphan prefetched skbs before multicast forwarding
IPv4 and IPv6 input preserve an skb->sk association installed by
bpf_sk_assign() so that local delivery can use the selected socket under
RCU. Both address families can also prefetch a socket in UDP early demux.
In both paths (BPF and UDP early demux) a reference is not guaranteed to
be held on the socket.
When a multicast packet is not locally deliverable, IPv6 hands the
original skb to ip6_mr_input(). IPv4's ip_mr_input() similarly keeps the
original skb when local delivery is not needed. Either path can put the
skb on an unresolved multicast route queue or forward it after the
receive-side RCU section ends.
After the prefetched socket is destroyed, a later skb free invokes
sock_pfree() and dereferences the stale skb->sk. Orphan the skb before
each non-local multicast forwarding path. Local delivery retains the
original skb; the existing skb_clone() calls provide multicast forwarding
with a socket-free clone.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89564",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:14.849445Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:44.346Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/ipmr.c",
"net/ipv6/ip6_input.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "882212d317a7c16ab70d20656f6b1c42abada9f6",
"status": "affected",
"version": "cf7fbe660f2dbd738ab58aea8e9b0ca6ad232449",
"versionType": "git"
},
{
"lessThan": "e62aef7d6a5b27569bf540bbe11a9482117ff588",
"status": "affected",
"version": "cf7fbe660f2dbd738ab58aea8e9b0ca6ad232449",
"versionType": "git"
},
{
"lessThan": "a8af6fbac895f057c4b8ff8a2e3fb4c5827fe4ce",
"status": "affected",
"version": "cf7fbe660f2dbd738ab58aea8e9b0ca6ad232449",
"versionType": "git"
},
{
"lessThan": "f1281d4b99089fbaf0d3579bba62a814ebb4de4d",
"status": "affected",
"version": "cf7fbe660f2dbd738ab58aea8e9b0ca6ad232449",
"versionType": "git"
},
{
"lessThan": "e36ce6e78fe3fc3c071a26750783b7ba081ce10d",
"status": "affected",
"version": "cf7fbe660f2dbd738ab58aea8e9b0ca6ad232449",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/ipmr.c",
"net/ipv6/ip6_input.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.7"
},
{
"lessThan": "5.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nip: orphan prefetched skbs before multicast forwarding\n\nIPv4 and IPv6 input preserve an skb-\u003esk association installed by\nbpf_sk_assign() so that local delivery can use the selected socket under\nRCU. Both address families can also prefetch a socket in UDP early demux.\nIn both paths (BPF and UDP early demux) a reference is not guaranteed to\nbe held on the socket.\n\nWhen a multicast packet is not locally deliverable, IPv6 hands the\noriginal skb to ip6_mr_input(). IPv4\u0027s ip_mr_input() similarly keeps the\noriginal skb when local delivery is not needed. Either path can put the\nskb on an unresolved multicast route queue or forward it after the\nreceive-side RCU section ends.\n\nAfter the prefetched socket is destroyed, a later skb free invokes\nsock_pfree() and dereferences the stale skb-\u003esk. Orphan the skb before\neach non-local multicast forwarding path. Local delivery retains the\noriginal skb; the existing skb_clone() calls provide multicast forwarding\nwith a socket-free clone."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF requires the attacker to attach a no-ref skb-\u003esk (UDP early demux or bpf_sk_assign) and destroy that socket while the skb sits on the mroute unresolved queue; a remote multicast datagram does not prefetch onto non-local ip_mr_input/ip6_mr_input (mcast early demux needs membership, which clones; ip_forward drops skb-\u003esk).\nAC:L - The attacker owns every step: enable mroute, bind/connect a UDP socket or attach TC bpf_sk_assign, inject a non-local multicast skb so ipmr_cache_unresolved() queues it for 10s, then close the socket and wait for kfree_skb; no uncontrolled race or memory layout is required.\nPR:L - MRT_INIT needs a raw IGMP/ICMPv6 socket (ns_capable CAP_NET_RAW) and VIFs/TC bpf_sk_assign need CAP_NET_ADMIN in the netns; an unprivileged user obtains both via unshare -Urn and never needs real init-namespace root.\nUI:N - The attacker performs the entire setup, packet injection, and socket close in their own user/net namespace; no other user must mount, open a file, or otherwise interact.\nS:U - The sock_pfree use-after-free corrupts kernel memory in the same host networking authority and does not cross a VM, IOMMU, or other security boundary.\nC:H - sock_pfree() dereferences the stale skb-\u003esk after the SOCK_RCU_FREE socket is destroyed; that UAF on a struct sock can be reclaimed with attacker-controlled objects, yielding an arbitrary read primitive.\nI:H - If the reused object looks refcounted, sock_pfree() calls sock_gen_put() and refcount_dec_and_test() on the freed sock, giving a UAF write/control-flow hijack primitive via heap spray.\nA:H - Freeing the queued skb after socket destruction oopses in sock_pfree() even without a full exploit, so the bug is a reliable kernel crash as well as a UAF."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:52.511Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/882212d317a7c16ab70d20656f6b1c42abada9f6"
},
{
"url": "https://git.kernel.org/stable/c/e62aef7d6a5b27569bf540bbe11a9482117ff588"
},
{
"url": "https://git.kernel.org/stable/c/a8af6fbac895f057c4b8ff8a2e3fb4c5827fe4ce"
},
{
"url": "https://git.kernel.org/stable/c/f1281d4b99089fbaf0d3579bba62a814ebb4de4d"
},
{
"url": "https://git.kernel.org/stable/c/e36ce6e78fe3fc3c071a26750783b7ba081ce10d"
}
],
"title": "ip: orphan prefetched skbs before multicast forwarding",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89564",
"datePublished": "2026-09-11T19:44:35.131Z",
"dateReserved": "2026-09-11T19:38:34.725Z",
"dateUpdated": "2026-10-21T12:47:52.511Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72237 (GCVE-0-2026-72237)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-19 16:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf/x86/amd/brs: Fix kernel address leakage
A user-only branch stack can contain branches that originate from
the kernel. As a result, kernel addresses are exposed to user space
even when PERF_SAMPLE_BRANCH_USER is requested. On AMD processors
supporting X86_FEATURE_BRS (Zen 3 only), perf can still report entries
such as SYSRET/interrupt returns for which the branch-from addresses
are in the kernel.
E.g.
$ perf record -j any,u -c 4000 -e branch-brs -o - -- \
perf bench syscall basic --loop 1000 | \
perf script -i - -F brstack|tr ' ' '\n'| \
grep -E '0x[89a-f][0-9a-f]{15}'
...
0xffffffff810001c4/0x72e2e32955eb/-/-/-/0//-
0xffffffff810001c4/0x72e2d94a9821/-/-/-/0//-
0xffffffff810001c4/0x72e2d94ffa1b/-/-/-/0//-
...
BRS provides no hardware branch filtering, so privilege level
filtering is performed entirely in software. However, amd_brs_match_plm()
only validates the branch-to address against the requested privilege
levels. For branches from the kernel to user space, the branch-from
address is left unchecked and is leaked. Extend the software filter to
also validate the branch-from address, so that any branch record whose
branch-from address is in the kernel is dropped when
PERF_SAMPLE_BRANCH_USER is requested.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 Version: 8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/events/amd/brs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4f949bc3913a6e3ce3b8574ac6ed1da8ec7a5ad1",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
},
{
"lessThan": "ac44b4a3d6137489f8fa2e794b12e849c6b22eaa",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
},
{
"lessThan": "90843d00dbc61220b66408ea0d8775cae9e51f70",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
},
{
"lessThan": "046f6244da9b68e463a849b21446b9424e531491",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
},
{
"lessThan": "2e706be56f418718bb3ae66c0aa94f9b61150e6d",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
},
{
"lessThan": "47915e855fb38b42133e31ba917d99565f862154",
"status": "affected",
"version": "8910075d61a37e5b0d82e6c83ed9a0a31fe9ea08",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/events/amd/brs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/x86/amd/brs: Fix kernel address leakage\n\nA user-only branch stack can contain branches that originate from\nthe kernel. As a result, kernel addresses are exposed to user space\neven when PERF_SAMPLE_BRANCH_USER is requested. On AMD processors\nsupporting X86_FEATURE_BRS (Zen 3 only), perf can still report entries\nsuch as SYSRET/interrupt returns for which the branch-from addresses\nare in the kernel.\n\nE.g.\n\n $ perf record -j any,u -c 4000 -e branch-brs -o - -- \\\n perf bench syscall basic --loop 1000 | \\\n perf script -i - -F brstack|tr \u0027 \u0027 \u0027\\n\u0027| \\\n grep -E \u00270x[89a-f][0-9a-f]{15}\u0027\n\n ...\n 0xffffffff810001c4/0x72e2e32955eb/-/-/-/0//-\n 0xffffffff810001c4/0x72e2d94a9821/-/-/-/0//-\n 0xffffffff810001c4/0x72e2d94ffa1b/-/-/-/0//-\n ...\n\nBRS provides no hardware branch filtering, so privilege level\nfiltering is performed entirely in software. However, amd_brs_match_plm()\nonly validates the branch-to address against the requested privilege\nlevels. For branches from the kernel to user space, the branch-from\naddress is left unchecked and is leaked. Extend the software filter to\nalso validate the branch-from address, so that any branch record whose\nbranch-from address is in the kernel is dropped when\nPERF_SAMPLE_BRANCH_USER is requested."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:31.271Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4f949bc3913a6e3ce3b8574ac6ed1da8ec7a5ad1"
},
{
"url": "https://git.kernel.org/stable/c/ac44b4a3d6137489f8fa2e794b12e849c6b22eaa"
},
{
"url": "https://git.kernel.org/stable/c/90843d00dbc61220b66408ea0d8775cae9e51f70"
},
{
"url": "https://git.kernel.org/stable/c/046f6244da9b68e463a849b21446b9424e531491"
},
{
"url": "https://git.kernel.org/stable/c/2e706be56f418718bb3ae66c0aa94f9b61150e6d"
},
{
"url": "https://git.kernel.org/stable/c/47915e855fb38b42133e31ba917d99565f862154"
}
],
"title": "perf/x86/amd/brs: Fix kernel address leakage",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72237",
"datePublished": "2026-08-15T05:54:26.685Z",
"dateReserved": "2026-08-09T03:40:39.914Z",
"dateUpdated": "2026-08-19T16:36:31.271Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89660 (GCVE-0-2026-89660)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NFSD: Prevent client use-after-free during admin state revocation
A stateid holds only a bare pointer to its nfs4_client; a stateid
reference does not pin it. The client survives only because
__destroy_client() drains its stateids before free_client() runs.
nfsd4_revoke_states() drops nn->client_lock across revoke_one_stid(),
which dereferences the client to revoke a stateid and read
clp->cl_minorversion. A teardown racing the dropped lock can free
the client first.
Pinning cl_rpc_users under client_lock blocks the DESTROY_CLIENTID and
EXCHANGE_ID teardown, which refuses while cl_rpc_users is non-zero.
force_expire_client() ignores it: once its wait for cl_rpc_users to
reach zero has passed, a later pin goes unnoticed.
Under client_lock, skip a client whose cl_time is already zero --
force_expire_client() clears it there before waiting -- otherwise pin
cl_rpc_users before dropping the lock. The walk then either sees the
expiry and skips, or pins in time for that wait to cover the revoke.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e1ba4d3c5bfdca3f013b8cbc829ae2f7975d8608",
"status": "affected",
"version": "1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc",
"versionType": "git"
},
{
"lessThan": "549bd9868e9d77b07ea94870940d64342829c6ad",
"status": "affected",
"version": "1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc",
"versionType": "git"
},
{
"lessThan": "bf1f948691523282cc4905bc6cd325e0c0b49e6a",
"status": "affected",
"version": "1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc",
"versionType": "git"
},
{
"lessThan": "e270e5a0778e5bff852c8862ce9576ce70359393",
"status": "affected",
"version": "1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent client use-after-free during admin state revocation\n\nA stateid holds only a bare pointer to its nfs4_client; a stateid\nreference does not pin it. The client survives only because\n__destroy_client() drains its stateids before free_client() runs.\n\nnfsd4_revoke_states() drops nn-\u003eclient_lock across revoke_one_stid(),\nwhich dereferences the client to revoke a stateid and read\nclp-\u003ecl_minorversion. A teardown racing the dropped lock can free\nthe client first.\n\nPinning cl_rpc_users under client_lock blocks the DESTROY_CLIENTID and\nEXCHANGE_ID teardown, which refuses while cl_rpc_users is non-zero.\nforce_expire_client() ignores it: once its wait for cl_rpc_users to\nreach zero has passed, a later pin goes unnoticed.\n\nUnder client_lock, skip a client whose cl_time is already zero --\nforce_expire_client() clears it there before waiting -- otherwise pin\ncl_rpc_users before dropping the lock. The walk then either sees the\nexpiry and skips, or pins in time for that wait to cover the revoke."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is in nfsd nfsd4_revoke_states(). A remote NFSv4 peer reaches the racing expire_client() over TCP/2049 via EXCHANGE_ID/CREATE_SESSION, SETCLIENTID_CONFIRM, or DESTROY_CLIENTID (ALLOWED_WITHOUT_FH), which free nfs4_client while the revoke walk still dereferences it.\nAC:L - The attacker controls the teardown side: they hold many stateids so the revoke walk drops client_lock once per stid, and concurrently retry EXCHANGE_ID/CREATE_SESSION or SETCLIENTID_CONFIRM so mark_client_expired_locked() succeeds while cl_rpc_users is unpinned.\nPR:N - EXCHANGE_ID, CREATE_SESSION, SETCLIENTID, SETCLIENTID_CONFIRM, and DESTROY_CLIENTID are ALLOWED_WITHOUT_FH with no export check. Typical AUTH_SYS/AUTH_NULL nfsd deployments do not verify RPC credentials, so any host that can reach TCP/2049 can establish state and trigger expire.\nUI:N - The attacker drives the NFS compounds that create state and expire the client. Administrative unlock_filesystem/unexport is a server operational condition (unexport or response to a misbehaving client), not a required victim user action.\nS:U - The freed object is struct nfs4_client in the NFS server kernel. Impact remains in that kernel security authority; there is no VM, IOMMU, or sandbox boundary crossing.\nC:H - revoke_one_stid() and the subsequent clp-\u003ecl_minorversion read dereference nfs4_client after free_client() kmem_cache_free\u0027s the mergeable client_slab object (KMEM_CACHE flags 0). Reclaim via EXCHANGE_ID discloses kernel memory; a UAF is C:H.\nI:H - revoke_one_stid() takes cl_lock and nfs4_put_stid() does refcount_dec_and_lock/idr_remove on the freed client\u0027s cl_lock/cl_stateids, concurrent with __destroy_client(), a slab UAF write primitive for heap corruption and control-flow hijacking.\nA:H - Use-after-free of nfs4_client in the nfsd revoke path oopses or panics the NFS server even without full exploitation, fully denying service of the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:31.845Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e1ba4d3c5bfdca3f013b8cbc829ae2f7975d8608"
},
{
"url": "https://git.kernel.org/stable/c/549bd9868e9d77b07ea94870940d64342829c6ad"
},
{
"url": "https://git.kernel.org/stable/c/bf1f948691523282cc4905bc6cd325e0c0b49e6a"
},
{
"url": "https://git.kernel.org/stable/c/e270e5a0778e5bff852c8862ce9576ce70359393"
}
],
"title": "NFSD: Prevent client use-after-free during admin state revocation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89660",
"datePublished": "2026-09-11T19:45:48.341Z",
"dateReserved": "2026-09-11T19:38:34.744Z",
"dateUpdated": "2026-10-19T08:50:31.845Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45872 (GCVE-0-2026-45872)
Vulnerability from cvelistv5
Published
2026-05-27 12:15
Modified
2026-05-27 12:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: smartpqi: Fix memory leak in pqi_report_phys_luns()
pqi_report_phys_luns() fails to release the rpl_list buffer when
encountering an unsupported data format or when the allocation for
rpl_16byte_wwid_list fails. These early returns bypass the cleanup logic,
leading to memory leaks.
Consolidate the error handling by adding an out_free_rpl_list label and use
goto statements to ensure rpl_list is consistently freed on failure.
Compile tested only. Issue found using a prototype static analysis tool and
code review.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 Version: 28ca6d876c5a375094847606046e0bf5d044d9b4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/smartpqi/smartpqi_init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f471ecfec093e39ef8fd08978413793087daa14d",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
},
{
"lessThan": "fdf1188cfa80f88c9f18d58cb33d57ff40e70e26",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
},
{
"lessThan": "d52e13122d3771f753dd73ae6512fa01f58015cb",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
},
{
"lessThan": "e5579ebaadc7b699868dad0f591a7bf83cd647e1",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
},
{
"lessThan": "454570434114e4862767f506a442a0f110b639b2",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
},
{
"lessThan": "41b37312bd9722af77ec7817ccf22d7a4880c289",
"status": "affected",
"version": "28ca6d876c5a375094847606046e0bf5d044d9b4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/smartpqi/smartpqi_init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.16"
},
{
"lessThan": "5.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.165",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.128",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.75",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.14",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.165",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.128",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.14",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.4",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: smartpqi: Fix memory leak in pqi_report_phys_luns()\n\npqi_report_phys_luns() fails to release the rpl_list buffer when\nencountering an unsupported data format or when the allocation for\nrpl_16byte_wwid_list fails. These early returns bypass the cleanup logic,\nleading to memory leaks.\n\nConsolidate the error handling by adding an out_free_rpl_list label and use\ngoto statements to ensure rpl_list is consistently freed on failure.\n\nCompile tested only. Issue found using a prototype static analysis tool and\ncode review."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-27T12:15:52.133Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f471ecfec093e39ef8fd08978413793087daa14d"
},
{
"url": "https://git.kernel.org/stable/c/fdf1188cfa80f88c9f18d58cb33d57ff40e70e26"
},
{
"url": "https://git.kernel.org/stable/c/d52e13122d3771f753dd73ae6512fa01f58015cb"
},
{
"url": "https://git.kernel.org/stable/c/e5579ebaadc7b699868dad0f591a7bf83cd647e1"
},
{
"url": "https://git.kernel.org/stable/c/454570434114e4862767f506a442a0f110b639b2"
},
{
"url": "https://git.kernel.org/stable/c/41b37312bd9722af77ec7817ccf22d7a4880c289"
}
],
"title": "scsi: smartpqi: Fix memory leak in pqi_report_phys_luns()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-45872",
"datePublished": "2026-05-27T12:15:52.133Z",
"dateReserved": "2026-05-13T15:03:33.081Z",
"dateUpdated": "2026-05-27T12:15:52.133Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74484 (GCVE-0-2026-74484)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 06:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: don't let an 'F' entry pin its own instance
An entry registered with 'F' opens its interpreter at registration time
and holds that file until the entry is freed. Any entry nobody removes
by hand only gets closed once the binfmt_misc superblock is shut down.
If the interpreter lives on a mount that keeps that superblock alive the
two pin each other:
binfmt_misc sb -> inode -> entry -> interp_file -> vfsmount -> binfmt_misc sb
TL;DR the file is never closed. Once the mount namespace is gone there
is nothing left to unregister through either.
There are two ways to trigger this bug:
- Point the interpreter at the instance itself. Its files are regular
files owned by the mounter and both bm_get_inode() and
simple_fill_super() leave i_op at empty_iops. So notify_change() falls
back to simple_setattr() and chmod +x works. We never set SB_I_NOEXEC
and so open_exec() accepts it.
- Use the instance as an overlayfs lower layer. The overlay superblock
holds a clone_private_mount() of every layer until it is destroyed and
that clone is in no namespace. So umount_tree() never reaches it.
That's a DoS. And it isn't only the superblock that leaks. It pins the
user namespace it was mounted in, so every iteration permanently eats
one of the caller's user namespace charges.
So let's just do the sane thing. SB_I_NOEXEC makes open_exec() fail on
the instance's own files and s_stack_depth makes overlayfs reject the
layer before it ever takes a clone. That also covers the ecryptfs and
fuse passthrough variants. What 'F' promises is unchanged.
The stable tag is narrower than the Fixes tags on purpose. Before
sandboxed mounts this needed global root against the single instance
everyone shares, and the change doesn't apply to those trees anyway.
Note that SB_I_NODEV is implicitly raised for userns mounts but raise it
explicitly here as well.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1cc2decee06acc939337304e9b3f737fd5d8c4bd",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "4dad8ca637d44d5a6d5c23fa80c9e2e455198c2b",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "098e92fe0f1bde5af99c8cf504f13f01ef139f85",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "79055d82772b9584f259b747fe40ff56a076678d",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: don\u0027t let an \u0027F\u0027 entry pin its own instance\n\nAn entry registered with \u0027F\u0027 opens its interpreter at registration time\nand holds that file until the entry is freed. Any entry nobody removes\nby hand only gets closed once the binfmt_misc superblock is shut down.\nIf the interpreter lives on a mount that keeps that superblock alive the\ntwo pin each other:\n\n binfmt_misc sb -\u003e inode -\u003e entry -\u003e interp_file -\u003e vfsmount -\u003e binfmt_misc sb\n\nTL;DR the file is never closed. Once the mount namespace is gone there\nis nothing left to unregister through either.\n\nThere are two ways to trigger this bug:\n\n- Point the interpreter at the instance itself. Its files are regular\n files owned by the mounter and both bm_get_inode() and\n simple_fill_super() leave i_op at empty_iops. So notify_change() falls\n back to simple_setattr() and chmod +x works. We never set SB_I_NOEXEC\n and so open_exec() accepts it.\n\n- Use the instance as an overlayfs lower layer. The overlay superblock\n holds a clone_private_mount() of every layer until it is destroyed and\n that clone is in no namespace. So umount_tree() never reaches it.\n\nThat\u0027s a DoS. And it isn\u0027t only the superblock that leaks. It pins the\nuser namespace it was mounted in, so every iteration permanently eats\none of the caller\u0027s user namespace charges.\n\nSo let\u0027s just do the sane thing. SB_I_NOEXEC makes open_exec() fail on\nthe instance\u0027s own files and s_stack_depth makes overlayfs reject the\nlayer before it ever takes a clone. That also covers the ecryptfs and\nfuse passthrough variants. What \u0027F\u0027 promises is unchanged.\n\nThe stable tag is narrower than the Fixes tags on purpose. Before\nsandboxed mounts this needed global root against the single instance\neveryone shares, and the change doesn\u0027t apply to those trees anyway.\n\nNote that SB_I_NODEV is implicitly raised for userns mounts but raise it\nexplicitly here as well."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T06:52:35.407Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1cc2decee06acc939337304e9b3f737fd5d8c4bd"
},
{
"url": "https://git.kernel.org/stable/c/4dad8ca637d44d5a6d5c23fa80c9e2e455198c2b"
},
{
"url": "https://git.kernel.org/stable/c/098e92fe0f1bde5af99c8cf504f13f01ef139f85"
},
{
"url": "https://git.kernel.org/stable/c/79055d82772b9584f259b747fe40ff56a076678d"
}
],
"title": "binfmt_misc: don\u0027t let an \u0027F\u0027 entry pin its own instance",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74484",
"datePublished": "2026-08-15T12:27:16.346Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-19T06:52:35.407Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80841 (GCVE-0-2026-80841)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/packet: defer vmalloc TX_RING free until skbs finish
AF_PACKET TX_RING skbs keep a raw pointer to their ring frame. The skb
page references preserve page-backed ring blocks after pg_vec is freed,
but they do not preserve a vmalloc mapping.
tpacket_destruct_skb() currently drops the pending reference before
writing the timestamp and TP_STATUS_AVAILABLE to the frame. Move the
decrement after those stores. The smp_wmb() in __packet_set_status()
orders the frame stores before the decrement.
Also recheck pending TX frames under pg_vec_lock before non-closing
ring replacement, so a racing send cannot add a pending skb between
the initial check and the ring swap.
Ring allocation can produce a mixture of page-backed and vmalloc-backed
blocks. Allocate deferred-work storage during TX ring setup when the
first vmalloc-backed block is encountered, and keep its pointer in the
pg_vec allocation header. If allocation fails, return -ENOMEM from ring
setup. On socket close, a non-NULL pointer identifies a vmalloc-backed
vector without a scan. If TX skbs remain, defer the whole vector to
system_long_wq.
After pg_vec is detached, a late destructor can skip the pending
decrement. Use socket write-memory accounting as the deferred lifetime
gate instead: an skb remains charged through its final sock_wfree(),
after all ring-frame accesses. The delayed work retains a socket
reference and reschedules itself until no TX skbs remain.
Move pending_refcnt release to packet_sock_destruct() so late skb
destructors and deferred cleanup can safely use it after
packet_release(). Page-backed teardown remains synchronous, and no lock
is added to the TX completion hot path.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b013840810c221f2b0cf641d01531526052dc1fb Version: b013840810c221f2b0cf641d01531526052dc1fb Version: b013840810c221f2b0cf641d01531526052dc1fb Version: b013840810c221f2b0cf641d01531526052dc1fb Version: b013840810c221f2b0cf641d01531526052dc1fb Version: b013840810c221f2b0cf641d01531526052dc1fb |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "debf9f50140b3df3949ebcb97d4450f8993fe32d",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
},
{
"lessThan": "4ce6e2d2e38055b2012bd5fdb0c8a8183c8a1b0c",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
},
{
"lessThan": "ed25ed29034ddc3dbe451ccbaa58ab9932f99d8b",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
},
{
"lessThan": "0189dce07db2dc059ae0570e06758ec4233c6e11",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
},
{
"lessThan": "550d00aa58193fb649a09a9c9e338c685adad784",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
},
{
"lessThan": "992cc9f94ca924089a506ba9b327caa9af797529",
"status": "affected",
"version": "b013840810c221f2b0cf641d01531526052dc1fb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/packet: defer vmalloc TX_RING free until skbs finish\n\nAF_PACKET TX_RING skbs keep a raw pointer to their ring frame. The skb\npage references preserve page-backed ring blocks after pg_vec is freed,\nbut they do not preserve a vmalloc mapping.\n\ntpacket_destruct_skb() currently drops the pending reference before\nwriting the timestamp and TP_STATUS_AVAILABLE to the frame. Move the\ndecrement after those stores. The smp_wmb() in __packet_set_status()\norders the frame stores before the decrement.\n\nAlso recheck pending TX frames under pg_vec_lock before non-closing\nring replacement, so a racing send cannot add a pending skb between\nthe initial check and the ring swap.\n\nRing allocation can produce a mixture of page-backed and vmalloc-backed\nblocks. Allocate deferred-work storage during TX ring setup when the\nfirst vmalloc-backed block is encountered, and keep its pointer in the\npg_vec allocation header. If allocation fails, return -ENOMEM from ring\nsetup. On socket close, a non-NULL pointer identifies a vmalloc-backed\nvector without a scan. If TX skbs remain, defer the whole vector to\nsystem_long_wq.\n\nAfter pg_vec is detached, a late destructor can skip the pending\ndecrement. Use socket write-memory accounting as the deferred lifetime\ngate instead: an skb remains charged through its final sock_wfree(),\nafter all ring-frame accesses. The delayed work retains a socket\nreference and reschedules itself until no TX skbs remain.\n\nMove pending_refcnt release to packet_sock_destruct() so late skb\ndestructors and deferred cleanup can safely use it after\npacket_release(). Page-backed teardown remains synchronous, and no lock\nis added to the TX completion hot path."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:34.431Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/debf9f50140b3df3949ebcb97d4450f8993fe32d"
},
{
"url": "https://git.kernel.org/stable/c/4ce6e2d2e38055b2012bd5fdb0c8a8183c8a1b0c"
},
{
"url": "https://git.kernel.org/stable/c/ed25ed29034ddc3dbe451ccbaa58ab9932f99d8b"
},
{
"url": "https://git.kernel.org/stable/c/0189dce07db2dc059ae0570e06758ec4233c6e11"
},
{
"url": "https://git.kernel.org/stable/c/550d00aa58193fb649a09a9c9e338c685adad784"
},
{
"url": "https://git.kernel.org/stable/c/992cc9f94ca924089a506ba9b327caa9af797529"
}
],
"title": "net/packet: defer vmalloc TX_RING free until skbs finish",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80841",
"datePublished": "2026-09-04T15:54:51.459Z",
"dateReserved": "2026-08-26T14:34:25.796Z",
"dateUpdated": "2026-10-19T08:44:34.431Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98030 (GCVE-0-2026-98030)
Vulnerability from cvelistv5
Published
2026-09-25 10:23
Modified
2026-10-19 09:12
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: dsa: bcm_sf2: bound the CFP rule dump by the caller's buffer size
bcm_sf2_cfp_rule_get_all() walks the whole cfp.unique bitmap into
rule_locs[] without consulting nfc->rule_cnt, which is how many entries
the caller had room for. ETHTOOL_GRXCLSRLALL requires no CAP_NET_ADMIN
and the ioctl sizes the buffer from the rule_cnt userspace passes in, so
once an admin has installed CFP rules any user can ask for fewer slots
than there are rules and run off the end of the allocation. A rule_cnt
of 0 leaves the buffer pointer NULL and the walk dereferences it.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b Version: 7318166cacad158b46240f66250d7cc5a481653b |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/dsa/bcm_sf2_cfp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ca49c526291d7cd3a5cb49b0edd7f50a5ae7176e",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "8e41ce02589c92356bfd8ef62f6ceff840546e1a",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "f2cf4ef2d94fc15fd2e21c131fc1ab3f76125bf4",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "f5e93162b3dd195bfda815e8f7a39aaf1d45437b",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "f1a2869b3629c0e8394b77b38cb9f19a018c653c",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "fd1a78c16b1f6978c09cf048e15f349732e4c707",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "b231b6d8516d3fe0d4bba549908e08d26a4531a5",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
},
{
"lessThan": "cdb719f4b8596d9ccee2d56d204c2c4dce982f46",
"status": "affected",
"version": "7318166cacad158b46240f66250d7cc5a481653b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/dsa/bcm_sf2_cfp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: dsa: bcm_sf2: bound the CFP rule dump by the caller\u0027s buffer size\n\nbcm_sf2_cfp_rule_get_all() walks the whole cfp.unique bitmap into\nrule_locs[] without consulting nfc-\u003erule_cnt, which is how many entries\nthe caller had room for. ETHTOOL_GRXCLSRLALL requires no CAP_NET_ADMIN\nand the ioctl sizes the buffer from the rule_cnt userspace passes in, so\nonce an admin has installed CFP rules any user can ask for fewer slots\nthan there are rules and run off the end of the allocation. A rule_cnt\nof 0 leaves the buffer pointer NULL and the walk dereferences it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The trigger is the local SIOCETHTOOL ioctl with ETHTOOL_GRXCLSRLALL on a bcm_sf2 DSA user port. The path is ethtool_get_rxnfc() -\u003e dsa_user_get_rxnfc() -\u003e bcm_sf2_get_rxnfc() -\u003e bcm_sf2_cfp_rule_get_all(). The bad rule_cnt comes from userspace, and no packet from a remote peer is involved.\nAC:H - The overflow needs CFP rules installed beyond the default at bit 0 of cfp.unique, since the walk starts at index 1. Installing them via ETHTOOL_SRXCLSRLINS needs CAP_NET_ADMIN over the switch\u0027s netns, so the unprivileged attacker cannot create the rule state. Once rules exist, the bug fires every time.\nPR:L - ETHTOOL_GRXCLSRLALL is on ethtool\u0027s no-capability list in net/ethtool/ioctl.c, so any unprivileged local user who can open a socket in the netns holding the DSA port can send the dump request.\nUI:N - The attacker issues the ioctl themselves and picks rule_cnt. No other user has to act.\nS:U - Both the memory corruption and the leak stay inside the kernel\u0027s own security authority, with no VM or IOMMU boundary crossed.\nC:H - After the walk, nfc-\u003erule_cnt holds the real rule count, which can be larger than the buffer. ethtool_rxnfc_copy_to_user() then copies rule_cnt*4 bytes from the undersized kcalloc buffer to userspace. That leaks up to about 1 KB of adjacent heap from a slab cache the attacker chooses.\nI:H - bcm_sf2_cfp_rule_get_all() writes u32 rule indices past a kcalloc(rule_cnt) buffer sized by the user. This is a heap out-of-bounds write into neighbouring objects in a slab cache the attacker picks, and it can corrupt kernel data structures.\nA:H - With rule_cnt=0 the rule_locs buffer stays NULL, so the walk writes through a NULL pointer and the kernel oopses. Any user can repeat this at will once rules are installed. Heap corruption from the out-of-bounds write can also crash the system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:35.325Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ca49c526291d7cd3a5cb49b0edd7f50a5ae7176e"
},
{
"url": "https://git.kernel.org/stable/c/8e41ce02589c92356bfd8ef62f6ceff840546e1a"
},
{
"url": "https://git.kernel.org/stable/c/f2cf4ef2d94fc15fd2e21c131fc1ab3f76125bf4"
},
{
"url": "https://git.kernel.org/stable/c/f5e93162b3dd195bfda815e8f7a39aaf1d45437b"
},
{
"url": "https://git.kernel.org/stable/c/f1a2869b3629c0e8394b77b38cb9f19a018c653c"
},
{
"url": "https://git.kernel.org/stable/c/fd1a78c16b1f6978c09cf048e15f349732e4c707"
},
{
"url": "https://git.kernel.org/stable/c/b231b6d8516d3fe0d4bba549908e08d26a4531a5"
},
{
"url": "https://git.kernel.org/stable/c/cdb719f4b8596d9ccee2d56d204c2c4dce982f46"
}
],
"title": "net: dsa: bcm_sf2: bound the CFP rule dump by the caller\u0027s buffer size",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98030",
"datePublished": "2026-09-25T10:23:46.959Z",
"dateReserved": "2026-09-25T10:19:56.070Z",
"dateUpdated": "2026-10-19T09:12:35.325Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89451 (GCVE-0-2026-89451)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/sva: Set handle->dev before the SVA handle is visible
iommu_attach_device_pasid() installs the new SVA attach handle in the
group PASID lookup before iommu_sva_bind_device() returns. A concurrent
bind can therefore find and reuse the same handle after iommu_sva_lock is
dropped.
handle->dev was initialized after dropping iommu_sva_lock. This leaves a
window where a racing bind can return a handle whose dev pointer is still
NULL. A subsequent iommu_sva_unbind_device() can then dereference it via
handle->dev->iommu_group.
Initialize handle->dev before releasing iommu_sva_lock so any visible SVA
handle is fully initialized.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/iommu-sva.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c4c71368bc5c5b3840590d39b4cfa12d733cadf4",
"status": "affected",
"version": "be51b1d6bbff48c7d1943a8ff1e5a55777807f6e",
"versionType": "git"
},
{
"lessThan": "bcffb1c75da8fc9d51168ff9f09d471c26507912",
"status": "affected",
"version": "be51b1d6bbff48c7d1943a8ff1e5a55777807f6e",
"versionType": "git"
},
{
"lessThan": "968e9a1f71140c86dc4092f6b361e997923f3813",
"status": "affected",
"version": "be51b1d6bbff48c7d1943a8ff1e5a55777807f6e",
"versionType": "git"
},
{
"lessThan": "37a96a30617a4c96f048a5874c00509bc4fe4d85",
"status": "affected",
"version": "be51b1d6bbff48c7d1943a8ff1e5a55777807f6e",
"versionType": "git"
},
{
"lessThan": "530f8f9c3546cb3ebee1b135375aaee08a073ebb",
"status": "affected",
"version": "be51b1d6bbff48c7d1943a8ff1e5a55777807f6e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/iommu-sva.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.2"
},
{
"lessThan": "6.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/sva: Set handle-\u003edev before the SVA handle is visible\n\niommu_attach_device_pasid() installs the new SVA attach handle in the\ngroup PASID lookup before iommu_sva_bind_device() returns. A concurrent\nbind can therefore find and reuse the same handle after iommu_sva_lock is\ndropped.\n\nhandle-\u003edev was initialized after dropping iommu_sva_lock. This leaves a\nwindow where a racing bind can return a handle whose dev pointer is still\nNULL. A subsequent iommu_sva_unbind_device() can then dereference it via\nhandle-\u003edev-\u003eiommu_group.\n\nInitialize handle-\u003edev before releasing iommu_sva_lock so any visible SVA\nhandle is fully initialized."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:29.668Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c4c71368bc5c5b3840590d39b4cfa12d733cadf4"
},
{
"url": "https://git.kernel.org/stable/c/bcffb1c75da8fc9d51168ff9f09d471c26507912"
},
{
"url": "https://git.kernel.org/stable/c/968e9a1f71140c86dc4092f6b361e997923f3813"
},
{
"url": "https://git.kernel.org/stable/c/37a96a30617a4c96f048a5874c00509bc4fe4d85"
},
{
"url": "https://git.kernel.org/stable/c/530f8f9c3546cb3ebee1b135375aaee08a073ebb"
}
],
"title": "iommu/sva: Set handle-\u003edev before the SVA handle is visible",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89451",
"datePublished": "2026-09-11T19:43:16.730Z",
"dateReserved": "2026-09-11T19:38:34.706Z",
"dateUpdated": "2026-10-21T12:47:29.668Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72051 (GCVE-0-2026-72051)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ip6_tunnel: require CAP_NET_ADMIN in the device netns for changelink
ip6_tnl_changelink() operates on at most two netns, dev_net(dev) and the
tunnel link netns t->net. They differ once the device is created in or
moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Gate ip6_tnl_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 Version: 0bd8762824e73a3cce7b7560a97463301764b616 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72051",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:49.406675Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:24.769Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_tunnel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d53ee7daabe733deb81f51d2cc90188f8ad59a1",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "82e53e7281c71e174f9f5877c566a623c637b406",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "5252db8fb604321133138c7069d6fc3fcd89cdee",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "2636d061bc237a2446a146e42dcc6563acfa7432",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "7f68f7928484f463a5bc0d50e6fdd8d16f55a5aa",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "234cd54fc500f69db43e37de38603da617fbbeea",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "d4bcc202a3530c856e1cb183384bc9cc8fddab22",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
},
{
"lessThan": "2496fa0b7d180b3ad356b514e7ff93bb14e6140a",
"status": "affected",
"version": "0bd8762824e73a3cce7b7560a97463301764b616",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_tunnel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.12"
},
{
"lessThan": "3.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ip6_tunnel: require CAP_NET_ADMIN in the device netns for changelink\n\nip6_tnl_changelink() operates on at most two netns, dev_net(dev) and the\ntunnel link netns t-\u003enet. They differ once the device is created in or\nmoved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in t-\u003enet can rewrite a tunnel that\nlives in t-\u003enet.\n\nGate ip6_tnl_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires RTM_NEWLINK changelink over a local rtnetlink socket; ip6_tnl_changelink is only reachable from rtnl configuration, not from received IPv6 packets processed by ip6_tnl_rcv.\nAC:L - Once an ip6tnl device exists with t-\u003enet differing from dev_net(dev) (IFLA_LINK_NETNSID newlink or IFLA_NET_NS_FD migration), a single deterministic netlink changelink bypasses the missing check with no race or memory-layout dependency.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN only in dev_net(dev), obtainable by an unprivileged local user via unshare --user --map-root-user --net; no CAP_NET_ADMIN in the sticky link netns t-\u003enet is required.\nUI:N - The attack is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - Authorization is checked against dev_net(dev) while ip6_tnl_changelink mutates tunnel state in t-\u003enet via ip6_tnl_update, crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host\u0027s network namespace.\nC:H - An attacker can rewrite IFLA_IPTUN_LOCAL/REMOTE, link, fwmark, and encap parameters to redirect IPv6/IPv4-over-IPv6 tunnel traffic to an attacker-controlled endpoint and read all tunneled payloads in the victim link netns.\nI:H - Unauthorized changelink updates live tunnel endpoints, underlay link, encap ports, and flowinfo/fwmark in t-\u003enet, enabling redirection and injection of traffic carried over the ip6tnl tunnel.\nA:H - Rewriting tunnel remote/local addresses, underlay device, or encap parameters breaks cross-netns IPv6 tunnel connectivity, causing sustained loss of service for every workload depending on the affected ip6tnl tunnel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:34.252Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2d53ee7daabe733deb81f51d2cc90188f8ad59a1"
},
{
"url": "https://git.kernel.org/stable/c/82e53e7281c71e174f9f5877c566a623c637b406"
},
{
"url": "https://git.kernel.org/stable/c/5252db8fb604321133138c7069d6fc3fcd89cdee"
},
{
"url": "https://git.kernel.org/stable/c/2636d061bc237a2446a146e42dcc6563acfa7432"
},
{
"url": "https://git.kernel.org/stable/c/7f68f7928484f463a5bc0d50e6fdd8d16f55a5aa"
},
{
"url": "https://git.kernel.org/stable/c/234cd54fc500f69db43e37de38603da617fbbeea"
},
{
"url": "https://git.kernel.org/stable/c/d4bcc202a3530c856e1cb183384bc9cc8fddab22"
},
{
"url": "https://git.kernel.org/stable/c/2496fa0b7d180b3ad356b514e7ff93bb14e6140a"
}
],
"title": "net: ip6_tunnel: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72051",
"datePublished": "2026-08-15T05:52:08.445Z",
"dateReserved": "2026-08-09T03:40:39.902Z",
"dateUpdated": "2026-10-19T21:19:24.769Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68452 (GCVE-0-2026-68452)
Vulnerability from cvelistv5
Published
2026-08-13 13:59
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Validate length for CCA AES cipher key requests
cca_cipher2protkey() derives the copy length for the CPRB parameter
block directly from the length field in the key token. Reject the
request early if the token length exceeds the available space in the
parameter block.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68452",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:15.916334Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-120",
"description": "CWE-120 Buffer Copy without Checking Size of Input (\u0027Classic Buffer Overflow\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:11.097Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "be037204e4f595e4bd2159acda146677a1dc6342",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "4e500ecb6704d879f9c2417c2ed6faba595015ca",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "7f9e5a3dbb14a9b321a1dfa30390402c673f82dc",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "406b317ea2b501f6f5eca1264293c9399a73a778",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "4fc46deceda076d429ef3fab2ccf8d96629ebd23",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "ad93a1f1a45652478c0cf4eb029114e03af57f3b",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "3859f630b674801a00bca39bc451f52288591f65",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "06afe425d5283b9764303de47f554da5a808ce8a",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: Validate length for CCA AES cipher key requests\n\ncca_cipher2protkey() derives the copy length for the CPRB parameter\nblock directly from the length field in the key token. Reject the\nrequest early if the token length exceeds the available space in the\nparameter block."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached through an ioctl (PKEY_KBLOB2PROTK2/3) on the /dev/pkey character device, requiring local access to the s390 system; there is no remote or adjacent-network path to cca_cipher2protkey().\nAC:L - The overflow is fully deterministic: the attacker sets the token\u0027s len field to any value up to the 8192-byte ioctl limit and the memcpy into the 512-byte parameter block happens unconditionally, before any crypto card interaction, with no race or unknown state involved.\nPR:L - The pkey misc device is registered with .mode = 0666 and neither pkey_api.c, pkey_base.c nor pkey_cca.c performs any capable()/CAP_* check, so any unprivileged local user can open it and issue the key-to-protkey ioctl.\nUI:N - The attacker triggers the overflow entirely on its own by issuing the ioctl with a crafted CCA AES cipher key token; no victim action or cooperation is needed.\nS:U - The heap corruption occurs in kernel slab memory managed by the same kernel security authority as the calling process; no VM, IOMMU or sandbox boundary is crossed.\nC:H - The controlled slab overflow (up to ~7.6 KB past a kmalloc-2k object) lets the attacker overwrite adjacent kernel objects, and the corrupted CPRB/reply buffer is subsequently parsed and partially copied back to userspace, giving a path to disclosing arbitrary kernel memory.\nI:H - memcpy() writes attacker-chosen token bytes far beyond the 512-byte parameter block, an out-of-bounds heap write with attacker-controlled length and contents, which is a classic primitive for corrupting neighbouring slab objects and hijacking control flow.\nA:H - Overwriting several kilobytes of adjacent slab memory reliably corrupts unrelated kernel objects and slab metadata, causing oopses or a panic; the ioctl can be repeated at will by any local user."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:35:50.661Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/be037204e4f595e4bd2159acda146677a1dc6342"
},
{
"url": "https://git.kernel.org/stable/c/4e500ecb6704d879f9c2417c2ed6faba595015ca"
},
{
"url": "https://git.kernel.org/stable/c/7f9e5a3dbb14a9b321a1dfa30390402c673f82dc"
},
{
"url": "https://git.kernel.org/stable/c/406b317ea2b501f6f5eca1264293c9399a73a778"
},
{
"url": "https://git.kernel.org/stable/c/4fc46deceda076d429ef3fab2ccf8d96629ebd23"
},
{
"url": "https://git.kernel.org/stable/c/ad93a1f1a45652478c0cf4eb029114e03af57f3b"
},
{
"url": "https://git.kernel.org/stable/c/3859f630b674801a00bca39bc451f52288591f65"
},
{
"url": "https://git.kernel.org/stable/c/06afe425d5283b9764303de47f554da5a808ce8a"
}
],
"title": "s390/zcrypt: Validate length for CCA AES cipher key requests",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68452",
"datePublished": "2026-08-13T13:59:54.840Z",
"dateReserved": "2026-07-30T09:28:09.395Z",
"dateUpdated": "2026-10-19T21:09:11.097Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72421 (GCVE-0-2026-72421)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: fib: Don't ignore error route in local/main tables.
When CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,
fib_lookup() performs route lookup directly on two tables.
Since the first lookup does not properly bail out, the result
of an error route in the merged local/main table could be
overwritten by another route in the default table:
# unshare -n
# ip link set lo up
# ip route add 192.168.0.0/24 dev lo table 253
# ip route add unreachable 192.168.0.0/24
# ip route get 192.168.0.1
192.168.0.1 dev lo table default uid 0
cache <local>
Once a random rule is added, the error route is respected:
# ip rule add table 0
# ip rule del table 0
# ip route get 192.168.0.1
RTNETLINK answers: No route to host
Let's fix the inconsistent behaviour.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72421",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:34.990573Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:23.102Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a29e95fbc51e8a1b932773fd0e259b2080881443",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "5ae18d87a45698e8244d0fcba64c658c35a7dd3d",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "9127589aabdee588278e8d0d0bd3709a760a92c8",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "49eaf1403201357762d745a35882fb734107d763",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "fd25996f57a95d56bc568c89b4921edcf334b7d8",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "828fad4fd418bcdb9f5d66fec0d184c52a85ec31",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "a668fa160247d7bbe921548cb845f607b8b9305f",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "b72f0db64205d9ce462038ba995d5d31eff32dc1",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: fib: Don\u0027t ignore error route in local/main tables.\n\nWhen CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,\nfib_lookup() performs route lookup directly on two tables.\n\nSince the first lookup does not properly bail out, the result\nof an error route in the merged local/main table could be\noverwritten by another route in the default table:\n\n # unshare -n\n # ip link set lo up\n # ip route add 192.168.0.0/24 dev lo table 253\n # ip route add unreachable 192.168.0.0/24\n # ip route get 192.168.0.1\n 192.168.0.1 dev lo table default uid 0\n cache \u003clocal\u003e\n\nOnce a random rule is added, the error route is respected:\n\n # ip rule add table 0\n # ip rule del table 0\n # ip route get 192.168.0.1\n RTNETLINK answers: No route to host\n\nLet\u0027s fix the inconsistent behaviour."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - fib_lookup() is on the IPv4 receive and transmit datapaths (ip_route_input_rcu, ip_route_output_key, forwarding) reached by remote packets on internet-facing routers, gateways, cloud hosts, and container nodes without any local syscall.\nAC:L - Once main/local holds an error route and default has an overlapping prefix (reproduced in the fix commit with basic ip-route commands), any matching packet or socket lookup deterministically hits the bypass; no race or attacker-independent memory layout is required.\nPR:N - Overlapping table layout is a deployment/CAP_NET_ADMIN prerequisite, but exploitation only requires sending traffic or using sockets; the remote attacker needs no credentials or privileges on the victim once the vulnerable routing state exists.\nUI:N - Route resolution runs automatically in the kernel networking stack during normal packet forwarding and connection setup; no victim mount, click, or file open is needed beyond ordinary network use.\nS:C - Bypassing unreachable/prohibit/blackhole routes can defeat network-namespace/pod egress blackholes and segmentation boundaries on multi-tenant hosts and routers, allowing access outside the intended isolated security scope.\nC:H - Ignored error routes let traffic reach destinations deliberately isolated (internal networks, metadata endpoints, sinkholed ranges), exposing data that routing policy was designed to keep inaccessible.\nI:H - Packets that should be dropped or rejected are instead forwarded via the default-table route, enabling injection of traffic into networks marked unreachable, prohibited, or blackhole.\nA:N - The defect is incorrect route selection only; it does not corrupt memory, panic the kernel, deadlock, or inherently exhaust resources, so availability impact is none."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:01.658Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a29e95fbc51e8a1b932773fd0e259b2080881443"
},
{
"url": "https://git.kernel.org/stable/c/5ae18d87a45698e8244d0fcba64c658c35a7dd3d"
},
{
"url": "https://git.kernel.org/stable/c/9127589aabdee588278e8d0d0bd3709a760a92c8"
},
{
"url": "https://git.kernel.org/stable/c/49eaf1403201357762d745a35882fb734107d763"
},
{
"url": "https://git.kernel.org/stable/c/fd25996f57a95d56bc568c89b4921edcf334b7d8"
},
{
"url": "https://git.kernel.org/stable/c/828fad4fd418bcdb9f5d66fec0d184c52a85ec31"
},
{
"url": "https://git.kernel.org/stable/c/a668fa160247d7bbe921548cb845f607b8b9305f"
},
{
"url": "https://git.kernel.org/stable/c/b72f0db64205d9ce462038ba995d5d31eff32dc1"
}
],
"title": "ipv4: fib: Don\u0027t ignore error route in local/main tables.",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72421",
"datePublished": "2026-08-15T05:56:40.466Z",
"dateReserved": "2026-08-09T03:40:39.927Z",
"dateUpdated": "2026-10-16T18:55:23.102Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97544 (GCVE-0-2026-97544)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: don't leak dqacct if rhashtable insertion fails
LOLLM observes that xqcheck_mod_live_ino_dqtrx doesn't free the newly
allocated dqa object if rhashtable insertion fails. Fix this leak.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/quotacheck.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9036e078bd51683e862afd5ed25ecba2f780b165",
"status": "affected",
"version": "200491875ce144fdc49827387fff2f604b73c0a9",
"versionType": "git"
},
{
"lessThan": "7791970a76a3e23f6f51451dbb1e48bd57f94f93",
"status": "affected",
"version": "200491875ce144fdc49827387fff2f604b73c0a9",
"versionType": "git"
},
{
"lessThan": "788c3a46ef9d79f875312b95cffe0961a13167a7",
"status": "affected",
"version": "200491875ce144fdc49827387fff2f604b73c0a9",
"versionType": "git"
},
{
"lessThan": "2eac8d01d2c776fc26b0ac74aebdf91bc4490891",
"status": "affected",
"version": "200491875ce144fdc49827387fff2f604b73c0a9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/quotacheck.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: don\u0027t leak dqacct if rhashtable insertion fails\n\nLOLLM observes that xqcheck_mod_live_ino_dqtrx doesn\u0027t free the newly\nallocated dqa object if rhashtable insertion fails. Fix this leak."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:06.381Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9036e078bd51683e862afd5ed25ecba2f780b165"
},
{
"url": "https://git.kernel.org/stable/c/7791970a76a3e23f6f51451dbb1e48bd57f94f93"
},
{
"url": "https://git.kernel.org/stable/c/788c3a46ef9d79f875312b95cffe0961a13167a7"
},
{
"url": "https://git.kernel.org/stable/c/2eac8d01d2c776fc26b0ac74aebdf91bc4490891"
}
],
"title": "xfs: don\u0027t leak dqacct if rhashtable insertion fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97544",
"datePublished": "2026-09-25T10:21:39.839Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-19T09:09:06.381Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74444 (GCVE-0-2026-74444)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: validate DRAW_PRIMITIVES header size before division
vmw_cmd_draw() computes
maxnum = (header->size - sizeof(cmd->body)) / sizeof(*decl);
where header->size is u32 and is taken straight from the user-supplied
command stream. When header->size is less than sizeof(cmd->body) the
unsigned subtraction wraps to nearly 4 GiB, producing a huge maxnum.
Any user-controlled cmd->body.numVertexDecls then passes the bound and
the loop dereferences decl[i] far past the end of the kernel command
bounce buffer, producing an out-of-bounds read of kernel memory.
Reject undersized headers up front.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 Version: 7a73ba7469cbea631050094fd14f73acebb97cf9 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74444",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:36.182833Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:45.890Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b89ca4bba820f79dde52af15ee139fe6e8bbc314",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "bef30317fcb4c838a37bceb2fc76256eb6b975c1",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "112c6ff29a56f3a22db4d5af869697aa07035ad6",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "2666cddf0dd218aa9bd1f99db688d1b532eac21a",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "fc0c02f510e41650df3479f96e257acf87d8a20a",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "dc0be7662b7b0ce28cb5eea864737793ed7b9e70",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "c77cf8edae2bd3a1599115301cc7c98d0c78e731",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
},
{
"lessThan": "85891d174707d8bddcec7a888fb4e1d17def34f3",
"status": "affected",
"version": "7a73ba7469cbea631050094fd14f73acebb97cf9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: validate DRAW_PRIMITIVES header size before division\n\nvmw_cmd_draw() computes\n\n\tmaxnum = (header-\u003esize - sizeof(cmd-\u003ebody)) / sizeof(*decl);\n\nwhere header-\u003esize is u32 and is taken straight from the user-supplied\ncommand stream. When header-\u003esize is less than sizeof(cmd-\u003ebody) the\nunsigned subtraction wraps to nearly 4 GiB, producing a huge maxnum.\nAny user-controlled cmd-\u003ebody.numVertexDecls then passes the bound and\nthe loop dereferences decl[i] far past the end of the kernel command\nbounce buffer, producing an out-of-bounds read of kernel memory.\n\nReject undersized headers up front."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through the local DRM_IOCTL_VMW_EXECBUF ioctl (vmw_execbuf_ioctl -\u003e vmw_execbuf_process -\u003e vmw_cmd_check_all -\u003e vmw_cmd_draw); it is not reachable from network, adjacent wireless, or physical buses.\nAC:L - An attacker fully controls the user command stream and can set header-\u003esize below sizeof(cmd-\u003ebody) to underflow maxnum and bypass numVertexDecls bounds; no races or victim-dependent timing are required.\nPR:L - VMW_EXECBUF is registered with DRM_RENDER_ALLOW, so any local process with access to the vmwgfx render node (/dev/dri/renderD*) and a user-created 3D context can submit the malicious DRAW_PRIMITIVES command without real root.\nUI:N - Exploitation requires only the attacker opening the render device and issuing crafted execbuf ioctls; no additional actions by another user or administrator are needed.\nS:U - Impact is confined to the guest kernel address space running vmwgfx (VMware SVGA virtual GPU); successful exploitation yields guest-kernel memory disclosure/corruption and privilege escalation, not a direct hypervisor/host escape.\nC:H - Unsigned underflow makes maxnum enormous, so the vertex-declaration loop dereferences decl[i] far beyond the vmalloc command bounce buffer and reads adjacent kernel heap memory (e.g., decl-\u003earray.surfaceId) into validation paths.\nI:H - Beyond disclosure, leaked/adjacent surfaceId values can satisfy vmw_user_resource_lookup_handle and vmw_resource_relocations_apply then writes resource IDs to offsets past the bounce buffer, giving an out-of-bounds kernel write primitive.\nA:H - Setting a large numVertexDecls after the bound bypass can walk far past the vmalloc allocation and fault on unmapped pages, and extensive heap corruption from relocation writes can also trigger kernel oops/panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:38.535Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b89ca4bba820f79dde52af15ee139fe6e8bbc314"
},
{
"url": "https://git.kernel.org/stable/c/bef30317fcb4c838a37bceb2fc76256eb6b975c1"
},
{
"url": "https://git.kernel.org/stable/c/112c6ff29a56f3a22db4d5af869697aa07035ad6"
},
{
"url": "https://git.kernel.org/stable/c/2666cddf0dd218aa9bd1f99db688d1b532eac21a"
},
{
"url": "https://git.kernel.org/stable/c/fc0c02f510e41650df3479f96e257acf87d8a20a"
},
{
"url": "https://git.kernel.org/stable/c/dc0be7662b7b0ce28cb5eea864737793ed7b9e70"
},
{
"url": "https://git.kernel.org/stable/c/c77cf8edae2bd3a1599115301cc7c98d0c78e731"
},
{
"url": "https://git.kernel.org/stable/c/85891d174707d8bddcec7a888fb4e1d17def34f3"
}
],
"title": "drm/vmwgfx: validate DRAW_PRIMITIVES header size before division",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74444",
"datePublished": "2026-08-15T12:26:51.443Z",
"dateReserved": "2026-08-15T05:44:03.898Z",
"dateUpdated": "2026-10-16T19:05:45.890Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74465 (GCVE-0-2026-74465)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: openvswitch: fix potential UAF on meter attach failure
While attaching a newly created meter attach_meter() function makes
the new meter visible to other CPUs but can still fail afterwards.
On failure, it detaches the meter back and returns an error.
However, this is an unexpected behavior for the ovs_meter_cmd_set()
that uses a plain kfree(meter) on attach failure without waiting for
RCU readers to stop using it, assuming it was never visible.
This is never a problem for ovs-vswitchd as it always creates meters
before creating any flows that use them. But the UAF can be triggered
with a custom application using uAPI:
BUG: KASAN: slab-use-after-free in ovs_meter_execute (net/openvswitch/meter.c:653)
Read of size 8 at addr ffff88810d152650 by task meter/2508
Call Trace:
ovs_meter_execute (net/openvswitch/meter.c:653)
do_execute_actions (net/openvswitch/actions.c:1407)
ovs_execute_actions (net/openvswitch/actions.c:1584)
ovs_packet_cmd_execute (net/openvswitch/datapath.c:703)
...
netlink_sendmsg (af_netlink.c:1900)
Allocated by task 2519:
__kasan_kmalloc (mm/kasan/common.c:398 mm/kasan/common.c:415)
ovs_meter_cmd_set (net/openvswitch/meter.c:422)
...
netlink_sendmsg (af_netlink.c:1900)
Freed by task 2519:
kfree (mm/slub.c:2705 mm/slub.c:6405 mm/slub.c:6720)
ovs_meter_cmd_set (net/openvswitch/meter.c:479)
...
netlink_sendmsg (af_netlink.c:1900)
Fix that by making sure attach_meter() doesn't make the meter visible
until all the checks are done and the function can't fail anymore.
This also makes sure the "hash" value is calculated after the potential
re-sizing of the table.
Reported by Trend Micro's Zero Day Initiative as ZDI-CAN-31642.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 Version: c7c4c44c9a95d87e50ced38f7480e779cb472174 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74465",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:07.565753Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:47.189Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/openvswitch/meter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "496f3013c6ff759249abcfb2da2361c1a3e2e66d",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "ddc0ef4217cc697c6ba1a295cc1ea42423ec68ac",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "b0de3b58dac3b02b528f72ee0397728aed11f993",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "0310d1fa7f9debd0d89629e9f14c7975a47eaa9a",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "4d03e5fa3fbb1df15258a1eb3d6963f0d65659b3",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "90623c9499627803ef3f04fa25a3199402d4fb95",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "431a295d93f76fbdb6a7cfce92a9e3dfee1e5d61",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
},
{
"lessThan": "a58a2b0ce354df531ebc71fc870058c2feb59f6b",
"status": "affected",
"version": "c7c4c44c9a95d87e50ced38f7480e779cb472174",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/openvswitch/meter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: openvswitch: fix potential UAF on meter attach failure\n\nWhile attaching a newly created meter attach_meter() function makes\nthe new meter visible to other CPUs but can still fail afterwards.\nOn failure, it detaches the meter back and returns an error.\n\nHowever, this is an unexpected behavior for the ovs_meter_cmd_set()\nthat uses a plain kfree(meter) on attach failure without waiting for\nRCU readers to stop using it, assuming it was never visible.\n\nThis is never a problem for ovs-vswitchd as it always creates meters\nbefore creating any flows that use them. But the UAF can be triggered\nwith a custom application using uAPI:\n\n BUG: KASAN: slab-use-after-free in ovs_meter_execute (net/openvswitch/meter.c:653)\n Read of size 8 at addr ffff88810d152650 by task meter/2508\n\n Call Trace:\n ovs_meter_execute (net/openvswitch/meter.c:653)\n do_execute_actions (net/openvswitch/actions.c:1407)\n ovs_execute_actions (net/openvswitch/actions.c:1584)\n ovs_packet_cmd_execute (net/openvswitch/datapath.c:703)\n ...\n netlink_sendmsg (af_netlink.c:1900)\n\n Allocated by task 2519:\n __kasan_kmalloc (mm/kasan/common.c:398 mm/kasan/common.c:415)\n ovs_meter_cmd_set (net/openvswitch/meter.c:422)\n ...\n netlink_sendmsg (af_netlink.c:1900)\n\n Freed by task 2519:\n kfree (mm/slub.c:2705 mm/slub.c:6405 mm/slub.c:6720)\n ovs_meter_cmd_set (net/openvswitch/meter.c:479)\n ...\n netlink_sendmsg (af_netlink.c:1900)\n\nFix that by making sure attach_meter() doesn\u0027t make the meter visible\nuntil all the checks are done and the function can\u0027t fail anymore.\n\nThis also makes sure the \"hash\" value is calculated after the potential\nre-sizing of the table.\n\nReported by Trend Micro\u0027s Zero Day Initiative as ZDI-CAN-31642."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is triggered when ovs_meter_cmd_set() fails attach_meter() and kfree()s the meter without an RCU grace period; that path is only reachable via the ovs_meter genetlink uAPI (netlink_sendmsg), not by remote packet reception alone.\nAC:L - The attacker controls both sides of the race by concurrently issuing OVS_METER_CMD_SET (forcing post-insert attach failure at max_meters or ENOMEM) and OVS_PACKET_CMD_EXECUTE or traffic on flows with OVS_ACTION_ATTR_METER while parallel_ops allows overlapping handlers.\nPR:L - OVS_METER_CMD_SET and OVS_PACKET_CMD_EXECUTE require CAP_NET_ADMIN checked with netlink_ns_capable() against the socket network namespace; unprivileged users can obtain CAP_NET_ADMIN in a user namespace (unshare -Urn) and the genl family is netnsok.\nUI:N - Exploitation requires only programmatic netlink API calls from the attacker; no victim user action such as opening files, mounting filesystems, or clicking prompts is needed.\nS:U - Successful exploitation compromises kernel memory and privileges on the same host/kernel security authority; it does not inherently cross a VM hypervisor, IOMMU, or hardware isolation boundary.\nC:H - This is a slab use-after-free: concurrent ovs_meter_execute() reads freed dp_meter fields (bands, stats, lock) via RCU lookup, enabling heap spraying and arbitrary kernel memory disclosure primitives.\nI:H - The UAF write path updates freed meter and band statistics, bucket counters, and takes a spinlock on freed memory, providing memory corruption primitives that can be developed into arbitrary kernel writes or code execution.\nA:H - KASAN reproduces slab-use-after-free in ovs_meter_execute during concurrent meter attach failure; UAF on the datapath fast path can cause kernel oops/panic or be abused for repeatable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:07.822Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/496f3013c6ff759249abcfb2da2361c1a3e2e66d"
},
{
"url": "https://git.kernel.org/stable/c/ddc0ef4217cc697c6ba1a295cc1ea42423ec68ac"
},
{
"url": "https://git.kernel.org/stable/c/b0de3b58dac3b02b528f72ee0397728aed11f993"
},
{
"url": "https://git.kernel.org/stable/c/0310d1fa7f9debd0d89629e9f14c7975a47eaa9a"
},
{
"url": "https://git.kernel.org/stable/c/4d03e5fa3fbb1df15258a1eb3d6963f0d65659b3"
},
{
"url": "https://git.kernel.org/stable/c/90623c9499627803ef3f04fa25a3199402d4fb95"
},
{
"url": "https://git.kernel.org/stable/c/431a295d93f76fbdb6a7cfce92a9e3dfee1e5d61"
},
{
"url": "https://git.kernel.org/stable/c/a58a2b0ce354df531ebc71fc870058c2feb59f6b"
}
],
"title": "net: openvswitch: fix potential UAF on meter attach failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74465",
"datePublished": "2026-08-15T12:27:04.403Z",
"dateReserved": "2026-08-15T05:44:03.901Z",
"dateUpdated": "2026-10-16T19:05:47.189Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43210 (GCVE-0-2026-43210)
Vulnerability from cvelistv5
Published
2026-05-06 11:28
Modified
2026-05-11 22:20
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: ring-buffer: Fix to check event length before using
Check the event length before adding it for accessing next index in
rb_read_data_buffer(). Since this function is used for validating
possibly broken ring buffers, the length of the event could be broken.
In that case, the new event (e + len) can point a wrong address.
To avoid invalid memory access at boot, check whether the length of
each event is in the possible range before using it.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b4700c089a10f89de3a5149d57f8a58306458982",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "5026010110a5ad2268d8c23e1e286ab7c736f7ac",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "9eb80e54494ef1efef8a64bec4ffa672c9cf411e",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "912b0ee248c529a4f45d1e7f568dc1adddbf2a4a",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.75",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.16",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: ring-buffer: Fix to check event length before using\n\nCheck the event length before adding it for accessing next index in\nrb_read_data_buffer(). Since this function is used for validating\npossibly broken ring buffers, the length of the event could be broken.\nIn that case, the new event (e + len) can point a wrong address.\nTo avoid invalid memory access at boot, check whether the length of\neach event is in the possible range before using it."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:20:07.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b4700c089a10f89de3a5149d57f8a58306458982"
},
{
"url": "https://git.kernel.org/stable/c/5026010110a5ad2268d8c23e1e286ab7c736f7ac"
},
{
"url": "https://git.kernel.org/stable/c/9eb80e54494ef1efef8a64bec4ffa672c9cf411e"
},
{
"url": "https://git.kernel.org/stable/c/912b0ee248c529a4f45d1e7f568dc1adddbf2a4a"
}
],
"title": "tracing: ring-buffer: Fix to check event length before using",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43210",
"datePublished": "2026-05-06T11:28:13.609Z",
"dateReserved": "2026-05-01T14:12:55.993Z",
"dateUpdated": "2026-05-11T22:20:07.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2025-38704 (GCVE-0-2025-38704)
Vulnerability from cvelistv5
Published
2025-09-04 15:32
Modified
2026-10-15 01:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
rcu/nocb: Fix possible invalid rdp's->nocb_cb_kthread pointer access
In the preparation stage of CPU online, if the corresponding
the rdp's->nocb_cb_kthread does not exist, will be created,
there is a situation where the rdp's rcuop kthreads creation fails,
and then de-offload this CPU's rdp, does not assign this CPU's
rdp->nocb_cb_kthread pointer, but this rdp's->nocb_gp_rdp and
rdp's->rdp_gp->nocb_gp_kthread is still valid.
This will cause the subsequent re-offload operation of this offline
CPU, which will pass the conditional check and the kthread_unpark()
will access invalid rdp's->nocb_cb_kthread pointer.
This commit therefore use rdp's->nocb_gp_kthread instead of
rdp_gp's->nocb_gp_kthread for safety check.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 Version: 3a5761dc025da47960755ac64d9fbf1c32e8cd80 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.5",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.5",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.5",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.5",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.5",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:07:42.799Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-082556.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/rcu/tree_nocb.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b097ae798298885695c339d390b48b4e39619fa7",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
},
{
"lessThan": "3da45ec1e485a1a5ad31fe9ddd467c7ee5ae4ef9",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
},
{
"lessThan": "cce3d027227c69e85896af9fbc6fa9af5c68f067",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
},
{
"lessThan": "1c951683a720b17c9ecaad1932bc95b29044611f",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
},
{
"lessThan": "9b5ec8e6b31755288a07b3abeeab8cd38e9d3c9d",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
},
{
"lessThan": "1bba3900ca18bdae28d1b9fa10f16a8f8cb2ada1",
"status": "affected",
"version": "3a5761dc025da47960755ac64d9fbf1c32e8cd80",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/rcu/tree_nocb.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.167",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.130",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.43",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.15.*",
"status": "unaffected",
"version": "6.15.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.16.*",
"status": "unaffected",
"version": "6.16.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.17",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.167",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.43",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.15.11",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.16.2",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.17",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrcu/nocb: Fix possible invalid rdp\u0027s-\u003enocb_cb_kthread pointer access\n\nIn the preparation stage of CPU online, if the corresponding\nthe rdp\u0027s-\u003enocb_cb_kthread does not exist, will be created,\nthere is a situation where the rdp\u0027s rcuop kthreads creation fails,\nand then de-offload this CPU\u0027s rdp, does not assign this CPU\u0027s\nrdp-\u003enocb_cb_kthread pointer, but this rdp\u0027s-\u003enocb_gp_rdp and\nrdp\u0027s-\u003erdp_gp-\u003enocb_gp_kthread is still valid.\n\nThis will cause the subsequent re-offload operation of this offline\nCPU, which will pass the conditional check and the kthread_unpark()\nwill access invalid rdp\u0027s-\u003enocb_cb_kthread pointer.\n\nThis commit therefore use rdp\u0027s-\u003enocb_gp_kthread instead of\nrdp_gp\u0027s-\u003enocb_gp_kthread for safety check."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T21:33:22.349Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b097ae798298885695c339d390b48b4e39619fa7"
},
{
"url": "https://git.kernel.org/stable/c/3da45ec1e485a1a5ad31fe9ddd467c7ee5ae4ef9"
},
{
"url": "https://git.kernel.org/stable/c/cce3d027227c69e85896af9fbc6fa9af5c68f067"
},
{
"url": "https://git.kernel.org/stable/c/1c951683a720b17c9ecaad1932bc95b29044611f"
},
{
"url": "https://git.kernel.org/stable/c/9b5ec8e6b31755288a07b3abeeab8cd38e9d3c9d"
},
{
"url": "https://git.kernel.org/stable/c/1bba3900ca18bdae28d1b9fa10f16a8f8cb2ada1"
}
],
"title": "rcu/nocb: Fix possible invalid rdp\u0027s-\u003enocb_cb_kthread pointer access",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2025-38704",
"datePublished": "2025-09-04T15:32:55.718Z",
"dateReserved": "2025-04-16T04:51:24.032Z",
"dateUpdated": "2026-10-15T01:07:42.799Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80603 (GCVE-0-2026-80603)
Vulnerability from cvelistv5
Published
2026-08-28 06:48
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read
parse_dcc() treats data_end as an inclusive end pointer, but its only
caller passes data_limit = ib_ptr + datalen, which points one past the
last valid byte.
The newline search loop iterates while tmp <= data_end, so when no
newline is present, *tmp is read at tmp == data_end, one byte beyond
the region filled by skb_header_pointer().
irc_buffer is kmalloc'd as MAX_SEARCH_SIZE + 1 bytes and datalen is
capped at MAX_SEARCH_SIZE, so the stray read does not fault. The byte
is uninitialized or stale; if it contains an ASCII digit, simple_strtoul
will consume it and produce a wrong DCC IP or port in the conntrack
expectation. The extra allocation byte is also a fragile guard: if the
cap or allocation size changes, this becomes a real out-of-bounds read.
Change the loop and its post-loop check to use strict less-than,
consistent with the caller's exclusive-end convention. Update the
function comment accordingly.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80603",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:18:30.666759Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:30.043Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_irc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "abb8c32b88ea3f46beb68c34fe9a3ac8ed664e7e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "437e0a3854b3a44ec15afa9ab88ec215adf3a2fd",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "910c33e4a8c046c3cc1fa5a465a4d41a1bb398f1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2b70f61f569bb29acb380e6f616a1bbdee15668f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2393f0bd7a467ad475598f3a5b9de27ca36e3037",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "aff589556ed772cb1c0c2d7b4d91ec45c0c39416",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "eeef3b81f449560653662df2dde6f6fe247c5365",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ef6400ca25a13fd6dedbe8ef4a1d0979bbbfe88a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_irc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read\n\nparse_dcc() treats data_end as an inclusive end pointer, but its only\ncaller passes data_limit = ib_ptr + datalen, which points one past the\nlast valid byte.\n\nThe newline search loop iterates while tmp \u003c= data_end, so when no\nnewline is present, *tmp is read at tmp == data_end, one byte beyond\nthe region filled by skb_header_pointer().\n\nirc_buffer is kmalloc\u0027d as MAX_SEARCH_SIZE + 1 bytes and datalen is\ncapped at MAX_SEARCH_SIZE, so the stray read does not fault. The byte\nis uninitialized or stale; if it contains an ASCII digit, simple_strtoul\nwill consume it and produce a wrong DCC IP or port in the conntrack\nexpectation. The extra allocation byte is also a fragile guard: if the\ncap or allocation size changes, this becomes a real out-of-bounds read.\n\nChange the loop and its post-loop check to use strict less-than,\nconsistent with the caller\u0027s exclusive-end convention. Update the\nfunction comment accordingly."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from attacker-controlled TCP payloads on IPv4 flows processed by nf_confirm() (POST_ROUTING/LOCAL_IN) when the IRC conntrack helper is attached, e.g. on an IRC-exposed host or NAT/firewall handling IRC/DCC through netfilter.\nAC:L - Once the IRC helper is active on a tracked flow, exploitation is deterministic: the attacker completes a TCP handshake, sends a crafted client-to-server PRIVMSG/CTCP DCC without a newline at the copy boundary, and can plant the stale byte via the shared global irc_buffer.\nPR:N - No local account or kernel capabilities are required; a remote peer only needs to send network traffic on a connection where the administrator has enabled the IRC helper. Helper configuration is deployment state, not attacker privilege.\nUI:N - No victim-side clicks, mounts, or other interactive actions are needed beyond normal network reachability; the attacker supplies the malicious IRC/DCC payload directly over the established TCP session.\nS:U - Impact is confined to the kernel/netfilter security domain of the affected host (conntrack parsing and expectations). It does not cross VM, IOMMU, or other separate security-authority boundaries.\nC:H - parse_dcc() performs a one-byte out-of-bounds read past skb_header_pointer()\u0027s copied region into stale kmalloc data in the shared irc_buffer, exposing uninitialized or prior-session bytes that can influence subsequent parsing.\nI:H - If the overread byte is an ASCII digit, simple_strtoul() misparses the DCC address/port and can install incorrect nf_conntrack expectations, altering NAT/firewall pinholes rather than only reading memory.\nA:N - The overread is bounded by the deliberately oversized kmalloc guard (MAX_SEARCH_SIZE+1) and the fix commit states the stray access does not fault; this issue does not directly cause kernel oops, panic, or hang."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:21:14.540Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/abb8c32b88ea3f46beb68c34fe9a3ac8ed664e7e"
},
{
"url": "https://git.kernel.org/stable/c/437e0a3854b3a44ec15afa9ab88ec215adf3a2fd"
},
{
"url": "https://git.kernel.org/stable/c/910c33e4a8c046c3cc1fa5a465a4d41a1bb398f1"
},
{
"url": "https://git.kernel.org/stable/c/2b70f61f569bb29acb380e6f616a1bbdee15668f"
},
{
"url": "https://git.kernel.org/stable/c/2393f0bd7a467ad475598f3a5b9de27ca36e3037"
},
{
"url": "https://git.kernel.org/stable/c/aff589556ed772cb1c0c2d7b4d91ec45c0c39416"
},
{
"url": "https://git.kernel.org/stable/c/eeef3b81f449560653662df2dde6f6fe247c5365"
},
{
"url": "https://git.kernel.org/stable/c/ef6400ca25a13fd6dedbe8ef4a1d0979bbbfe88a"
}
],
"title": "netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80603",
"datePublished": "2026-08-28T06:48:29.158Z",
"dateReserved": "2026-08-26T14:34:25.772Z",
"dateUpdated": "2026-10-16T19:26:30.043Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89453 (GCVE-0-2026-89453)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/amd: Put PCI device after handling PPR faults
iommu_call_iopf_notifier() looks up the requester with
pci_get_domain_bus_and_slot(), which returns a PCI device with its
reference count incremented.
Neither the successful iommu_report_device_fault() path nor the abort
path drops that reference, so every handled PPR request leaks a PCI
device reference.
This is the same ownership rule that was fixed for the old iommu_v2
ppr_notifier() path by commit 6cf0981c2233 ("iommu/amd: Fix pci device
refcount leak in ppr_notifier()"), but iommu_call_iopf_notifier() was
added later as a separate PPR/IOPF notifier path.
Drop the PCI device reference after handling the PPR entry.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/amd/ppr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1de4443f85e4405af00153cdf8ba73ff12a65036",
"status": "affected",
"version": "978d626b8f1a239acc635323d731c77eae54eb61",
"versionType": "git"
},
{
"lessThan": "cfc5c1b2caa176dfd40b873a6ff07b11da34cc3e",
"status": "affected",
"version": "978d626b8f1a239acc635323d731c77eae54eb61",
"versionType": "git"
},
{
"lessThan": "d1470e16c1977e6c94fadf6048deafaa4d150fec",
"status": "affected",
"version": "978d626b8f1a239acc635323d731c77eae54eb61",
"versionType": "git"
},
{
"lessThan": "af3b69b16383fbc8fe5f61b5b0150d2e41ede71f",
"status": "affected",
"version": "978d626b8f1a239acc635323d731c77eae54eb61",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/amd/ppr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/amd: Put PCI device after handling PPR faults\n\niommu_call_iopf_notifier() looks up the requester with\npci_get_domain_bus_and_slot(), which returns a PCI device with its\nreference count incremented.\n\nNeither the successful iommu_report_device_fault() path nor the abort\npath drops that reference, so every handled PPR request leaks a PCI\ndevice reference.\n\nThis is the same ownership rule that was fixed for the old iommu_v2\nppr_notifier() path by commit 6cf0981c2233 (\"iommu/amd: Fix pci device\nrefcount leak in ppr_notifier()\"), but iommu_call_iopf_notifier() was\nadded later as a separate PPR/IOPF notifier path.\n\nDrop the PCI device reference after handling the PPR entry."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:02.825Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1de4443f85e4405af00153cdf8ba73ff12a65036"
},
{
"url": "https://git.kernel.org/stable/c/cfc5c1b2caa176dfd40b873a6ff07b11da34cc3e"
},
{
"url": "https://git.kernel.org/stable/c/d1470e16c1977e6c94fadf6048deafaa4d150fec"
},
{
"url": "https://git.kernel.org/stable/c/af3b69b16383fbc8fe5f61b5b0150d2e41ede71f"
}
],
"title": "iommu/amd: Put PCI device after handling PPR faults",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89453",
"datePublished": "2026-09-11T19:43:18.068Z",
"dateReserved": "2026-09-11T19:38:34.706Z",
"dateUpdated": "2026-10-19T08:47:02.825Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97574 (GCVE-0-2026-97574)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Don't free the live ring's TPA state on queue restart failure
bnxt_queue_mem_alloc() shallow copies the live RX ring into the clone:
memcpy(clone, rxr, sizeof(*rxr));
the code currently clears pointers that the clone owns (such as
rx_agg_bmap), but rx_tpa and rx_tpa_idx_map are left pointing at memory
of the live ring that was cloned.
If an allocation failure happens later and the err_free_tpa_info label
is taken, the live ring's memory can be freed while still in use.
Fix this by initializing the clone's pointers to NULL to prevent live
ring state from being freed inadvertently.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e42287b4d38d653f7d4a47f6c29b0c01288bb050",
"status": "affected",
"version": "0997443906b96a051011f220a61e6dce4602ec54",
"versionType": "git"
},
{
"lessThan": "8ade95619cbfd1fc57f0f1a9a5ebdca2345a8d27",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "0596a7caa6fc283e142716739099c038d8714082",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "5ce7f36c334d723954855ac769ede2fe0e8f89c8",
"status": "affected",
"version": "bd649c5cc958169b8a8a3e77ea926d92d472b02a",
"versionType": "git"
},
{
"lessThan": "6.12.112",
"status": "affected",
"version": "6.12.20",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.12.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Don\u0027t free the live ring\u0027s TPA state on queue restart failure\n\nbnxt_queue_mem_alloc() shallow copies the live RX ring into the clone:\n\n memcpy(clone, rxr, sizeof(*rxr));\n\nthe code currently clears pointers that the clone owns (such as\nrx_agg_bmap), but rx_tpa and rx_tpa_idx_map are left pointing at memory\nof the live ring that was cloned.\n\nIf an allocation failure happens later and the err_free_tpa_info label\nis taken, the live ring\u0027s memory can be freed while still in use.\n\nFix this by initializing the clone\u0027s pointers to NULL to prevent live\nring state from being freed inadvertently."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:36.867Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e42287b4d38d653f7d4a47f6c29b0c01288bb050"
},
{
"url": "https://git.kernel.org/stable/c/8ade95619cbfd1fc57f0f1a9a5ebdca2345a8d27"
},
{
"url": "https://git.kernel.org/stable/c/0596a7caa6fc283e142716739099c038d8714082"
},
{
"url": "https://git.kernel.org/stable/c/5ce7f36c334d723954855ac769ede2fe0e8f89c8"
}
],
"title": "bnxt_en: Don\u0027t free the live ring\u0027s TPA state on queue restart failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97574",
"datePublished": "2026-09-25T10:21:58.062Z",
"dateReserved": "2026-09-24T16:01:01.156Z",
"dateUpdated": "2026-10-19T09:09:36.867Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74384 (GCVE-0-2026-74384)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-multipath: fix flex array size in struct nvme_ns_head
struct nvme_ns_head contains a flexible array member, current_path[],
which is indexed using the NUMA node ID:
head->current_path[numa_node_id()]
The structure is currently allocated as:
size = sizeof(struct nvme_ns_head) +
(num_possible_nodes() * sizeof(struct nvme_ns *));
head = kzalloc(size, GFP_KERNEL);
This allocation assumes that NUMA node IDs are sequential and densely
packed from 0 .. num_possible_nodes() - 1. While this assumption holds
on many systems, it is not always true on some architectures such as
powerpc.
On some powerpc systems, NUMA node IDs can be sparse. For example:
NUMA:
NUMA node(s): 6
NUMA node0 CPU(s): 80-159
NUMA node8 CPU(s): 0-79
NUMA node252 CPU(s):
NUMA node253 CPU(s):
NUMA node254 CPU(s):
NUMA node255 CPU(s):
That is, the possible/online NUMA node IDs are: 0, 8, 252, 253, 254, 255
In this case: num_possible_nodes() = 6
So memory is allocated for only 6 entries in current_path[]. However,
the array is later indexed using the actual NUMA node ID. As a result,
accesses such as:
head->current_path[8] or
head->current_path[252]
goes out of bounds, leading to the following KASAN splat:
==================================================================
BUG: KASAN: slab-out-of-bounds in nvme_mpath_revalidate_paths+0x22c/0x290 [nvme_core]
Write of size 8 at addr c00020003bda35b8 by task kworker/u641:2/1997
CPU: 1 UID: 0 PID: 1997 Comm: kworker/u641:2 Not tainted 7.1.0-rc5-dirty #14 PREEMPT(lazy)
Hardware name: 8335-GTH POWER9 0x4e1202 opal:skiboot-v6.5.3-35-g1851b2a06 PowerNV
Workqueue: async async_run_entry_fn
Call Trace:
[c000200037fa7510] [c0000000021c23d4] dump_stack_lvl+0x88/0xdc (unreliable)
[c000200037fa7540] [c0000000009fda90] print_report+0x22c/0x67c
[c000200037fa7630] [c0000000009fd508] kasan_report+0x108/0x220
[c000200037fa7740] [c0000000009fff48] __asan_store8+0xe8/0x120
[c000200037fa7760] [c008000018e76474] nvme_mpath_revalidate_paths+0x22c/0x290 [nvme_core]
[c000200037fa7800] [c008000018e6556c] nvme_update_ns_info+0x4a4/0x5e0 [nvme_core]
[c000200037fa7a50] [c008000018e66270] nvme_alloc_ns+0x6d8/0x1a70 [nvme_core]
[c000200037fa7c20] [c008000018e679fc] nvme_scan_ns+0x3f4/0x630 [nvme_core]
[c000200037fa7d10] [c00000000031f22c] async_run_entry_fn+0x9c/0x3a0
[c000200037fa7db0] [c0000000002fa544] process_one_work+0x414/0xa10
[c000200037fa7ec0] [c0000000002fbf00] worker_thread+0x320/0x640
[c000200037fa7f80] [c00000000030d0f8] kthread+0x278/0x290
[c000200037fa7fe0] [c00000000000ded8] start_kernel_thread+0x14/0x18
Allocated by task 1997 on cpu 1 at 35.928317s:
The buggy address belongs to the object at c00020003bda3000
which belongs to the cache kmalloc-rnd-15-2k of size 2048
The buggy address is located 16 bytes to the right of
allocated 1448-byte region [c00020003bda3000, c00020003bda35a8)
The buggy address belongs to the physical page:
Memory state around the buggy address:
c00020003bda3480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c00020003bda3500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>c00020003bda3580: 00 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc
^
c00020003bda3600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
c00020003bda3680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================
Fix this by allocating the flexible array using nr_node_ids instead
of num_possible_nodes(). Since nr_node_ids represents the maximum
possible NUMA node IDs, indexing current_path[] using numa_node_id()
becomes safe even on systems with sparse node IDs.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 Version: f333444708f82c4a4d3ccac004da0bfd9cfdfa42 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74384",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:58.881656Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:36.724Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7e7b167e65610dfa7564d449474f4b477f9d4c1c",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "316b5f1168264844aa125959de1d6da2b1905795",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "1d4131b5c9823c7d2c86389898ad1b466af7df5e",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "9ffdd11bd6c961b46b3689850ff6c5d7af5c5fe5",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "bde4d6eb53f7d3cdae7e62c9ee84345fdd6e70a6",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "140d6fff4ed266592492a23444043842b4af7a62",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "7173a741fed73de6247384056fe92e582ba12507",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
},
{
"lessThan": "001e57554de81aa79c25c18fd53911d8a415c304",
"status": "affected",
"version": "f333444708f82c4a4d3ccac004da0bfd9cfdfa42",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.20"
},
{
"lessThan": "4.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.20",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-multipath: fix flex array size in struct nvme_ns_head\n\nstruct nvme_ns_head contains a flexible array member, current_path[],\nwhich is indexed using the NUMA node ID:\nhead-\u003ecurrent_path[numa_node_id()]\n\nThe structure is currently allocated as:\nsize = sizeof(struct nvme_ns_head) +\n (num_possible_nodes() * sizeof(struct nvme_ns *));\nhead = kzalloc(size, GFP_KERNEL);\n\nThis allocation assumes that NUMA node IDs are sequential and densely\npacked from 0 .. num_possible_nodes() - 1. While this assumption holds\non many systems, it is not always true on some architectures such as\npowerpc.\n\nOn some powerpc systems, NUMA node IDs can be sparse. For example:\nNUMA:\n NUMA node(s): 6\n NUMA node0 CPU(s): 80-159\n NUMA node8 CPU(s): 0-79\n NUMA node252 CPU(s):\n NUMA node253 CPU(s):\n NUMA node254 CPU(s):\n NUMA node255 CPU(s):\n\nThat is, the possible/online NUMA node IDs are: 0, 8, 252, 253, 254, 255\nIn this case: num_possible_nodes() = 6\n\nSo memory is allocated for only 6 entries in current_path[]. However,\nthe array is later indexed using the actual NUMA node ID. As a result,\naccesses such as:\nhead-\u003ecurrent_path[8] or\nhead-\u003ecurrent_path[252]\ngoes out of bounds, leading to the following KASAN splat:\n\n==================================================================\nBUG: KASAN: slab-out-of-bounds in nvme_mpath_revalidate_paths+0x22c/0x290 [nvme_core]\nWrite of size 8 at addr c00020003bda35b8 by task kworker/u641:2/1997\n\nCPU: 1 UID: 0 PID: 1997 Comm: kworker/u641:2 Not tainted 7.1.0-rc5-dirty #14 PREEMPT(lazy)\nHardware name: 8335-GTH POWER9 0x4e1202 opal:skiboot-v6.5.3-35-g1851b2a06 PowerNV\nWorkqueue: async async_run_entry_fn\nCall Trace:\n[c000200037fa7510] [c0000000021c23d4] dump_stack_lvl+0x88/0xdc (unreliable)\n[c000200037fa7540] [c0000000009fda90] print_report+0x22c/0x67c\n[c000200037fa7630] [c0000000009fd508] kasan_report+0x108/0x220\n[c000200037fa7740] [c0000000009fff48] __asan_store8+0xe8/0x120\n[c000200037fa7760] [c008000018e76474] nvme_mpath_revalidate_paths+0x22c/0x290 [nvme_core]\n[c000200037fa7800] [c008000018e6556c] nvme_update_ns_info+0x4a4/0x5e0 [nvme_core]\n[c000200037fa7a50] [c008000018e66270] nvme_alloc_ns+0x6d8/0x1a70 [nvme_core]\n[c000200037fa7c20] [c008000018e679fc] nvme_scan_ns+0x3f4/0x630 [nvme_core]\n[c000200037fa7d10] [c00000000031f22c] async_run_entry_fn+0x9c/0x3a0\n[c000200037fa7db0] [c0000000002fa544] process_one_work+0x414/0xa10\n[c000200037fa7ec0] [c0000000002fbf00] worker_thread+0x320/0x640\n[c000200037fa7f80] [c00000000030d0f8] kthread+0x278/0x290\n[c000200037fa7fe0] [c00000000000ded8] start_kernel_thread+0x14/0x18\n\nAllocated by task 1997 on cpu 1 at 35.928317s:\n\nThe buggy address belongs to the object at c00020003bda3000\n which belongs to the cache kmalloc-rnd-15-2k of size 2048\nThe buggy address is located 16 bytes to the right of\n allocated 1448-byte region [c00020003bda3000, c00020003bda35a8)\n\nThe buggy address belongs to the physical page:\n\nMemory state around the buggy address:\n c00020003bda3480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n c00020003bda3500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n\u003ec00020003bda3580: 00 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc\n ^\n c00020003bda3600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc\n c00020003bda3680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc\n==================================================================\n\nFix this by allocating the flexible array using nr_node_ids instead\nof num_possible_nodes(). Since nr_node_ids represents the maximum\npossible NUMA node IDs, indexing current_path[] using numa_node_id()\nbecomes safe even on systems with sparse node IDs."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - On IBM POWER cloud/enterprise hosts using NVMe-oF (TCP/RDMA/FC), a remote attacker on the storage fabric can deliver NVMe async namespace-changed completions that queue namespace rescans, driving nvme_scan_ns()\u2192nvme_alloc_ns()\u2192nvme_update_ns_info()\u2192nvme_mpath_revalidate_paths() over the network-facing NVMe host transport.\nAC:L - Once CONFIG_NVME_MULTIPATH is enabled on POWER systems with sparse NUMA IDs (e.g., nodes 0,8,252-255), indexing current_path[numa_node_id()] deterministically exceeds the num_possible_nodes()-sized allocation during boot scan, admin rescan, or multipath I/O without races or layout luck.\nPR:N - Triggering the bug via remote NVMe async events or normal multipath block I/O requires no local account, CAP_SYS_ADMIN, or other host privileges; only an existing NVMe attachment (local PCIe or preconfigured fabric) on a vulnerable POWER NUMA topology.\nUI:N - No victim user action is required beyond routine system operation such as boot-time namespace discovery, background kworker rescans, or ordinary storage I/O on multipathed NVMe namespaces.\nS:U - The out-of-bounds slab write corrupts host kernel heap memory in the NVMe multipath driver, enabling kernel privilege escalation within the same security authority rather than crossing VM, container, or IOMMU boundaries.\nC:H - KASAN reports an 8-byte slab-out-of-bounds write past the nvme_ns_head allocation; this heap corruption can overwrite adjacent kmalloc objects and be developed into arbitrary kernel memory disclosure primitives.\nI:H - The unchecked current_path[] index allows attacker-influenced 8-byte pointer writes beyond the allocation boundary, providing a heap corruption primitive suitable for arbitrary kernel writes and potential code execution.\nA:H - The confirmed slab-out-of-bounds write in nvme_mpath_revalidate_paths() can oops/panic the kernel during namespace scan or multipath I/O on affected POWER servers, causing complete node unavailability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:34.280Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7e7b167e65610dfa7564d449474f4b477f9d4c1c"
},
{
"url": "https://git.kernel.org/stable/c/316b5f1168264844aa125959de1d6da2b1905795"
},
{
"url": "https://git.kernel.org/stable/c/1d4131b5c9823c7d2c86389898ad1b466af7df5e"
},
{
"url": "https://git.kernel.org/stable/c/9ffdd11bd6c961b46b3689850ff6c5d7af5c5fe5"
},
{
"url": "https://git.kernel.org/stable/c/bde4d6eb53f7d3cdae7e62c9ee84345fdd6e70a6"
},
{
"url": "https://git.kernel.org/stable/c/140d6fff4ed266592492a23444043842b4af7a62"
},
{
"url": "https://git.kernel.org/stable/c/7173a741fed73de6247384056fe92e582ba12507"
},
{
"url": "https://git.kernel.org/stable/c/001e57554de81aa79c25c18fd53911d8a415c304"
}
],
"title": "nvme-multipath: fix flex array size in struct nvme_ns_head",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74384",
"datePublished": "2026-08-15T05:59:00.445Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-10-16T18:55:36.724Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72438 (GCVE-0-2026-72438)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid10: fix writes_pending and barrier reference leaks on discard failures
raid10_make_request() acquires a writes_pending reference with
md_write_start() before calling raid10_handle_discard(). Several failure
paths in raid10_handle_discard() complete the bio and return without
releasing the corresponding reference, causing md_write_end() to be
skipped.
Call md_write_end() before returning from these failure paths to keep
writes_pending accounting balanced.
Additionally, discard split allocation failures can occur after
wait_barrier() succeeds. Those paths return without calling
allow_barrier(), leaking the associated barrier reference.
Release the barrier before returning from those paths.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: c9aa889b035fca4598ae985a0f0c76ebbb547ad2 Version: 39db562b3fedb93978a7e42dd216b306740959f8 Version: 5.15.111 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72438",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:00.249923Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.215Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "80ac31cce55432034a9eb98262c92ace7866e494",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "fea33968592559a55a3f5a96a6386bebcaf988a8",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "11b35d1906a7277a3d64afe34224133b44327328",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "d1324b41dabd26787559efaeb430643c627c1eb0",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"lessThan": "393d687131d8aa8c7e4de2cb494438e145d20fc2",
"status": "affected",
"version": "c9aa889b035fca4598ae985a0f0c76ebbb547ad2",
"versionType": "git"
},
{
"status": "affected",
"version": "39db562b3fedb93978a7e42dd216b306740959f8",
"versionType": "git"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.111",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.111",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid10: fix writes_pending and barrier reference leaks on discard failures\n\nraid10_make_request() acquires a writes_pending reference with\nmd_write_start() before calling raid10_handle_discard(). Several failure\npaths in raid10_handle_discard() complete the bio and return without\nreleasing the corresponding reference, causing md_write_end() to be\nskipped.\n\nCall md_write_end() before returning from these failure paths to keep\nwrites_pending accounting balanced.\n\nAdditionally, discard split allocation failures can occur after\nwait_barrier() succeeds. Those paths return without calling\nallow_barrier(), leaking the associated barrier reference.\n\nRelease the barrier before returning from those paths."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - RAID10 is commonly used on network-facing storage servers; discard/TRIM/UNMAP from remote iSCSI initiators or NFS clients reaches raid10_make_request() through the block layer without local host login.\nAC:L - An attacker can reliably trigger the bug by issuing large, stripe-misaligned discards to force bio_split() and inducing GFP_NOIO allocation failure via self-created memory pressure; no rare timing or victim state is required.\nPR:N - Exploitation requires only network reachability to a storage service that accepts discard/UNMAP/DEALLOCATE on the RAID10 LUN or exported filesystem, not Linux host administrator privileges or capabilities.\nUI:N - Discard, TRIM, punch-hole, and SCSI UNMAP are programmatic storage operations that do not require any interactive action by a human victim beyond normal automated I/O.\nS:U - The leaked writes_pending and barrier/nr_pending counters only corrupt RAID10/md internal accounting within the kernel storage stack and do not cross VM, container, or IOMMU security boundaries.\nC:N - The flaw is reference-count leakage on writes_pending and nr_pending with no out-of-bounds access, use-after-free, or memory disclosure; no confidential data is exposed.\nI:N - No memory corruption or unauthorized modification of user or filesystem data occurs; impact is limited to incorrect internal IO/barrier accounting rather than integrity compromise.\nA:H - Leaked nr_pending prevents raise_barrier() and freeze_array() from ever completing, causing indefinite kernel thread hangs during recovery/reshape/error handling and persistent denial of storage service on the array."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:55.040Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/80ac31cce55432034a9eb98262c92ace7866e494"
},
{
"url": "https://git.kernel.org/stable/c/fea33968592559a55a3f5a96a6386bebcaf988a8"
},
{
"url": "https://git.kernel.org/stable/c/11b35d1906a7277a3d64afe34224133b44327328"
},
{
"url": "https://git.kernel.org/stable/c/d1324b41dabd26787559efaeb430643c627c1eb0"
},
{
"url": "https://git.kernel.org/stable/c/393d687131d8aa8c7e4de2cb494438e145d20fc2"
}
],
"title": "md/raid10: fix writes_pending and barrier reference leaks on discard failures",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72438",
"datePublished": "2026-08-15T05:56:51.384Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-10-21T12:44:55.040Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74270 (GCVE-0-2026-74270)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
handshake: Require admin permission for DONE command
ACCEPT and DONE are the two downcalls of the handshake genl
family, both intended for use by the trusted handshake agent
(tlshd). ACCEPT already requires GENL_ADMIN_PERM; DONE has
no privilege check at all.
The fd-lookup in handshake_nl_done_doit() only confirms that
some pending handshake request exists for the supplied sockfd;
it does not authenticate the sender. An unprivileged process
that guesses or observes a valid sockfd can therefore submit
a DONE with HANDSHAKE_A_DONE_STATUS == 0, leaving the kernel
consumer to proceed as if the handshake succeeded. A non-zero
status on a forged DONE tears down a legitimate in-flight
handshake before tlshd can report its real result.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74270",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:52.912027Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:29.298Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"Documentation/netlink/specs/handshake.yaml",
"net/handshake/genl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "25fb53e43ec006ac69b9e825a7e8a11d63a6083e",
"status": "affected",
"version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
"versionType": "git"
},
{
"lessThan": "b6557f912509abe8e70223373dd7a44d1d4a0d6c",
"status": "affected",
"version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
"versionType": "git"
},
{
"lessThan": "67cec2f1eb9e58719d622e92e2278ceda72dbd85",
"status": "affected",
"version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
"versionType": "git"
},
{
"lessThan": "4dafc411948469277b276724c3b2b4408c02c04c",
"status": "affected",
"version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
"versionType": "git"
},
{
"lessThan": "81246a65303d9635266b1334490142caaf86a11f",
"status": "affected",
"version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"Documentation/netlink/specs/handshake.yaml",
"net/handshake/genl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.4"
},
{
"lessThan": "6.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhandshake: Require admin permission for DONE command\n\nACCEPT and DONE are the two downcalls of the handshake genl\nfamily, both intended for use by the trusted handshake agent\n(tlshd). ACCEPT already requires GENL_ADMIN_PERM; DONE has\nno privilege check at all.\n\nThe fd-lookup in handshake_nl_done_doit() only confirms that\nsome pending handshake request exists for the supplied sockfd;\nit does not authenticate the sender. An unprivileged process\nthat guesses or observes a valid sockfd can therefore submit\na DONE with HANDSHAKE_A_DONE_STATUS == 0, leaving the kernel\nconsumer to proceed as if the handshake succeeded. A non-zero\nstatus on a forged DONE tears down a legitimate in-flight\nhandshake before tlshd can report its real result."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires sending a HANDSHAKE_CMD_DONE generic-netlink message via a local netlink socket to handshake_nl_done_doit(); although nfsd and nvmet-tcp are network-facing, the vulnerable control-plane downcall is not reachable from remote packets.\nAC:L - Once a process holds a sockfd for a socket with a pending handshake request, forging DONE with status 0 or a failure status is a single deterministic netlink operation; the commit describes sockfd guessing/observation as sufficient and no special timing beyond normal concurrency is required.\nPR:L - Before the fix, HANDSHAKE_CMD_DONE lacked GENL_ADMIN_PERM while ACCEPT required it, so any unprivileged local user with netlink access could invoke the handler without CAP_NET_ADMIN in the initial user namespace or any other elevated capability.\nUI:N - Exploitation does not require victim interaction such as opening files or mounting filesystems; the attacker sends a forged DONE netlink message directly to complete or abort an in-flight kernel handshake.\nS:U - Impact is confined to kernel TLS handshake state for local socket consumers (NFS RPC-over-TLS, NVMe-oF TCP TLS); it does not cross a VM, container, or IOMMU security boundary into a different authority.\nC:H - A forged DONE with HANDSHAKE_A_DONE_STATUS==0 makes kernel consumers proceed as if tlshd completed TLS successfully, bypassing X.509/PSK peer verification on NFS and NVMe-oF TCP sessions and undermining confidentiality of protected network storage traffic.\nI:H - The attacker can supply arbitrary HANDSHAKE_A_DONE_REMOTE_AUTH peer-identity values with a forged success, causing nfsd/nvmet to mark connections as TLS-authenticated and continue I/O under false security assumptions, corrupting integrity of access-control decisions.\nA:H - A forged DONE with non-zero status calls handshake_complete() with an error, tearing down legitimate in-flight handshakes before tlshd reports the real result and denying or disrupting TLS session establishment on NFS/NVMe-oF TCP services."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:16.772Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/25fb53e43ec006ac69b9e825a7e8a11d63a6083e"
},
{
"url": "https://git.kernel.org/stable/c/b6557f912509abe8e70223373dd7a44d1d4a0d6c"
},
{
"url": "https://git.kernel.org/stable/c/67cec2f1eb9e58719d622e92e2278ceda72dbd85"
},
{
"url": "https://git.kernel.org/stable/c/4dafc411948469277b276724c3b2b4408c02c04c"
},
{
"url": "https://git.kernel.org/stable/c/81246a65303d9635266b1334490142caaf86a11f"
}
],
"title": "handshake: Require admin permission for DONE command",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74270",
"datePublished": "2026-08-15T05:57:44.195Z",
"dateReserved": "2026-08-15T05:44:03.879Z",
"dateUpdated": "2026-10-16T18:55:29.298Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80679 (GCVE-0-2026-80679)
Vulnerability from cvelistv5
Published
2026-08-28 06:52
Modified
2026-08-28 06:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/dasd: Fix potential NULL pointer dereference
dasd_release_space() checks the implementation of the is_ese()
discipline function before calling it to determine if a given device is
an ESE DASD.
The current usage of the logical AND operator will lead to a NULL
pointer dereference as the function is called even if the function
pointer is NULL.
Fix this by using the logical OR operator.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 Version: 91dc4a197569230683ca8bad551e655a4bf14c30 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/block/dasd_ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "dbf2ae34d2f1390a9fc1abf3dce7f809e022caae",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "3000367a512b1283ca52230bf21f8c91dfbec45b",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "cdc7b73d0c5a9cd6360b4f8c36eae23b02097e4c",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "e156c70c505c6c9adce3b7be5a82025f00544709",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "3453a993a3f14c1684560ecf26585046976f6ac6",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "86cdfd061509bcde84f3145f7221ba64e3e53b1f",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "96b8e09b09539f252a5eeea6baebd93c2e3779bd",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
},
{
"lessThan": "9973026f572db6b67570cadc30942f3014e41079",
"status": "affected",
"version": "91dc4a197569230683ca8bad551e655a4bf14c30",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/block/dasd_ioctl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/dasd: Fix potential NULL pointer dereference\n\ndasd_release_space() checks the implementation of the is_ese()\ndiscipline function before calling it to determine if a given device is\nan ESE DASD.\n\nThe current usage of the logical AND operator will lead to a NULL\npointer dereference as the function is called even if the function\npointer is NULL.\n\nFix this by using the logical OR operator."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:52:47.682Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/dbf2ae34d2f1390a9fc1abf3dce7f809e022caae"
},
{
"url": "https://git.kernel.org/stable/c/3000367a512b1283ca52230bf21f8c91dfbec45b"
},
{
"url": "https://git.kernel.org/stable/c/cdc7b73d0c5a9cd6360b4f8c36eae23b02097e4c"
},
{
"url": "https://git.kernel.org/stable/c/e156c70c505c6c9adce3b7be5a82025f00544709"
},
{
"url": "https://git.kernel.org/stable/c/3453a993a3f14c1684560ecf26585046976f6ac6"
},
{
"url": "https://git.kernel.org/stable/c/86cdfd061509bcde84f3145f7221ba64e3e53b1f"
},
{
"url": "https://git.kernel.org/stable/c/96b8e09b09539f252a5eeea6baebd93c2e3779bd"
},
{
"url": "https://git.kernel.org/stable/c/9973026f572db6b67570cadc30942f3014e41079"
}
],
"title": "s390/dasd: Fix potential NULL pointer dereference",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80679",
"datePublished": "2026-08-28T06:52:47.682Z",
"dateReserved": "2026-08-26T14:34:25.783Z",
"dateUpdated": "2026-08-28T06:52:47.682Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93154 (GCVE-0-2026-93154)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-19 09:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/irdma: Add refcounting to user ring MRs
Prevent userspace from deregistering the MRs that back QP/CQ/SRQ rings
by bumping the MR's refcount upon association.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/utils.c",
"drivers/infiniband/hw/irdma/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "07974c267f603a76aead348bca97deee95efdcc9",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "a6c0e693a7c881bfa43ac74cbcad1f8e10f1382b",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
},
{
"lessThan": "f67d8a08f60c9217df6d40da56422d2049f5e334",
"status": "affected",
"version": "b48c24c2d710cf34810c555dcef883a3d35a9c08",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/irdma/utils.c",
"drivers/infiniband/hw/irdma/verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/irdma: Add refcounting to user ring MRs\n\nPrevent userspace from deregistering the MRs that back QP/CQ/SRQ rings\nby bumping the MR\u0027s refcount upon association."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The trigger is a local IB_USER_VERBS_CMD_DEREG_MR write (ib_uverbs_dereg_mr / UVERBS_METHOD_MR_DESTROY) on /dev/infiniband/uverbs*. After irdma_get_pbl binds an IRDMA_MEMREG_TYPE_QP/CQ/SRQ ring MR to a live QP/CQ/SRQ, irdma_dereg_mr still frees it; no iWARP/RoCE message supplies that deregistration.\nAC:L - The attacker drives every step with no race: irdma_reg_user_mr with reg_type QP/CQ/SRQ, then irdma_setup_umode_qp/irdma_create_cq/irdma_setup_umode_srq so irdma_get_pbl sets on_list=false, then irdma_dereg_mr. Pre-fix irdma_del_memlist is a no-op on an already-associated ring, so the free is deterministic.\nPR:L - ib_uverbs_open() only checks rdma_dev_access_netns() (devices shared across netns by default) and ib_uverbs_dereg_mr() only requires ownership of the caller\u0027s MR uobject, with no capability gate. rdma-core udev rules expose uverbs as 0666; a small ring fits unprivileged RLIMIT_MEMLOCK without CAP_IPC_LOCK.\nUI:N - The attacker registers the ring MR via ib_uverbs_reg_mr, creates the QP/CQ/SRQ, and issues IB_USER_VERBS_CMD_DEREG_MR on that handle from their own process; no other user must mount a device, open a file, or otherwise act.\nS:U - irdma_dereg_mr kfree()s the irdma_mr and releases its umem/HMC PBLEs while the same host\u0027s QP/CQ/SRQ still holds iwpbl and the NIC still DMAs those rings. That is host-kernel memory corruption, not a KVM/Xen guest-to-host escape or an IOMMU isolation bypass.\nC:H - irdma_dereg_mr calls ib_umem_release, irdma_free_pble, and kfree(iwmr) while hardware still walks those HMC PBLEs and DMA-reads SQ/RQ/CQ rings. Recycled umem pages and PBLE tables yield device DMA reads of kernel or other-process memory, and iwqp/iwcq-\u003eiwpbl dangles into the freed irdma_mr.\nI:H - The NIC keeps DMAing CQEs/WQEs into unpinned, reallocatable ring pages and walking freed PBLE page tables, producing device writes into recycled kernel memory. Combined with the irdma_mr heap UAF (struct irdma_pbl iwpbl is embedded in iwmr), this is an arbitrary-write primitive.\nA:H - kfree of a still-referenced irdma_mr, irdma_free_pble of live HMC page tables, and DMA into unmapped SQ/RQ/CQ pages cause a kernel oops/panic or an irdma CQP/device reset when the QP/CQ/SRQ is next used or destroyed."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:06:26.358Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/07974c267f603a76aead348bca97deee95efdcc9"
},
{
"url": "https://git.kernel.org/stable/c/a6c0e693a7c881bfa43ac74cbcad1f8e10f1382b"
},
{
"url": "https://git.kernel.org/stable/c/f67d8a08f60c9217df6d40da56422d2049f5e334"
}
],
"title": "RDMA/irdma: Add refcounting to user ring MRs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93154",
"datePublished": "2026-09-17T16:11:50.107Z",
"dateReserved": "2026-09-17T16:02:15.089Z",
"dateUpdated": "2026-10-19T09:06:26.358Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74609 (GCVE-0-2026-74609)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: read le->link under the node lock in tipc_node_link_down()
tipc_node_link_down() caches the link pointer before taking n->lock:
struct tipc_link *l = le->link; /* unlocked */
if (!l)
return;
tipc_node_write_lock(n);
if (!tipc_link_is_establishing(l)) { /* deref l */
...
tipc_link_reset(l); /* write into l */
if (delete) {
kfree(l);
le->link = NULL;
The delete=true caller frees that very object under n->lock, so the lock
does not protect the cached pointer against it:
- CPU A, delete=false: tipc_rcv() on TIPC_LINK_DOWN_EVT, or the link
supervision timer via tipc_node_timeout(), reads l unlocked and then
dereferences it under n->lock;
- CPU B, delete=true: netlink TIPC_NL_BEARER_DISABLE -> bearer_disable()
-> tipc_node_delete_links() -> tipc_node_link_down(n, bearer_id, true)
-> kfree(l).
The link is freed with plain kfree(), not kfree_rcu(), and for UDP bearers
disable_media() only schedules the asynchronous cleanup_bearer() work, so
its synchronize_net() runs after the links are already gone. An in-flight
CPU A that has read l therefore dereferences freed memory once B frees it:
a use-after-free read in tipc_link_is_establishing(), and a use-after-free
write via tipc_link_reset() on the establishing branch.
The following trace was captured on 7.2.0-rc5-00284-gaf39eb111ce6:
BUG: KASAN: slab-use-after-free in tipc_link_is_establishing (net/tipc/link.c:285)
Read of size 4 at addr ffff88802e2aa068 by task swapper/2/0
tipc_link_is_establishing (net/tipc/link.c:285)
tipc_node_link_down (net/tipc/node.c:1076)
tipc_node_timeout (net/tipc/node.c:843)
Allocated by task 9549:
tipc_link_create (net/tipc/link.c:490)
tipc_node_check_dest (net/tipc/node.c:1279)
tipc_disc_rcv (net/tipc/discover.c:252)
tipc_udp_recv (net/tipc/udp_media.c:389)
Freed by task 9549:
tipc_node_link_down (net/tipc/node.c:1084)
tipc_node_delete_links (net/tipc/node.c:1320)
bearer_disable (net/tipc/bearer.c:414)
__tipc_nl_bearer_disable (net/tipc/bearer.c:992)
Move the le->link read inside tipc_node_write_lock(), so it is serialised
against the kfree() in the delete path. A racing teardown now either has
not run yet, and we see a valid link, or has already run, and we see NULL.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 Version: 73f646cec35477b5099d7e952297cb9e1855be45 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74609",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:14.527164Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:01.059Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/node.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2be741ad565c610871a6a95062c12c39da7168fd",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "69d209461c110388710e483a130caf051e4fd09a",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "de017c22135f545ca4e65d1eada22887b64958eb",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "47ba70891b10b2feb52462086b7fcd2ad75d3ce3",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "a714d62513befef37f71f4ae89bb1fe173b65f2e",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "c3f2347a47754eac690967cfd82cb6d559817b07",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "5558a8312452ddb21eff22b1cbd84302ad951944",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
},
{
"lessThan": "cba9ccb47e9fa4cc77692fb896cc5ab57a667882",
"status": "affected",
"version": "73f646cec35477b5099d7e952297cb9e1855be45",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/node.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: read le-\u003elink under the node lock in tipc_node_link_down()\n\ntipc_node_link_down() caches the link pointer before taking n-\u003elock:\n\n\tstruct tipc_link *l = le-\u003elink;\t\t/* unlocked */\n\n\tif (!l)\n\t\treturn;\n\ttipc_node_write_lock(n);\n\tif (!tipc_link_is_establishing(l)) {\t/* deref l */\n\t...\n\t\ttipc_link_reset(l);\t\t/* write into l */\n\tif (delete) {\n\t\tkfree(l);\n\t\tle-\u003elink = NULL;\n\nThe delete=true caller frees that very object under n-\u003elock, so the lock\ndoes not protect the cached pointer against it:\n\n - CPU A, delete=false: tipc_rcv() on TIPC_LINK_DOWN_EVT, or the link\n supervision timer via tipc_node_timeout(), reads l unlocked and then\n dereferences it under n-\u003elock;\n - CPU B, delete=true: netlink TIPC_NL_BEARER_DISABLE -\u003e bearer_disable()\n -\u003e tipc_node_delete_links() -\u003e tipc_node_link_down(n, bearer_id, true)\n -\u003e kfree(l).\n\nThe link is freed with plain kfree(), not kfree_rcu(), and for UDP bearers\ndisable_media() only schedules the asynchronous cleanup_bearer() work, so\nits synchronize_net() runs after the links are already gone. An in-flight\nCPU A that has read l therefore dereferences freed memory once B frees it:\na use-after-free read in tipc_link_is_establishing(), and a use-after-free\nwrite via tipc_link_reset() on the establishing branch.\n\nThe following trace was captured on 7.2.0-rc5-00284-gaf39eb111ce6:\n\n BUG: KASAN: slab-use-after-free in tipc_link_is_establishing (net/tipc/link.c:285)\n Read of size 4 at addr ffff88802e2aa068 by task swapper/2/0\n tipc_link_is_establishing (net/tipc/link.c:285)\n tipc_node_link_down (net/tipc/node.c:1076)\n tipc_node_timeout (net/tipc/node.c:843)\n Allocated by task 9549:\n tipc_link_create (net/tipc/link.c:490)\n tipc_node_check_dest (net/tipc/node.c:1279)\n tipc_disc_rcv (net/tipc/discover.c:252)\n tipc_udp_recv (net/tipc/udp_media.c:389)\n Freed by task 9549:\n tipc_node_link_down (net/tipc/node.c:1084)\n tipc_node_delete_links (net/tipc/node.c:1320)\n bearer_disable (net/tipc/bearer.c:414)\n __tipc_nl_bearer_disable (net/tipc/bearer.c:992)\n\nMove the le-\u003elink read inside tipc_node_write_lock(), so it is serialised\nagainst the kfree() in the delete path. A racing teardown now either has\nnot run yet, and we see a valid link, or has already run, and we see NULL."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF race requires the delete=true path (kfree) via TIPC_NL_BEARER_DISABLE/bearer_disable() or netns teardown, reachable only through local RTNL/genlink with CAP_NET_ADMIN; remote tipc_rcv() packets alone cannot free links and complete the race.\nAC:L - An attacker with CAP_NET_ADMIN controls both CPUs by scripting bearer disable/netns teardown while concurrently driving link-down events via TIPC traffic or link supervision timers; KASAN reproduced this reliably without uncontrollable victim timing.\nPR:L - Bearer disable and link deletion require CAP_NET_ADMIN (GENL_UNS_ADMIN_PERM on TIPC_NL_BEARER_DISABLE); tipc_genl_family is netns-aware, so unprivileged users obtain effective net-admin via user/network namespaces (unshare -Urn).\nUI:N - No victim interaction is required; the attacker scripts bearer teardown and concurrent TIPC link activity from their own processes without needing another user to mount, open files, or perform administrative actions.\nS:U - Slab UAF corrupts host kernel heap memory within the same kernel security authority; impact is kernel crash or local privilege escalation, not a VM, IOMMU, or cross-container sandbox boundary escape.\nC:H - Slab use-after-free read in tipc_link_is_establishing() dereferences freed tipc_link objects (KASAN-confirmed), enabling disclosure of freed kernel memory and supporting further heap exploitation primitives.\nI:H - On the establishing branch tipc_link_reset() performs multiple writes into the freed tipc_link structure, corrupting kernel heap metadata and adjacent objects in ways exploitable for arbitrary write and control-flow hijacking.\nA:H - KASAN-confirmed slab-use-after-free in tipc_node_link_down() causes kernel oops/panic (observed on swapper during tipc_node_timeout), and the race can be retriggered during bearer teardown loops for reliable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:34.778Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2be741ad565c610871a6a95062c12c39da7168fd"
},
{
"url": "https://git.kernel.org/stable/c/69d209461c110388710e483a130caf051e4fd09a"
},
{
"url": "https://git.kernel.org/stable/c/de017c22135f545ca4e65d1eada22887b64958eb"
},
{
"url": "https://git.kernel.org/stable/c/47ba70891b10b2feb52462086b7fcd2ad75d3ce3"
},
{
"url": "https://git.kernel.org/stable/c/a714d62513befef37f71f4ae89bb1fe173b65f2e"
},
{
"url": "https://git.kernel.org/stable/c/c3f2347a47754eac690967cfd82cb6d559817b07"
},
{
"url": "https://git.kernel.org/stable/c/5558a8312452ddb21eff22b1cbd84302ad951944"
},
{
"url": "https://git.kernel.org/stable/c/cba9ccb47e9fa4cc77692fb896cc5ab57a667882"
}
],
"title": "tipc: read le-\u003elink under the node lock in tipc_node_link_down()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74609",
"datePublished": "2026-08-22T15:31:56.054Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:01.059Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72125 (GCVE-0-2026-72125)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
can: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER
isotp_release() looked up the bound network device via dev_get_by_index()
using the stored ifindex. During device unregistration the device is
unlisted from the ifindex hash before the NETDEV_UNREGISTER notifier
chain runs, so a concurrent isotp_release() could find no device, skip
can_rx_unregister() entirely, and still proceed to free the socket.
Since isotp_release() had already removed itself from the isotp
notifier list at that point, isotp_notify() would never get a chance to
clean up either, leaving a stale CAN filter that keeps pointing at the
freed socket.
Fix this the same way raw.c already does: hold a tracked reference to
the bound net_device in the socket (so->dev/so->dev_tracker) from
bind() onward instead of re-resolving it from the ifindex, and
serialize bind()/release() with rtnl_lock() so that so->dev is always
consistent with what the NETDEV_UNREGISTER notifier sees. so->dev
stays valid regardless of ifindex-hash unlisting, and is only ever
cleared by whichever of isotp_release()/isotp_notify() gets there
first, so the filter is always removed exactly once.
isotp_bind() now rejects a (re)bind with -EAGAIN while so->[tx|rx].state
isn't ISOTP_IDLE yet, so a timer left running by a prior
NETDEV_UNREGISTER can't act on a newly bound so->ifindex. Both checks
share the same lock_sock() section, so there is no window in which a
concurrent isotp_notify() clearing so->bound could be missed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 Version: e057dd3fc20ffb3d7f150af46542a51b59b90127 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72125",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:17.799188Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:57.938Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/can/isotp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f311bbb29bb06aaab69ba45a6e4b11323d20b8f9",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "8e018f4335590460ebcf0c2b493ed38ba1a35204",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "33b9cd9245e2a4b800f99ed1cc53d64960614152",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "0b811c4bbe3ec9ad611e90a540fe8b51b3bb8a96",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "43884dc7963beef2328f507f4fe680bdc173eb80",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "7bef39ba76eb7307ed22a50329e0f5776dbeda58",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "e442b62ba5a7756c17e05a77b32cdd085a2b6138",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
},
{
"lessThan": "20bab8b88baac140ca3701116e1d486c7f51e311",
"status": "affected",
"version": "e057dd3fc20ffb3d7f150af46542a51b59b90127",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/can/isotp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER\n\nisotp_release() looked up the bound network device via dev_get_by_index()\nusing the stored ifindex. During device unregistration the device is\nunlisted from the ifindex hash before the NETDEV_UNREGISTER notifier\nchain runs, so a concurrent isotp_release() could find no device, skip\ncan_rx_unregister() entirely, and still proceed to free the socket.\nSince isotp_release() had already removed itself from the isotp\nnotifier list at that point, isotp_notify() would never get a chance to\nclean up either, leaving a stale CAN filter that keeps pointing at the\nfreed socket.\n\nFix this the same way raw.c already does: hold a tracked reference to\nthe bound net_device in the socket (so-\u003edev/so-\u003edev_tracker) from\nbind() onward instead of re-resolving it from the ifindex, and\nserialize bind()/release() with rtnl_lock() so that so-\u003edev is always\nconsistent with what the NETDEV_UNREGISTER notifier sees. so-\u003edev\nstays valid regardless of ifindex-hash unlisting, and is only ever\ncleared by whichever of isotp_release()/isotp_notify() gets there\nfirst, so the filter is always removed exactly once.\n\nisotp_bind() now rejects a (re)bind with -EAGAIN while so-\u003e[tx|rx].state\nisn\u0027t ISOTP_IDLE yet, so a timer left running by a prior\nNETDEV_UNREGISTER can\u0027t act on a newly bound so-\u003eifindex. Both checks\nshare the same lock_sock() section, so there is no window in which a\nconcurrent isotp_notify() clearing so-\u003ebound could be missed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local AF_CAN ISO-TP socket operations (socket/bind/close) racing NETDEV_UNREGISTER on the bound CAN interface; stale-filter UAF is triggered via local frame injection or an existing bound interface, not a remote IP/network service.\nAC:L - The attacker controls both sides of the race by concurrently closing the ISO-TP socket and unregistering the bound CAN device (e.g., vcan create/delete with CAP_NET_ADMIN in a user namespace), and can retry until the stale RX filter is left on a freed socket.\nPR:L - No init-namespace root is required: any local user can open CAN_ISOTP sockets, and CAP_NET_ADMIN obtainable in user namespaces suffices to create/delete vcan and drive the unregister path used in automotive/embedded ISO-TP (UDS) deployments.\nUI:N - No victim interaction is needed; the use-after-free is triggered by the attacker\u0027s own concurrent close()/NETDEV_UNREGISTER operations and subsequent CAN frames sent to the bound IDs.\nS:U - Impact is kernel heap corruption and potential privilege escalation within the same OS security boundary; it does not inherently cross VM, container, or IOMMU isolation boundaries.\nC:H - A stale can_rx filter keeps calling isotp_rcv()/isotp_rcv_echo() with a freed isotp_sock, enabling reads of reallocated slab contents through socket state, sock_queue_rcv_skb(), and protocol parsing on attacker-influenced memory.\nI:H - The UAF path performs extensive writes to freed socket state (RX/TX buffers, timers, generation counters) and can emit CAN traffic, providing primitives for heap shaping and control-flow hijack rather than a crash-only fault.\nA:H - Use-after-free in softirq CAN receive callbacks commonly causes kernel oops/panic from dereferencing or writing freed isotp_sock/timer state, even before reliable exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:36:23.877Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f311bbb29bb06aaab69ba45a6e4b11323d20b8f9"
},
{
"url": "https://git.kernel.org/stable/c/8e018f4335590460ebcf0c2b493ed38ba1a35204"
},
{
"url": "https://git.kernel.org/stable/c/33b9cd9245e2a4b800f99ed1cc53d64960614152"
},
{
"url": "https://git.kernel.org/stable/c/0b811c4bbe3ec9ad611e90a540fe8b51b3bb8a96"
},
{
"url": "https://git.kernel.org/stable/c/43884dc7963beef2328f507f4fe680bdc173eb80"
},
{
"url": "https://git.kernel.org/stable/c/7bef39ba76eb7307ed22a50329e0f5776dbeda58"
},
{
"url": "https://git.kernel.org/stable/c/e442b62ba5a7756c17e05a77b32cdd085a2b6138"
},
{
"url": "https://git.kernel.org/stable/c/20bab8b88baac140ca3701116e1d486c7f51e311"
}
],
"title": "can: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72125",
"datePublished": "2026-08-15T05:53:02.905Z",
"dateReserved": "2026-08-09T03:40:39.907Z",
"dateUpdated": "2026-10-16T18:44:57.938Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74288 (GCVE-0-2026-74288)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: fib_rules: Don't dump dying fib_rule in fib_rules_dump().
rocker_router_fib_event() calls fib_rule_get() during RCU dump.
If the fib_rule is dying, refcount_inc() will complain about it.
Let's call refcount_inc_not_zero() in fib_rules_dump().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e Version: 5d7bfd141924a5ece21eb612ad3c56612f041c1e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74288",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:15.422794Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:30.358Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/fib_rules.h",
"net/core/fib_rules.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f929b59f4cd0e05bb1ecefe12b77e85911d4be2",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "4b7ae30c81c2ee10a644749a3704a5c797ccc308",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "2dfdc210d240bd48bb2ea746430b02b5571b6db9",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "a7ef30753353ba6a95d693b1863a0214222a199a",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "1fbc6c6efe78f4454a51afa0587efb6826f60f00",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "bb4a5b3c91af3c8d705bb2e9f6f8069a70db26fc",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "3af0bc1bd9039e2e50abf3e2d7fee411f38bce4e",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
},
{
"lessThan": "2821e85c058f81c9948a2fb1a634f7b47457d51c",
"status": "affected",
"version": "5d7bfd141924a5ece21eb612ad3c56612f041c1e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/fib_rules.h",
"net/core/fib_rules.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fib_rules: Don\u0027t dump dying fib_rule in fib_rules_dump().\n\nrocker_router_fib_event() calls fib_rule_get() during RCU dump.\n\nIf the fib_rule is dying, refcount_inc() will complain about it.\n\nLet\u0027s call refcount_inc_not_zero() in fib_rules_dump()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local kernel networking control paths: fib_rules_dump() runs during register_fib_notifier() and races with RTM_DELRULE netlink handling in fib_delrule(), not via remotely received packets or a network-facing protocol handler.\nAC:L - Exploitation is a race where the attacker concurrently deletes FIB rules (repeated RTM_DELRULE or netns teardown) while fib_rules_dump() replays RULE_ADD events; the attacker controls both sides and can retry, as demonstrated by syzbot during netdevsim reload/cleanup_net.\nPR:L - Triggering concurrent FIB rule deletion requires CAP_NET_ADMIN on the target network namespace, which unprivileged users can obtain inside user/network namespaces (e.g., unshare -Urn), while driver registration commonly occurs in the same namespace during netdevsim/devlink setup.\nUI:N - No end-user or administrator UI action is required beyond programmatic netlink/devlink operations that an attacker can script; exploitation does not depend on a victim opening files, clicking links, or mounting filesystems.\nS:U - Impact is a kernel heap use-after-free in fib_rule handling leading to memory corruption within the host kernel; it does not inherently cross a VM/hypervisor or IOMMU security boundary without separate exploitation of unrelated boundaries.\nC:H - A dying fib_rule can be passed to FIB notifiers after its refcount hits zero; handlers such as rocker_router_fib_event() call fib_rule_get() and later dereference rule fields in workqueues, enabling reads of freed slab memory and potential kernel pointer disclosure.\nI:H - The UAF hands attackers control over the lifetime and contents of freed fib_rule objects; with heap grooming this class of corruption is reasonably leveraged into arbitrary kernel writes or control-flow hijack, not merely a benign warning.\nA:H - refcount_inc() on a zero refcount emits use-after-free warnings and concurrent dereference of freed fib_rule structures during dump/replay can cause kernel oops/panics, especially under automated stress seen in syzbot reproductions."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:27.821Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f929b59f4cd0e05bb1ecefe12b77e85911d4be2"
},
{
"url": "https://git.kernel.org/stable/c/4b7ae30c81c2ee10a644749a3704a5c797ccc308"
},
{
"url": "https://git.kernel.org/stable/c/2dfdc210d240bd48bb2ea746430b02b5571b6db9"
},
{
"url": "https://git.kernel.org/stable/c/a7ef30753353ba6a95d693b1863a0214222a199a"
},
{
"url": "https://git.kernel.org/stable/c/1fbc6c6efe78f4454a51afa0587efb6826f60f00"
},
{
"url": "https://git.kernel.org/stable/c/bb4a5b3c91af3c8d705bb2e9f6f8069a70db26fc"
},
{
"url": "https://git.kernel.org/stable/c/3af0bc1bd9039e2e50abf3e2d7fee411f38bce4e"
},
{
"url": "https://git.kernel.org/stable/c/2821e85c058f81c9948a2fb1a634f7b47457d51c"
}
],
"title": "net: fib_rules: Don\u0027t dump dying fib_rule in fib_rules_dump().",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74288",
"datePublished": "2026-08-15T05:57:55.760Z",
"dateReserved": "2026-08-15T05:44:03.881Z",
"dateUpdated": "2026-10-16T18:55:30.358Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74485 (GCVE-0-2026-74485)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: reject a flag character as the field delimiter
The registration string starts with a user chosen delimiter that
separates the individual fields. So that the field parsers terminate
even on a truncated string create_entry() pads the buffer with that
same delimiter:
memset(buf + count, del, 8);
Most fields are scanned for the delimiter with strchr()/scanarg() and
happily stop on the padding. The flags field is different: instead of
scanning for the delimiter check_special_flags() consumes the flag
characters 'P', 'O', 'C' and 'F' and stops at the first byte that is
none of them, relying on the trailing delimiter to end the scan.
If the delimiter is itself a flag character the padding no longer acts
as a terminator. The scan swallows all eight padding bytes and keeps
reading past the end of the allocation until it hits a byte that is
not a flag character. For example registering
PaPEPPxPPiP
with 'P' as the delimiter (name "a", type extension, magic "x",
interpreter "i", empty flags) leaves the flag scan running off the end
of the buffer. The registration is rejected in the end because the
parser does not stop exactly at buf + count, but only after the out of
bounds read has already happened. With an unlucky allocation layout the
scan can walk into an unmapped page; under KASAN it is reported as a
slab out of bounds read. binfmt_misc mounts are available to
unprivileged users in a user namespace so the read is reachable without
privileges.
Reject a delimiter that is one of the flag characters up front. Such a
registration was always rejected anyway, only after the out of bounds
read, so no valid registration string changes meaning.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74485",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:54.194874Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:49.285Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "96bd5d4fea2970b9b08265293ca7a10b9b27c0fd",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9970e094e5d60f0d66914bf9a97d1ef19107ebf5",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b29e3c1f375c1296362d219ff38bceddf2d2a88a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1819f82dee766c58295ecaacdac02cdf6837d7a4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1853e95c9bfe69ef1dd862b3f551e68f4a1b76cc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "840bb9c49c3e75fb32b593d67ab32f6b77122262",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9a2d87db3898b5993b64fd258d0334e0eba9ee0d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8e85d50ba1117fd446bf9a250bd8a97d48384bdc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: reject a flag character as the field delimiter\n\nThe registration string starts with a user chosen delimiter that\nseparates the individual fields. So that the field parsers terminate\neven on a truncated string create_entry() pads the buffer with that\nsame delimiter:\n\n\tmemset(buf + count, del, 8);\n\nMost fields are scanned for the delimiter with strchr()/scanarg() and\nhappily stop on the padding. The flags field is different: instead of\nscanning for the delimiter check_special_flags() consumes the flag\ncharacters \u0027P\u0027, \u0027O\u0027, \u0027C\u0027 and \u0027F\u0027 and stops at the first byte that is\nnone of them, relying on the trailing delimiter to end the scan.\n\nIf the delimiter is itself a flag character the padding no longer acts\nas a terminator. The scan swallows all eight padding bytes and keeps\nreading past the end of the allocation until it hits a byte that is\nnot a flag character. For example registering\n\n\tPaPEPPxPPiP\n\nwith \u0027P\u0027 as the delimiter (name \"a\", type extension, magic \"x\",\ninterpreter \"i\", empty flags) leaves the flag scan running off the end\nof the buffer. The registration is rejected in the end because the\nparser does not stop exactly at buf + count, but only after the out of\nbounds read has already happened. With an unlucky allocation layout the\nscan can walk into an unmapped page; under KASAN it is reported as a\nslab out of bounds read. binfmt_misc mounts are available to\nunprivileged users in a user namespace so the read is reachable without\nprivileges.\n\nReject a delimiter that is one of the flag characters up front. Such a\nregistration was always rejected anyway, only after the out of bounds\nread, so no valid registration string changes meaning."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local write() to binfmt_misc/register via bm_register_write()-\u003ecreate_entry(); the path is a VFS syscall on a mounted filesystem, not any network protocol or remote packet handler.\nAC:L - An attacker fully controls the registration string and can deterministically choose delimiter P/O/C/F with empty flags so check_special_flags() consumes padding and reads past the kmalloc buffer on every attempt; no race or victim-specific state is required.\nPR:L - binfmt_misc has FS_USERNS_MOUNT; an unprivileged local user can unshare a user namespace, mount binfmt_misc, and write register without init-namespace root, matching the fix commit\u0027s stated unprivileged reachability.\nUI:N - Triggering is entirely attacker-driven through mounting binfmt_misc and writing a crafted registration string; no victim must open files, click links, or perform any interactive action beyond the attacker\u0027s own syscalls.\nS:U - The slab out-of-bounds read and any disclosed kernel data remain within the host kernel security authority; this is standard local kernel memory access, not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - check_special_flags() scans past buf+count+8 through adjacent kmalloc/slab memory until a non-P/O/C/F byte, a classic out-of-bounds read that can disclose kernel pointers and other sensitive heap contents for KASLR defeat.\nI:N - The defect is read-only: check_special_flags() only dereferences bytes beyond the allocation and sets flags on the soon-freed Node; it performs no out-of-bounds write, metadata corruption, or control-flow hijack primitive.\nA:H - The unbounded flag scan can walk into an unmapped page and fault the kernel; KASAN reports slab-out-of-bounds, and the single write() to register is trivially repeatable for denial-of-service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:40.898Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/96bd5d4fea2970b9b08265293ca7a10b9b27c0fd"
},
{
"url": "https://git.kernel.org/stable/c/9970e094e5d60f0d66914bf9a97d1ef19107ebf5"
},
{
"url": "https://git.kernel.org/stable/c/b29e3c1f375c1296362d219ff38bceddf2d2a88a"
},
{
"url": "https://git.kernel.org/stable/c/1819f82dee766c58295ecaacdac02cdf6837d7a4"
},
{
"url": "https://git.kernel.org/stable/c/1853e95c9bfe69ef1dd862b3f551e68f4a1b76cc"
},
{
"url": "https://git.kernel.org/stable/c/840bb9c49c3e75fb32b593d67ab32f6b77122262"
},
{
"url": "https://git.kernel.org/stable/c/9a2d87db3898b5993b64fd258d0334e0eba9ee0d"
},
{
"url": "https://git.kernel.org/stable/c/8e85d50ba1117fd446bf9a250bd8a97d48384bdc"
}
],
"title": "binfmt_misc: reject a flag character as the field delimiter",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74485",
"datePublished": "2026-08-15T12:27:16.980Z",
"dateReserved": "2026-08-15T05:44:03.905Z",
"dateUpdated": "2026-10-16T19:05:49.285Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90292 (GCVE-0-2026-90292)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/siw: Fix use-after-free in siw_accept()
siw_accept() looks up the QP supplied by userspace. If that QP is
already in RTS, the function jumps to error cleanup before associating
the incoming CEP with it.
The cleanup tests whether qp->cep is non-NULL and assumes the current
call installed the association. However, qp->cep can point to the CEP
of an existing connection. The cleanup then drops a reference from the
incoming cep, not qp->cep. Once the incoming endpoint loses its
remaining references, this can free it before the subsequent cep->qp
store, causing a use-after-free. It also clears the existing QP
association.
Only release the association reference when qp->cep is the incoming
CEP. This preserves an existing association and avoids accessing the
freed endpoint.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 Version: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/siw/siw_cm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d57db36e74cca4763e1c2c0c6eb9f84d19813879",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "59de5502f32895ffe9c45530327ed997b90fdf06",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "a89d120615e711ce8fce551fd291c2f387666735",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "b9e7d3d9fdb2bfcfb25d93529fdf766536b37c78",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "8f286a8094ee32c415f9ecd2c20765beb8a18c79",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "de603f01d9ccf823e575b013ffd86ebedca9a8c5",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "561651d6a15588cee2040755f253faca2463415c",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "a9394971825933074032794a5feee5211509c774",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/siw/siw_cm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/siw: Fix use-after-free in siw_accept()\n\nsiw_accept() looks up the QP supplied by userspace. If that QP is\nalready in RTS, the function jumps to error cleanup before associating\nthe incoming CEP with it.\n\nThe cleanup tests whether qp-\u003ecep is non-NULL and assumes the current\ncall installed the association. However, qp-\u003ecep can point to the CEP\nof an existing connection. The cleanup then drops a reference from the\nincoming cep, not qp-\u003ecep. Once the incoming endpoint loses its\nremaining references, this can free it before the subsequent cep-\u003eqp\nstore, causing a use-after-free. It also clears the existing QP\nassociation.\n\nOnly release the association reference when qp-\u003ecep is the incoming\nCEP. This preserves an existing association and avoids accessing the\nfreed endpoint."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The triggering value is params-\u003eqpn of a QP already in RTS, supplied by RDMA_USER_CM_CMD_ACCEPT on /dev/infiniband/rdma_cm (ucma_accept \u2192 cma_accept_iw \u2192 iw_cm_accept \u2192 siw_accept \u2192 siw_qp_id2obj). A remote MPA/TCP connect only moves the CEP to SIW_EPSTATE_RECVD_MPAREQ; it does not carry that QPN or RTS state.\nAC:L - After one successful siw_accept() leaves qp-\u003eattrs.state at SIW_QP_STATE_RTS with qp-\u003ecep set, a second accept of that qpn with id-\u003eqp NULL (cma_modify_qp_rtr is a no-op) always takes `if (qp-\u003eattrs.state \u003e SIW_QP_STATE_RTR) goto error_unlock`. siw_destroy_cep_sock() then drops the socket kref so the extra siw_cep_put() frees the incoming cep with no race.\nPR:L - ib_uverbs_open() and ucma_open() have no capable() check and both nodes are mode 0666. An unprivileged user can siw_create_qp, rdma_listen on a port \u22651024, loopback-connect, and reach siw_accept; none of those paths require init-namespace root.\nUI:N - The attacker issues listen, the loopback connect that yields SIW_EPSTATE_RECVD_MPAREQ, the first accept that puts the QP in RTS, and the second RDMA_USER_CM_CMD_ACCEPT with that qpn; no other user must mount, open, or confirm anything.\nS:U - The UAF is of a host-kernel struct siw_cep kfree\u0027d in __siw_cep_dealloc(); resulting slab corruption stays in the same kernel authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - The extra siw_cep_put() on the incoming cep can run __siw_cep_dealloc()/kfree while cep-\u003eqp = NULL and siw_cep_set_free_and_put() still execute. Reclaiming that kmalloc siw_cep discloses kernel memory through the UAF.\nI:H - The post-free store to cep-\u003eqp, the second kref_put in siw_cep_set_free_and_put(), and qp-\u003ecep = NULL clearing the live QP association are writes into a reclaimable cep (including saved sk_* callbacks), enabling arbitrary write and control-flow hijack.\nA:H - siw_accept() continues to dereference the incoming cep after the extra put has freed it, and then puts it again, so the kernel oopses or panics even if the slab object is not reused."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:10.469Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d57db36e74cca4763e1c2c0c6eb9f84d19813879"
},
{
"url": "https://git.kernel.org/stable/c/59de5502f32895ffe9c45530327ed997b90fdf06"
},
{
"url": "https://git.kernel.org/stable/c/a89d120615e711ce8fce551fd291c2f387666735"
},
{
"url": "https://git.kernel.org/stable/c/b9e7d3d9fdb2bfcfb25d93529fdf766536b37c78"
},
{
"url": "https://git.kernel.org/stable/c/8f286a8094ee32c415f9ecd2c20765beb8a18c79"
},
{
"url": "https://git.kernel.org/stable/c/de603f01d9ccf823e575b013ffd86ebedca9a8c5"
},
{
"url": "https://git.kernel.org/stable/c/561651d6a15588cee2040755f253faca2463415c"
},
{
"url": "https://git.kernel.org/stable/c/a9394971825933074032794a5feee5211509c774"
}
],
"title": "RDMA/siw: Fix use-after-free in siw_accept()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90292",
"datePublished": "2026-09-17T16:08:19.350Z",
"dateReserved": "2026-09-11T19:38:34.798Z",
"dateUpdated": "2026-10-19T09:01:10.469Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89686 (GCVE-0-2026-89686)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix BUG_ON in nfsd4_alloc_layout_stateid on racing delegation revoke
nfsd4_alloc_layout_stateid reads fp->fi_deleg_file without holding
fi_lock when the parent stateid is a delegation. A concurrent delegation
revoke via the laundromat can clear fi_deleg_file under fi_lock, causing
nfsd_file_get() to return NULL and triggering the BUG_ON.
This race is client-reachable: two NFS clients can trigger it by having
one hold a delegation while another opens the same file to force a
recall. When the first client doesn't respond to the recall, the
laundromat revokes it. A concurrent LAYOUTGET from any client using the
delegation stateid hits the race window.
Fix this by taking fi_lock around the fi_deleg_file read in the
SC_TYPE_DELEG path, matching the locking discipline of the
find_any_file() arm, and replacing the BUG_ON with a graceful error
return that cleans up the partially-initialized layout stateid.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89686",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:03.140311Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:48.827Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4layouts.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d12af460df27876661707efab3a8532146cb961f",
"status": "affected",
"version": "c5c707f96fc9a6e5a57ca5baac892673270abe3d",
"versionType": "git"
},
{
"lessThan": "c517f27498757e616d2a8fe6d16caad1fee422e6",
"status": "affected",
"version": "c5c707f96fc9a6e5a57ca5baac892673270abe3d",
"versionType": "git"
},
{
"lessThan": "607a56fea772c1f4f4989d8e255dd4f7192d9604",
"status": "affected",
"version": "c5c707f96fc9a6e5a57ca5baac892673270abe3d",
"versionType": "git"
},
{
"lessThan": "97bda8b4284d90897a1f1922e5082ff9e35d7c7e",
"status": "affected",
"version": "c5c707f96fc9a6e5a57ca5baac892673270abe3d",
"versionType": "git"
},
{
"lessThan": "ca94ba36172046be6a694a7986f6931e47ed4d51",
"status": "affected",
"version": "c5c707f96fc9a6e5a57ca5baac892673270abe3d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4layouts.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.0"
},
{
"lessThan": "4.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix BUG_ON in nfsd4_alloc_layout_stateid on racing delegation revoke\n\nnfsd4_alloc_layout_stateid reads fp-\u003efi_deleg_file without holding\nfi_lock when the parent stateid is a delegation. A concurrent delegation\nrevoke via the laundromat can clear fi_deleg_file under fi_lock, causing\nnfsd_file_get() to return NULL and triggering the BUG_ON.\n\nThis race is client-reachable: two NFS clients can trigger it by having\none hold a delegation while another opens the same file to force a\nrecall. When the first client doesn\u0027t respond to the recall, the\nlaundromat revokes it. A concurrent LAYOUTGET from any client using the\ndelegation stateid hits the race window.\n\nFix this by taking fi_lock around the fi_deleg_file read in the\nSC_TYPE_DELEG path, matching the locking discipline of the\nfind_any_file() arm, and replacing the BUG_ON with a graceful error\nreturn that cleans up the partially-initialized layout stateid."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in nfsd pNFS LAYOUTGET (nfsd4_alloc_layout_stateid in fs/nfsd/nfs4layouts.c). A remote NFSv4.1 client reaches it over TCP/2049 via nfsd_dispatch to nfsd4_proc_compound to nfsd4_layoutget, so no local access to the NFS server is required.\nAC:L - The attacker controls both sides of the race: one NFS client obtains a delegation while another OPENs the same file to force recall, then the first client withholds CB_RECALL and issues concurrent LAYOUTGET with the delegation stateid as the laundromat runs put_deleg_file. The sequence is retryable and can be timed using FATTR4_LEASE_TIME.\nPR:N - Typical nfsd deployments accept AUTH_SYS/AUTH_NULL without cryptographic authentication. Any host allowed by the export ACL can EXCHANGE_ID/CREATE_SESSION, OPEN to receive a delegation, and LAYOUTGET; no local account or capability on the NFS server is required.\nUI:N - The attacking NFS clients drive the OPEN, recall, and LAYOUTGET compounds themselves against an already-running nfsd export. No victim user action such as mounting a filesystem or opening a file on the server is required.\nS:U - The unlocked fi_deleg_file load and resulting BUG_ON or nfsd_file use-after-free occur in kernel nfsd state on the NFS server host. Impact stays in that kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - put_deleg_file may drop the last nfsd_file ref and call_rcu-free it (KMEM_CACHE flags 0, not SLAB_TYPESAFE_BY_RCU) while LAYOUTGET still calls nfsd_file_get on the stale pointer. After slab reuse the layout stateid\u0027s nf_file can be leveraged for kernel information disclosure.\nI:H - The same stale nfsd_file pointer is used for refcount_inc_not_zero and later nfsd4_layout_setlease/kernel_setlease on nf_file. Heap reuse of the nfsd_file slab enables an arbitrary write or control-flow hijack per kernel UAF scoring guidance.\nA:H - When nfsd_file_get returns NULL the original code hits BUG_ON(!ls-\u003els_file), oopsing or panicking the nfsd thread. Even without that assertion, use-after-free of nfsd_file crashes nfsd, and the attacker can repeat LAYOUTGET to deny NFS service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:21.196Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d12af460df27876661707efab3a8532146cb961f"
},
{
"url": "https://git.kernel.org/stable/c/c517f27498757e616d2a8fe6d16caad1fee422e6"
},
{
"url": "https://git.kernel.org/stable/c/607a56fea772c1f4f4989d8e255dd4f7192d9604"
},
{
"url": "https://git.kernel.org/stable/c/97bda8b4284d90897a1f1922e5082ff9e35d7c7e"
},
{
"url": "https://git.kernel.org/stable/c/ca94ba36172046be6a694a7986f6931e47ed4d51"
}
],
"title": "nfsd: fix BUG_ON in nfsd4_alloc_layout_stateid on racing delegation revoke",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89686",
"datePublished": "2026-09-11T19:46:07.877Z",
"dateReserved": "2026-09-11T19:38:34.749Z",
"dateUpdated": "2026-10-21T12:48:21.196Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72161 (GCVE-0-2026-72161)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-17 05:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: add journal NULL check in ocfs2_checkpoint_inode()
During unmount, ocfs2_journal_shutdown() frees the journal and sets
osb->journal to NULL. Later, when VFS evicts remaining cached inodes,
ocfs2_evict_inode() -> ocfs2_clear_inode() -> ocfs2_checkpoint_inode()
-> ocfs2_ci_fully_checkpointed() dereferences osb->journal, causing a
NULL pointer dereference.
Fix this by adding a NULL check for osb->journal in
ocfs2_checkpoint_inode(). If the journal is NULL, it has already been
fully flushed and destroyed during shutdown, so there is nothing to
checkpoint.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 Version: da5e7c87827e8caa6a1eeec6d95dcf74ab592a01 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/journal.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "24daf13422e8328fd588c34a017bdef1949910e8",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
},
{
"lessThan": "7da7e4ac21895fe34cceffcfc99497cc2750da99",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
},
{
"lessThan": "eb6a13834c23e291f1170cb1b489ec255edfa5a3",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
},
{
"lessThan": "499714de42ab4d2e778cbb10186684142a1222eb",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
},
{
"lessThan": "63921f790234b221e4b15c56c72888b13250f81d",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
},
{
"lessThan": "a291c77c034b7a81849ce9b71cc9ecda9e587d89",
"status": "affected",
"version": "da5e7c87827e8caa6a1eeec6d95dcf74ab592a01",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/journal.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.16"
},
{
"lessThan": "5.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: add journal NULL check in ocfs2_checkpoint_inode()\n\nDuring unmount, ocfs2_journal_shutdown() frees the journal and sets\nosb-\u003ejournal to NULL. Later, when VFS evicts remaining cached inodes,\nocfs2_evict_inode() -\u003e ocfs2_clear_inode() -\u003e ocfs2_checkpoint_inode()\n-\u003e ocfs2_ci_fully_checkpointed() dereferences osb-\u003ejournal, causing a\nNULL pointer dereference.\n\nFix this by adding a NULL check for osb-\u003ejournal in\nocfs2_checkpoint_inode(). If the journal is NULL, it has already been\nfully flushed and destroyed during shutdown, so there is nothing to\ncheckpoint."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:09:21.902Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/24daf13422e8328fd588c34a017bdef1949910e8"
},
{
"url": "https://git.kernel.org/stable/c/7da7e4ac21895fe34cceffcfc99497cc2750da99"
},
{
"url": "https://git.kernel.org/stable/c/eb6a13834c23e291f1170cb1b489ec255edfa5a3"
},
{
"url": "https://git.kernel.org/stable/c/499714de42ab4d2e778cbb10186684142a1222eb"
},
{
"url": "https://git.kernel.org/stable/c/63921f790234b221e4b15c56c72888b13250f81d"
},
{
"url": "https://git.kernel.org/stable/c/a291c77c034b7a81849ce9b71cc9ecda9e587d89"
}
],
"title": "ocfs2: add journal NULL check in ocfs2_checkpoint_inode()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72161",
"datePublished": "2026-08-15T05:53:29.670Z",
"dateReserved": "2026-08-09T03:40:39.909Z",
"dateUpdated": "2026-08-17T05:09:21.902Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80852 (GCVE-0-2026-80852)
Vulnerability from cvelistv5
Published
2026-09-04 15:55
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tls: device: fix out-of-bounds write in tls_append_frag()
Found with syzkaller and a local syzbot instance running on top of a
netdevsim TLS offload emulation; tls_device.c is otherwise only reachable
on a machine with a NIC that implements the offload.
tls_push_data() only checks whether the open record still has room for
another frag at the bottom of its loop, and the MSG_MORE early break
skips that check. The record survives to the next syscall with the frag
count it already had, and tls_append_frag() does not check either, so
with TLS_TX_ZEROCOPY_RO every splice(SPLICE_F_MORE) of a byte or two adds
a non-coalescing pipe page and num_frags walks off the end of
tls_record_info.frags[MAX_SKB_FRAGS]. Once the record is pushed,
tls_push_record() runs the same index over sg_tx_data[MAX_SKB_FRAGS] and
the sg_set_page() writes land on the destruct_work that follows it, which
the workqueue then calls.
The byte limit is fine because copy drops to 0 and the loop falls through
to the same check; the frag count has no such feedback.
Push the record rather than keep a full one open, which is what a plain
TCP socket does - tcp_sendmsg_locked() uses tcp_mark_push() and
new_segment in both the copy and the MSG_SPLICE_PAGES paths, and tls_sw
already sets full_record when the sk_msg ring fills up, MSG_MORE or not.
BUG: KASAN: slab-out-of-bounds in tls_append_frag ( net/tls/tls_device.c:269)
Write of size 8 at addr ffff8881104d1530 by task tls_oob/450
CPU: 2 UID: 0 PID: 450 Comm: tls_oob Not tainted 7.2.0-rc7+ #329 PREEMPT
Call Trace:
<TASK>
dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)
print_report (mm/kasan/report.c:378 mm/kasan/report.c:482)
kasan_report (mm/kasan/report.c:595)
tls_append_frag (net/tls/tls_device.c:269)
tls_push_data (net/tls/tls_device.c:518)
tls_device_sendmsg (net/tls/tls_device.c:583)
inet_sendmsg (net/ipv4/af_inet.c:865)
sock_sendmsg (net/socket.c:775 net/socket.c:790 net/socket.c:813)
splice_to_socket (fs/splice.c:884)
do_splice (fs/splice.c:936 fs/splice.c:1349)
__do_splice (fs/splice.c:1431)
__x64_sys_splice (fs/splice.c:1634 fs/splice.c:1616)
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:121)
</TASK>
and, once the record is pushed:
UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:300:24
index 18 is out of range for type 'skb_frag_t [17]'
UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:301:41
index 18 is out of range for type 'scatterlist [17]'
UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:302:39
index 18 is out of range for type 'scatterlist [17]'
UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:307:38
index 26 is out of range for type 'scatterlist [17]'
kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
BUG: unable to handle page fault for address: ffffea000411a680
#PF: supervisor instruction fetch in kernel mode
#PF: error_code(0x0011) - permissions violation
Oops: Oops: 0011 [#1] SMP KASAN PTI
Workqueue: ktls_device_destruct 0xffffea000411a680
RIP: 0010:0xffffea000411a680
Call Trace:
<TASK>
worker_thread (kernel/workqueue.c:3405 kernel/workqueue.c:3486)
kthread (kernel/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
</TASK>
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f Version: e8f69799810c32dd40c6724d829eccc70baad07f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "03ced5da6120965d80ed56dbb7d78fa5c9128906",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "a832d7cb09da2a8e4e9734b4be14d3e76169d805",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "b7f10d4ff987bda038df90052cd4a1434a7412d4",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "fadbc1ed2a872a8649a44cf9e1cf9621fc58cd6e",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "cd7e875b89597f3498917af764758391338d1802",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "7e1208c135618358da5d7d6664874dc6e53c62fc",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
},
{
"lessThan": "b17cf742eaad70ae29ac558cefb3aa9bbeea03d4",
"status": "affected",
"version": "e8f69799810c32dd40c6724d829eccc70baad07f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntls: device: fix out-of-bounds write in tls_append_frag()\n\nFound with syzkaller and a local syzbot instance running on top of a\nnetdevsim TLS offload emulation; tls_device.c is otherwise only reachable\non a machine with a NIC that implements the offload.\n\ntls_push_data() only checks whether the open record still has room for\nanother frag at the bottom of its loop, and the MSG_MORE early break\nskips that check. The record survives to the next syscall with the frag\ncount it already had, and tls_append_frag() does not check either, so\nwith TLS_TX_ZEROCOPY_RO every splice(SPLICE_F_MORE) of a byte or two adds\na non-coalescing pipe page and num_frags walks off the end of\ntls_record_info.frags[MAX_SKB_FRAGS]. Once the record is pushed,\ntls_push_record() runs the same index over sg_tx_data[MAX_SKB_FRAGS] and\nthe sg_set_page() writes land on the destruct_work that follows it, which\nthe workqueue then calls.\n\nThe byte limit is fine because copy drops to 0 and the loop falls through\nto the same check; the frag count has no such feedback.\n\nPush the record rather than keep a full one open, which is what a plain\nTCP socket does - tcp_sendmsg_locked() uses tcp_mark_push() and\nnew_segment in both the copy and the MSG_SPLICE_PAGES paths, and tls_sw\nalready sets full_record when the sk_msg ring fills up, MSG_MORE or not.\n\n BUG: KASAN: slab-out-of-bounds in tls_append_frag ( net/tls/tls_device.c:269)\n Write of size 8 at addr ffff8881104d1530 by task tls_oob/450\n\n CPU: 2 UID: 0 PID: 450 Comm: tls_oob Not tainted 7.2.0-rc7+ #329 PREEMPT\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)\n print_report (mm/kasan/report.c:378 mm/kasan/report.c:482)\n kasan_report (mm/kasan/report.c:595)\n tls_append_frag (net/tls/tls_device.c:269)\n tls_push_data (net/tls/tls_device.c:518)\n tls_device_sendmsg (net/tls/tls_device.c:583)\n inet_sendmsg (net/ipv4/af_inet.c:865)\n sock_sendmsg (net/socket.c:775 net/socket.c:790 net/socket.c:813)\n splice_to_socket (fs/splice.c:884)\n do_splice (fs/splice.c:936 fs/splice.c:1349)\n __do_splice (fs/splice.c:1431)\n __x64_sys_splice (fs/splice.c:1634 fs/splice.c:1616)\n do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94)\n entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)\n \u003c/TASK\u003e\n\nand, once the record is pushed:\n\n UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:300:24\n index 18 is out of range for type \u0027skb_frag_t [17]\u0027\n UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:301:41\n index 18 is out of range for type \u0027scatterlist [17]\u0027\n UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:302:39\n index 18 is out of range for type \u0027scatterlist [17]\u0027\n UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:307:38\n index 26 is out of range for type \u0027scatterlist [17]\u0027\n\n kernel tried to execute NX-protected page - exploit attempt? (uid: 0)\n BUG: unable to handle page fault for address: ffffea000411a680\n #PF: supervisor instruction fetch in kernel mode\n #PF: error_code(0x0011) - permissions violation\n Oops: Oops: 0011 [#1] SMP KASAN PTI\n Workqueue: ktls_device_destruct 0xffffea000411a680\n RIP: 0010:0xffffea000411a680\n Call Trace:\n \u003cTASK\u003e\n worker_thread (kernel/workqueue.c:3405 kernel/workqueue.c:3486)\n kthread (kernel/kthread.c:436)\n ret_from_fork (arch/x86/kernel/process.c:158)\n ret_from_fork_asm (arch/x86/entry/entry_64.S:245)\n \u003c/TASK\u003e"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:46.363Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/03ced5da6120965d80ed56dbb7d78fa5c9128906"
},
{
"url": "https://git.kernel.org/stable/c/a832d7cb09da2a8e4e9734b4be14d3e76169d805"
},
{
"url": "https://git.kernel.org/stable/c/b7f10d4ff987bda038df90052cd4a1434a7412d4"
},
{
"url": "https://git.kernel.org/stable/c/fadbc1ed2a872a8649a44cf9e1cf9621fc58cd6e"
},
{
"url": "https://git.kernel.org/stable/c/cd7e875b89597f3498917af764758391338d1802"
},
{
"url": "https://git.kernel.org/stable/c/7e1208c135618358da5d7d6664874dc6e53c62fc"
},
{
"url": "https://git.kernel.org/stable/c/b17cf742eaad70ae29ac558cefb3aa9bbeea03d4"
}
],
"title": "tls: device: fix out-of-bounds write in tls_append_frag()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80852",
"datePublished": "2026-09-04T15:55:02.806Z",
"dateReserved": "2026-08-26T14:34:25.797Z",
"dateUpdated": "2026-10-19T08:44:46.363Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74606 (GCVE-0-2026-74606)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-08-25 05:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
eventfs: Fix use-after-free in eventfs_remove_rec()
eventfs_remove_rec() recursively removes the child at the current loop
position. After the recursive call returns, list_for_each_entry() advances
by reading list.next from the removed child.
If free_ei() drops the final reference, release_ei() reuses the list/rcu
union to queue an SRCU callback. The child may be freed before that read.
The eventfs_mutex serializes list updates, but it does not keep the removed
child alive or prevent the SRCU callback from running.
Use list_for_each_entry_safe() to save the next sibling before recursively
removing the current child.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5dfb04100326f70e3b2d2872c2476ed20b804837 Version: 43aa6f97c2d03a52c1ddb86768575fc84344bdbb Version: 43aa6f97c2d03a52c1ddb86768575fc84344bdbb Version: 43aa6f97c2d03a52c1ddb86768575fc84344bdbb Version: 43aa6f97c2d03a52c1ddb86768575fc84344bdbb Version: 5a43badefe0eccca0c26144c0a44b8d417ce8103 Version: 6.6.18 ≤ Version: 6.7.6 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/tracefs/event_inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b77581b25e213e83b79ce11eb30024e55ceeb3e9",
"status": "affected",
"version": "5dfb04100326f70e3b2d2872c2476ed20b804837",
"versionType": "git"
},
{
"lessThan": "f161d7861a0bfdf10af6b738b3b57636204661fb",
"status": "affected",
"version": "43aa6f97c2d03a52c1ddb86768575fc84344bdbb",
"versionType": "git"
},
{
"lessThan": "5635211b44969f4816e29ec4d5f8665fb39535d0",
"status": "affected",
"version": "43aa6f97c2d03a52c1ddb86768575fc84344bdbb",
"versionType": "git"
},
{
"lessThan": "74bb1eaf72d185a78c879eb2678ea500f82f46a8",
"status": "affected",
"version": "43aa6f97c2d03a52c1ddb86768575fc84344bdbb",
"versionType": "git"
},
{
"lessThan": "fd73b691702170d37d66f4b0278530cea8ed419a",
"status": "affected",
"version": "43aa6f97c2d03a52c1ddb86768575fc84344bdbb",
"versionType": "git"
},
{
"status": "affected",
"version": "5a43badefe0eccca0c26144c0a44b8d417ce8103",
"versionType": "git"
},
{
"lessThan": "6.6.152",
"status": "affected",
"version": "6.6.18",
"versionType": "semver"
},
{
"lessThan": "6.8",
"status": "affected",
"version": "6.7.6",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/tracefs/event_inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "6.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.7.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\neventfs: Fix use-after-free in eventfs_remove_rec()\n\neventfs_remove_rec() recursively removes the child at the current loop\nposition. After the recursive call returns, list_for_each_entry() advances\nby reading list.next from the removed child.\n\nIf free_ei() drops the final reference, release_ei() reuses the list/rcu\nunion to queue an SRCU callback. The child may be freed before that read.\nThe eventfs_mutex serializes list updates, but it does not keep the removed\nchild alive or prevent the SRCU callback from running.\n\nUse list_for_each_entry_safe() to save the next sibling before recursively\nremoving the current child."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - eventfs_remove_rec() is only reached via eventfs_remove_dir()/eventfs_remove_events_dir() during tracefs event teardown (instance rmdir, dynamic event removal, module unload); tracefs is a local pseudo-fs under /sys/kernel/tracing with no network, adjacent, or physical entry path.\nAC:L - The UAF is deterministic whenever a parent eventfs_inode has 2+ children: after recursively freeing the first child, list_for_each_entry() reads list.next from repurposed freed memory; an attacker can create multiple trace events then trigger parent teardown without uncontrollable races.\nPR:L - Exploitation needs local tracefs write (kprobe_events/dynamic_events to create events, rmdir on tracing instances); paths check LOCKDOWN_TRACEFS and DAC without capable(), and tracing-group gid mounts on Android/ChromeOS/dev systems commonly grant this to unprivileged users.\nUI:N - The attacker performs all tracefs operations to create multiple eventfs children and invoke teardown in their own session; no separate victim mount, click, or configuration action is required beyond tracefs already being accessible.\nS:U - The UAF corrupts kernel heap within the tracing/eventfs subsystem on the same host; it enables local privilege escalation but does not cross VM, IOMMU, container, or other security boundaries to a different authority.\nC:H - After free_ei(), release_ei() reuses the child\u0027s list/rcu union for SRCU teardown; list_for_each_entry() then reads list.next from freed/repurposed eventfs_inode memory, a standard kernel UAF read and information-disclosure primitive.\nI:H - Freed eventfs_inode slabs can be attacker-influenced via repeated trace-event create/delete; the corrupt sibling traversal enables heap grooming for arbitrary kernel writes and local privilege escalation, not merely a bounded crash.\nA:H - Reading list.next from a freed/repurposed eventfs_inode during recursive removal reliably causes invalid pointer dereferences, kernel oops, or panic; the fault is retriggerable by repeating trace-event setup and teardown cycles."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:31.060Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b77581b25e213e83b79ce11eb30024e55ceeb3e9"
},
{
"url": "https://git.kernel.org/stable/c/f161d7861a0bfdf10af6b738b3b57636204661fb"
},
{
"url": "https://git.kernel.org/stable/c/5635211b44969f4816e29ec4d5f8665fb39535d0"
},
{
"url": "https://git.kernel.org/stable/c/74bb1eaf72d185a78c879eb2678ea500f82f46a8"
},
{
"url": "https://git.kernel.org/stable/c/fd73b691702170d37d66f4b0278530cea8ed419a"
}
],
"title": "eventfs: Fix use-after-free in eventfs_remove_rec()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74606",
"datePublished": "2026-08-22T15:31:53.819Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-08-25T05:40:31.060Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68096 (GCVE-0-2026-68096)
Vulnerability from cvelistv5
Published
2026-08-10 11:58
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
audit: fix recursive locking deadlock in audit_dupe_exe()
A deadlock occurs in the audit subsystem when duplicating
executable-related rules.
When a file is moved (e.g., via do_renameat2()), the VFS layer locks
the parent directory (I_MUTEX_PARENT), which synchronously triggers an
fsnotify_move event. If an existing executable audit rule matches the
file being moved, the audit subsystem catches this event and calls
audit_dupe_exe() to duplicate the watch and update the rule. Then,
audit_alloc_mark() would call kern_path_parent() to resolve the path,
leading to a blind attempt to acquire the exact same I_MUTEX_PARENT lock
already held by the task, resulting in the following recursive locking
deadlock:
============================================
WARNING: possible recursive locking detected
6.12.0-55.27.1.el10_0.x86_64+debug #1 Not tainted
--------------------------------------------
mv/5099 is trying to acquire lock:
ffff888132845358 (&inode->i_sb->s_type->i_mutex_dir_key/1){+.+.}-{3:3},
at: __kern_path_locked+0x10a/0x2f0
but task is already holding lock:
ffff888132846b58 (&inode->i_sb->s_type->i_mutex_dir_key/1){+.+.}-{3:3},
at: lock_two_directories+0x13f/0x2b0
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&inode->i_sb->s_type->i_mutex_dir_key/1);
lock(&inode->i_sb->s_type->i_mutex_dir_key/1);
*** DEADLOCK ***
May be due to missing lock nesting notation
6 locks held by mv/5099:
#0: ffff888112a9c440 (sb_writers#13)
at: do_renameat2+0x34c/0xbc0
#1: ffff888112a9c790 (&type->s_vfs_rename_key#3)
at: do_renameat2+0x415/0xbc0
#2: ffff888132846b58 (&inode->i_sb->s_type->i_mutex_dir_key/1)
at: lock_two_directories+0x13f/0x2b0
#3: ffff888132845358 (&inode->i_sb->s_type->i_mutex_dir_key/5)
at: lock_two_directories+0x175/0x2b0
#4: ffffffffb3a1fb10 (&fsnotify_mark_srcu)
at: fsnotify+0x454/0x28a0
#5: ffffffffaf886230 (audit_filter_mutex)
at: audit_update_watch+0x36/0x11e0
stack backtrace:
Call Trace:
<TASK>
dump_stack_lvl+0x6f/0xb0
print_deadlock_bug.cold+0xbd/0xca
validate_chain+0x83a/0xf00
__lock_acquire+0xcac/0x1d20
lock_acquire.part.0+0x11b/0x360
down_write_nested+0x9f/0x230
__kern_path_locked+0x10a/0x2f0
kern_path_locked+0x26/0x40
audit_alloc_mark+0xfb/0x4f0
audit_dupe_exe+0x6c/0xe0
audit_dupe_rule+0x6c2/0xc00
audit_update_watch+0x4cc/0x11e0
audit_watch_handle_event+0x12c/0x1b0
send_to_group+0x5d0/0x8b0
fsnotify+0x615/0x28a0
fsnotify_move+0x1d8/0x630
vfs_rename+0xdcd/0x1df0
do_renameat2+0x9d4/0xbc0
__x64_sys_renameat+0x192/0x260
do_syscall_64+0x92/0x180
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7f0491fe8c4e
Code: 0f 1f 40 00 48 8b 15 c1 e1 16 00 f7 d8 64 89 02 b8 ff ff ff ff
c3 66 0f 1f 44 00 00 f3 0f 1e fa 49 89 ca b8 08 01 00 00 0f 05 <48>
3d 00 f0 ff ff 77 0a c3 66 0f 1f 84 00 00 00 00 00 48 8b 15 89
RSP: 002b:00007ffc7210bf38 EFLAGS: 00000246 ORIG_RAX: 0000000000000108
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0491fe8c4e
RDX: 0000000000000003 RSI: 00007ffc7210e6c8 RDI: 00000000ffffff9c
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001
R10: 00005575eb2dae2a R11: 0000000000000246 R12: 00005575eb2dae2a
R13: 00007ffc7210e6c8 R14: 0000000000000003 R15: 00000000ffffff9c
</TASK>
The aforementioned deadlock can be consistently reproduced by running
the script below:
audit-dupe-exe-deadlock.sh
--------------------------
#!/bin/bash
auditctl -D
mkdir -p /tmp/foo
touch /tmp/file
auditctl -a always,exit -F exe=/tmp/file -F path=/tmp/file -S all -k dr
mv /tmp/file /tmp/foo/file
rm -Rf /tmp/foo
This patch fixes the issue by introducing struct audit_watch_ctx to pass
the fsnotify event context down to audit_alloc_mark(). By utilizing the
already-resolved directory inode provided by the event, we bypass the
kern_path_parent() path resol
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Version: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68096",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:41.034865Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-835",
"description": "CWE-835 Loop with Unreachable Exit Condition (\u0027Infinite Loop\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:44.598Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/audit.h",
"kernel/audit_fsnotify.c",
"kernel/audit_watch.c",
"kernel/auditfilter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6114c3f21eb2ae175401736da744b684705e7ed9",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "f6fda0ac6661c23b8356dfb1cc423960cc6f0593",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "3bbb4931f7cd84cecf29ec222c0732bf9ad4da9f",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "36eb77f14b4e6f2dc1008c1fabe31236397be27a",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "7d1f66c69898ffb1a718926c32a777ecc471caca",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "40879c39d6740f3dddfb52b5d6ba7fb8cceb84d8",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "3b601938314c24fcd1afb6659cad92fe96c9c2f8",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
},
{
"lessThan": "81905b5acbe77284734438df3fbec1158e6429a3",
"status": "affected",
"version": "34d99af52ad40bd498ba66970579a5bc1fb1a3bc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/audit.h",
"kernel/audit_fsnotify.c",
"kernel/audit_watch.c",
"kernel/auditfilter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.3"
},
{
"lessThan": "4.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\naudit: fix recursive locking deadlock in audit_dupe_exe()\n\nA deadlock occurs in the audit subsystem when duplicating\nexecutable-related rules.\n\nWhen a file is moved (e.g., via do_renameat2()), the VFS layer locks\nthe parent directory (I_MUTEX_PARENT), which synchronously triggers an\nfsnotify_move event. If an existing executable audit rule matches the\nfile being moved, the audit subsystem catches this event and calls\naudit_dupe_exe() to duplicate the watch and update the rule. Then,\naudit_alloc_mark() would call kern_path_parent() to resolve the path,\nleading to a blind attempt to acquire the exact same I_MUTEX_PARENT lock\nalready held by the task, resulting in the following recursive locking\ndeadlock:\n\n ============================================\n WARNING: possible recursive locking detected\n 6.12.0-55.27.1.el10_0.x86_64+debug #1 Not tainted\n --------------------------------------------\n mv/5099 is trying to acquire lock:\n ffff888132845358 (\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/1){+.+.}-{3:3},\n at: __kern_path_locked+0x10a/0x2f0\n\n but task is already holding lock:\n ffff888132846b58 (\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/1){+.+.}-{3:3},\n at: lock_two_directories+0x13f/0x2b0\n\n other info that might help us debug this:\n Possible unsafe locking scenario:\n\n CPU0\n ----\n lock(\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/1);\n lock(\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/1);\n\n *** DEADLOCK ***\n\n May be due to missing lock nesting notation\n\n 6 locks held by mv/5099:\n #0: ffff888112a9c440 (sb_writers#13)\n at: do_renameat2+0x34c/0xbc0\n #1: ffff888112a9c790 (\u0026type-\u003es_vfs_rename_key#3)\n at: do_renameat2+0x415/0xbc0\n #2: ffff888132846b58 (\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/1)\n at: lock_two_directories+0x13f/0x2b0\n #3: ffff888132845358 (\u0026inode-\u003ei_sb-\u003es_type-\u003ei_mutex_dir_key/5)\n at: lock_two_directories+0x175/0x2b0\n #4: ffffffffb3a1fb10 (\u0026fsnotify_mark_srcu)\n at: fsnotify+0x454/0x28a0\n #5: ffffffffaf886230 (audit_filter_mutex)\n at: audit_update_watch+0x36/0x11e0\n\n stack backtrace:\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x6f/0xb0\n print_deadlock_bug.cold+0xbd/0xca\n validate_chain+0x83a/0xf00\n __lock_acquire+0xcac/0x1d20\n lock_acquire.part.0+0x11b/0x360\n down_write_nested+0x9f/0x230\n __kern_path_locked+0x10a/0x2f0\n kern_path_locked+0x26/0x40\n audit_alloc_mark+0xfb/0x4f0\n audit_dupe_exe+0x6c/0xe0\n audit_dupe_rule+0x6c2/0xc00\n audit_update_watch+0x4cc/0x11e0\n audit_watch_handle_event+0x12c/0x1b0\n send_to_group+0x5d0/0x8b0\n fsnotify+0x615/0x28a0\n fsnotify_move+0x1d8/0x630\n vfs_rename+0xdcd/0x1df0\n do_renameat2+0x9d4/0xbc0\n __x64_sys_renameat+0x192/0x260\n do_syscall_64+0x92/0x180\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n RIP: 0033:0x7f0491fe8c4e\n Code: 0f 1f 40 00 48 8b 15 c1 e1 16 00 f7 d8 64 89 02 b8 ff ff ff ff\n c3 66 0f 1f 44 00 00 f3 0f 1e fa 49 89 ca b8 08 01 00 00 0f 05 \u003c48\u003e\n 3d 00 f0 ff ff 77 0a c3 66 0f 1f 84 00 00 00 00 00 48 8b 15 89\n RSP: 002b:00007ffc7210bf38 EFLAGS: 00000246 ORIG_RAX: 0000000000000108\n RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0491fe8c4e\n RDX: 0000000000000003 RSI: 00007ffc7210e6c8 RDI: 00000000ffffff9c\n RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001\n R10: 00005575eb2dae2a R11: 0000000000000246 R12: 00005575eb2dae2a\n R13: 00007ffc7210e6c8 R14: 0000000000000003 R15: 00000000ffffff9c\n \u003c/TASK\u003e\n\nThe aforementioned deadlock can be consistently reproduced by running\nthe script below:\n\n audit-dupe-exe-deadlock.sh\n --------------------------\n #!/bin/bash\n auditctl -D\n mkdir -p /tmp/foo\n touch /tmp/file\n auditctl -a always,exit -F exe=/tmp/file -F path=/tmp/file -S all -k dr\n mv /tmp/file /tmp/foo/file\n rm -Rf /tmp/foo\n\nThis patch fixes the issue by introducing struct audit_watch_ctx to pass\nthe fsnotify event context down to audit_alloc_mark(). By utilizing the\nalready-resolved directory inode provided by the event, we bypass the\nkern_path_parent() path resol\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The deadlock is triggered when vfs_rename() emits fsnotify_move() during rename processing; on NFS (nfsd) and SMB (ksmbd) servers a remote client rename request reaches this same synchronous audit_update_watch()-\u003eaudit_dupe_exe()-\u003eaudit_alloc_mark()-\u003ekern_path_parent() path, not only local renameat().\nAC:L - Once an audit rule combining exe= and path= watches exists, the fix commit shows the recursive directory-lock deadlock is consistently reproduced by a simple rename/move; the attacker controls when the rename occurs and no race or special memory layout is required.\nPR:N - Triggering requires only the ability to rename the watched file on a local or network-exported path; a remote NFS/SMB client can issue that rename without local shell access, CAP_AUDIT_CONTROL, or other elevated server-side Unix privileges beyond export write access.\nUI:N - No victim interaction is required; the attacker or any client performing the rename directly invokes the vulnerable fsnotify/audit path without needing another user to open files, click links, or mount filesystems.\nS:U - Impact is confined to the vulnerable kernel host where the rename is processed (task hang/deadlock during audit rule update); it does not cross VM, IOMMU, or sandbox security boundaries.\nC:N - This is a recursive mutex deadlock with no memory corruption, out-of-bounds access, or use-after-free; no attacker-controlled information disclosure occurs beyond optional lockdep diagnostics on debug kernels.\nI:N - The bug does not modify kernel or user data and provides no write primitive or code-execution path; it only deadlocks the calling context while holding VFS directory locks and audit_filter_mutex.\nA:H - The vulnerability causes a deterministic recursive locking deadlock that permanently hangs the rename task while holding directory inode locks and audit_filter_mutex, denying that operation and potentially blocking audit processing and directory operations system-wide."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:45:47.969Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6114c3f21eb2ae175401736da744b684705e7ed9"
},
{
"url": "https://git.kernel.org/stable/c/f6fda0ac6661c23b8356dfb1cc423960cc6f0593"
},
{
"url": "https://git.kernel.org/stable/c/3bbb4931f7cd84cecf29ec222c0732bf9ad4da9f"
},
{
"url": "https://git.kernel.org/stable/c/36eb77f14b4e6f2dc1008c1fabe31236397be27a"
},
{
"url": "https://git.kernel.org/stable/c/7d1f66c69898ffb1a718926c32a777ecc471caca"
},
{
"url": "https://git.kernel.org/stable/c/40879c39d6740f3dddfb52b5d6ba7fb8cceb84d8"
},
{
"url": "https://git.kernel.org/stable/c/3b601938314c24fcd1afb6659cad92fe96c9c2f8"
},
{
"url": "https://git.kernel.org/stable/c/81905b5acbe77284734438df3fbec1158e6429a3"
}
],
"title": "audit: fix recursive locking deadlock in audit_dupe_exe()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68096",
"datePublished": "2026-08-10T11:58:09.951Z",
"dateReserved": "2026-07-30T09:28:09.368Z",
"dateUpdated": "2026-10-19T20:48:44.598Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89535 (GCVE-0-2026-89535)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Reorder rpcrdma_rn_unregister before rdma_destroy_id
svc_rdma_free() caches rdma->sc_cm_id->device before teardown,
then calls rdma_destroy_id(sc_cm_id) which frees the cm_id.
rpcrdma_rn_unregister() follows, but between those two calls
the transport's sc_rn entry is still installed in the device's
rd_xa. A concurrent ib_unregister_device walk can dispatch
svc_rdma_xprt_done() against the now-freed sc_cm_id.
Move rpcrdma_rn_unregister() before rdma_destroy_id() so the
transport's notification entry is removed from the xarray before
the cm_id it references is destroyed.
Also guard the sc_cm_id dereference with a NULL check: the
following patches introduce paths that reach svc_rdma_free()
with sc_cm_id == NULL (listener create failure, ADDR_CHANGE
replacement failure).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fcd4a752ac840d39356f4d2a424d3aca4e39716b",
"status": "affected",
"version": "c4de97f7c45434985e5dbf2d6ccc9eca676e37fe",
"versionType": "git"
},
{
"lessThan": "9f2f5d0999364c7070306cd422d8babc2621070d",
"status": "affected",
"version": "c4de97f7c45434985e5dbf2d6ccc9eca676e37fe",
"versionType": "git"
},
{
"lessThan": "cfca6eb3345ba4a23cf9a1153ad09bf19faabfc9",
"status": "affected",
"version": "c4de97f7c45434985e5dbf2d6ccc9eca676e37fe",
"versionType": "git"
},
{
"lessThan": "4488e912973773d64368828acf3b8e39d93650ae",
"status": "affected",
"version": "c4de97f7c45434985e5dbf2d6ccc9eca676e37fe",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Reorder rpcrdma_rn_unregister before rdma_destroy_id\n\nsvc_rdma_free() caches rdma-\u003esc_cm_id-\u003edevice before teardown,\nthen calls rdma_destroy_id(sc_cm_id) which frees the cm_id.\nrpcrdma_rn_unregister() follows, but between those two calls\nthe transport\u0027s sc_rn entry is still installed in the device\u0027s\nrd_xa. A concurrent ib_unregister_device walk can dispatch\nsvc_rdma_xprt_done() against the now-freed sc_cm_id.\n\nMove rpcrdma_rn_unregister() before rdma_destroy_id() so the\ntransport\u0027s notification entry is removed from the xarray before\nthe cm_id it references is destroyed.\n\nAlso guard the sc_cm_id dereference with a NULL check: the\nfollowing patches introduce paths that reach svc_rdma_free()\nwith sc_cm_id == NULL (listener create failure, ADDR_CHANGE\nreplacement failure)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcrdma is nfsd\u0027s RPC-over-RDMA server transport; a remote peer over routable RoCEv2 or iWARP reaches svc_rdma_free() by disconnecting an accepted connection or by forcing the post-rpcrdma_rn_register accept-error path after CONNECT_REQUEST.\nAC:H - The UAF exists only between rdma_destroy_id() and rpcrdma_rn_unregister(); triggering it requires a concurrent ib_unregister_device xarray walk (unbind, VF hot-unplug, or rxe/siw link delete) that a remote peer cannot initiate or reliably time.\nPR:N - RDMA CM CONNECT_REQUEST, accept, and DISCONNECT run before RPC or NFS authentication, and the CM handshake has no credential check, so an unauthenticated peer can drive the teardown path.\nUI:N - Opening and dropping RPC-over-RDMA connections against an already-listening NFS/RDMA service is sufficient; concurrent administrative device removal is attack complexity, not victim user interaction.\nS:U - The use-after-free of the rdma_cm_id and any double-put of the svcxprt_rdma remain in the host kernel; this is not a VM, IOMMU, or sandbox escape.\nC:H - A concurrent rpcrdma_remove_one() walk calls svc_rdma_xprt_done(), which reads the already-freed sc_cm_id (device name and route address); a reclaimable slab UAF is confidentiality High per kernel UAF guidance.\nI:H - On the accept-failure path the same callback can svc_xprt_close() a transport whose kref is already zero, calling rdma_disconnect() on the freed cm_id and dropping the kref again, yielding a double-free/UAF write primitive.\nA:H - Dereferencing the freed rdma_cm_id or double-freeing the svcxprt_rdma causes a kernel oops or panic; any use-after-free is availability High per kernel CVSS guidance."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:26.908Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fcd4a752ac840d39356f4d2a424d3aca4e39716b"
},
{
"url": "https://git.kernel.org/stable/c/9f2f5d0999364c7070306cd422d8babc2621070d"
},
{
"url": "https://git.kernel.org/stable/c/cfca6eb3345ba4a23cf9a1153ad09bf19faabfc9"
},
{
"url": "https://git.kernel.org/stable/c/4488e912973773d64368828acf3b8e39d93650ae"
}
],
"title": "svcrdma: Reorder rpcrdma_rn_unregister before rdma_destroy_id",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89535",
"datePublished": "2026-09-11T19:44:13.733Z",
"dateReserved": "2026-09-11T19:38:34.720Z",
"dateUpdated": "2026-10-19T08:48:26.908Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90088 (GCVE-0-2026-90088)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-19 08:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: RFCOMM: Validate MTU in rfcomm_apply_pn() to prevent infinite loop
rfcomm_apply_pn() accepts the MTU value from a remote PN (Parameter
Negotiation) frame without checking for zero. When the remote peer
sends an MTU of zero, d->mtu is set to 0. This causes the sendmsg
path to enter an infinite loop when fragmenting data, as each fragment
has size == min_t(size_t, len, 0) == 0, so the remaining length never
decreases. The infinite allocation of zero-length skbs exhausts all
system memory.
Fix by clamping d->mtu to RFCOMM_DEFAULT_MTU when the negotiated
value is zero, consistent with the initial value assigned in
rfcomm_dlc_alloc().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/rfcomm/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e7c0aa45ae6c5a338661b23812bfcdef50bf3e96",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cbc2962da99b6b89345267d3aa74b4b573340548",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9b2e5f1928c99224345a9ed8c5dae5fc74964d6d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fc4851ff8dfb505e9a19efcc286712132bbd178d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f561e44261344adadf9d6a6dff31e3af9776d5c6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "aeee917a4878af95f0c63e18c5f22eaf6299c7b8",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3988cbb1be501dbff909a2ee024670e3c955a66d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "44c98fd082eafd49d55a8a4077ff488175b2fe24",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/rfcomm/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: RFCOMM: Validate MTU in rfcomm_apply_pn() to prevent infinite loop\n\nrfcomm_apply_pn() accepts the MTU value from a remote PN (Parameter\nNegotiation) frame without checking for zero. When the remote peer\nsends an MTU of zero, d-\u003emtu is set to 0. This causes the sendmsg\npath to enter an infinite loop when fragmenting data, as each fragment\nhas size == min_t(size_t, len, 0) == 0, so the remaining length never\ndecreases. The infinite allocation of zero-length skbs exhausts all\nsystem memory.\n\nFix by clamping d-\u003emtu to RFCOMM_DEFAULT_MTU when the negotiated\nvalue is zero, consistent with the initial value assigned in\nrfcomm_dlc_alloc()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:57:45.766Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e7c0aa45ae6c5a338661b23812bfcdef50bf3e96"
},
{
"url": "https://git.kernel.org/stable/c/cbc2962da99b6b89345267d3aa74b4b573340548"
},
{
"url": "https://git.kernel.org/stable/c/9b2e5f1928c99224345a9ed8c5dae5fc74964d6d"
},
{
"url": "https://git.kernel.org/stable/c/fc4851ff8dfb505e9a19efcc286712132bbd178d"
},
{
"url": "https://git.kernel.org/stable/c/f561e44261344adadf9d6a6dff31e3af9776d5c6"
},
{
"url": "https://git.kernel.org/stable/c/aeee917a4878af95f0c63e18c5f22eaf6299c7b8"
},
{
"url": "https://git.kernel.org/stable/c/3988cbb1be501dbff909a2ee024670e3c955a66d"
},
{
"url": "https://git.kernel.org/stable/c/44c98fd082eafd49d55a8a4077ff488175b2fe24"
}
],
"title": "Bluetooth: RFCOMM: Validate MTU in rfcomm_apply_pn() to prevent infinite loop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90088",
"datePublished": "2026-09-17T16:06:03.527Z",
"dateReserved": "2026-09-11T19:38:34.785Z",
"dateUpdated": "2026-10-19T08:57:45.766Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90101 (GCVE-0-2026-90101)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-19 08:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Fix call to hardware monitoring event handler
The first parameter of hwmon_notify_event() is supposed to be the hardware
monitoring device. The bnxt driver calls it with the platform device as
first parameter instead. This API break results in undefined behavior and
may result in a crash.
Pass the hardware monitoring device as parameter instead to fix the
problem.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt_hwmon.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e3cad8389a72b8a309b5689c1683310126b0d7da",
"status": "affected",
"version": "a19b4801457b0806c0153dc344f548c6f8615896",
"versionType": "git"
},
{
"lessThan": "001ff5d8e68aacd91768b824b930dd7e68db6688",
"status": "affected",
"version": "a19b4801457b0806c0153dc344f548c6f8615896",
"versionType": "git"
},
{
"lessThan": "b17907ef665bc76a495a8f909f74656d3f32b7a2",
"status": "affected",
"version": "a19b4801457b0806c0153dc344f548c6f8615896",
"versionType": "git"
},
{
"lessThan": "622d698df4239fef3e0eb51fe59f4198f957f28a",
"status": "affected",
"version": "a19b4801457b0806c0153dc344f548c6f8615896",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt_hwmon.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Fix call to hardware monitoring event handler\n\nThe first parameter of hwmon_notify_event() is supposed to be the hardware\nmonitoring device. The bnxt driver calls it with the platform device as\nfirst parameter instead. This API break results in undefined behavior and\nmay result in a crash.\n\nPass the hardware monitoring device as parameter instead to fix the\nproblem."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:57:59.246Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e3cad8389a72b8a309b5689c1683310126b0d7da"
},
{
"url": "https://git.kernel.org/stable/c/001ff5d8e68aacd91768b824b930dd7e68db6688"
},
{
"url": "https://git.kernel.org/stable/c/b17907ef665bc76a495a8f909f74656d3f32b7a2"
},
{
"url": "https://git.kernel.org/stable/c/622d698df4239fef3e0eb51fe59f4198f957f28a"
}
],
"title": "bnxt_en: Fix call to hardware monitoring event handler",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90101",
"datePublished": "2026-09-17T16:06:12.213Z",
"dateReserved": "2026-09-11T19:38:34.786Z",
"dateUpdated": "2026-10-19T08:57:59.246Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72406 (GCVE-0-2026-72406)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: sungem: fix probe error cleanup
gem_init_one() calls gem_remove_one() when register_netdev() fails.
gem_remove_one() unregisters and frees resources owned by the net_device,
including the DMA block, MMIO mapping, PCI regions, and the net_device
itself. gem_init_one() then falls through to its own cleanup labels and
frees the same resources again.
Keep the register_netdev() error path in gem_init_one(): clear drvdata so
PM/remove paths do not see a half-registered device, remove the NAPI
instance added during probe, and let the existing cleanup labels release
the resources once.
The issue was found by a local static-analysis checker for probe error
paths. The reported path was manually inspected before sending this fix.
Compile-tested with CONFIG_SUNGEM=y. Runtime testing was not performed
because no sungem hardware is available.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72406",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:10.757468Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:22.076Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/sun/sungem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f3bd60b26814b7c3c57c629abb0857dfc76d214a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f1d04fefb0c2a2de32d9cee22cdc2088be3758d1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "331c99029a1cee1111f82f63d15b3cdebefbd341",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a63eaf7605d1579cf3f551792e478cfaf5ac37d1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fb73cdc50b6755e5c3a80a195b2708a39ada0230",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b15a3cc68e2450aa0edd94a74a7bdd45fcc17dd9",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "bc49e8746584564dba47d963d1916cc876fc6f6b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "36dea2f639249460d13f6ca66b2a9064187cd34d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/sun/sungem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: sungem: fix probe error cleanup\n\ngem_init_one() calls gem_remove_one() when register_netdev() fails.\ngem_remove_one() unregisters and frees resources owned by the net_device,\nincluding the DMA block, MMIO mapping, PCI regions, and the net_device\nitself. gem_init_one() then falls through to its own cleanup labels and\nfrees the same resources again.\n\nKeep the register_netdev() error path in gem_init_one(): clear drvdata so\nPM/remove paths do not see a half-registered device, remove the NAPI\ninstance added during probe, and let the existing cleanup labels release\nthe resources once.\n\nThe issue was found by a local static-analysis checker for probe error\npaths. The reported path was manually inspected before sending this fix.\n\nCompile-tested with CONFIG_SUNGEM=y. Runtime testing was not performed\nbecause no sungem hardware is available."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is in sungem PCI driver probe (gem_init_one) when register_netdev() fails during gem_init_one(); it is reached via local PCI enumeration/module load/hotplug/sysfs bind, not by processing remote network traffic through the NIC.\nAC:L - An attacker can reliably force register_netdev() to fail with ENOMEM using memory exhaustion timed with sungem probe or reprobe (modprobe, PCI hotplug, or sysfs bind); no uncontrollable race or rare heap layout is required beyond attacker-driven pressure.\nPR:L - Only a basic local process is needed to exhaust memory during probe; CAP_SYS_ADMIN/CAP_SYS_MODULE for driver rebind or modprobe is commonly available to maintenance operators, and concurrent unprivileged memory pressure can trigger the failing path without init-namespace root.\nUI:N - No victim interaction (opening files, mounting filesystems, clicking prompts) is required; exploitation is driven by attacker-timed memory pressure during sungem PCI probe error cleanup without actions from other users.\nS:U - The double-free corrupts kernel heap/DMA bookkeeping within the same kernel security domain; it enables local privilege escalation but does not cross VM, container, or IOMMU boundaries on its own.\nC:H - gem_remove_one() followed by fallthrough cleanup double-frees dma_alloc_coherent memory and free_netdev(), and then dereferences freed netdev_priv(gp) in gem_put_cell/iounmap, giving UAF-class heap disclosure primitives.\nI:H - Repeated dma_free_coherent, pci_release_regions, and free_netdev on the same objects corrupts kernel heap/SLUB metadata and can be developed into arbitrary kernel writes or control-flow hijacking, not merely a one-time fault.\nA:H - The double-free and subsequent use-after-free on probe error cleanup can immediately trigger kernel BUG/WARN, oops, or panic, causing total loss of system availability on affected legacy systems using sungem hardware."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:46.309Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f3bd60b26814b7c3c57c629abb0857dfc76d214a"
},
{
"url": "https://git.kernel.org/stable/c/f1d04fefb0c2a2de32d9cee22cdc2088be3758d1"
},
{
"url": "https://git.kernel.org/stable/c/331c99029a1cee1111f82f63d15b3cdebefbd341"
},
{
"url": "https://git.kernel.org/stable/c/a63eaf7605d1579cf3f551792e478cfaf5ac37d1"
},
{
"url": "https://git.kernel.org/stable/c/fb73cdc50b6755e5c3a80a195b2708a39ada0230"
},
{
"url": "https://git.kernel.org/stable/c/b15a3cc68e2450aa0edd94a74a7bdd45fcc17dd9"
},
{
"url": "https://git.kernel.org/stable/c/bc49e8746584564dba47d963d1916cc876fc6f6b"
},
{
"url": "https://git.kernel.org/stable/c/36dea2f639249460d13f6ca66b2a9064187cd34d"
}
],
"title": "net: sungem: fix probe error cleanup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72406",
"datePublished": "2026-08-15T05:56:30.225Z",
"dateReserved": "2026-08-09T03:40:39.926Z",
"dateUpdated": "2026-10-16T18:55:22.076Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89705 (GCVE-0-2026-89705)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: restore rq_status_counter to even on all nfsd_dispatch() exit paths
nfsd_dispatch() sets rq_status_counter to an odd value once a request has
been decoded, and back to an even value once it has been fully processed,
forming a seq-lock like protocol with the lockless reader in
nfsd_nl_rpc_status_get_dumpit().
Only the fully successful path restored the counter to even. The cache-hit
(RC_REPLY), drop (RC_DROPIT / RQ_DROPME) and encode-error paths all return
after the odd-valued store without ever bringing the counter back to even.
Once one of those paths is taken, rq_status_counter is left odd: the next
request's decode ORs in 1 (still odd) and only a subsequent successful
encode restores even. While stuck odd, the dumpit reader treats the rqstp
fields as stable and its retry check compares against the same unchanging
odd value, so it never detects concurrent mutation. This exposes actively
mutating fields (e.g. args->ops / args->opcnt during compound decode and
release) to the lockless reader, which can read past the end of the
8-element inline ops array.
Add a helper that advances the counter to the next even value and call it
on every return path that follows the odd-valued store. The decode-error
path is left untouched as it is reached before the counter is set odd.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfssvc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5773e00cc0f9e34983bd29ba2a607c6b14258e00",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "df5500ab85df661d9e4439e4c456787181fbd5ff",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "b08c30f08d57f30699d36809d92f0b683dca261f",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
},
{
"lessThan": "f6045886fe3f14f269f683d64021b004a50d0efa",
"status": "affected",
"version": "bd9d6a3efa9709e653aafbeb859289feccb8e70c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfssvc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: restore rq_status_counter to even on all nfsd_dispatch() exit paths\n\nnfsd_dispatch() sets rq_status_counter to an odd value once a request has\nbeen decoded, and back to an even value once it has been fully processed,\nforming a seq-lock like protocol with the lockless reader in\nnfsd_nl_rpc_status_get_dumpit().\n\nOnly the fully successful path restored the counter to even. The cache-hit\n(RC_REPLY), drop (RC_DROPIT / RQ_DROPME) and encode-error paths all return\nafter the odd-valued store without ever bringing the counter back to even.\nOnce one of those paths is taken, rq_status_counter is left odd: the next\nrequest\u0027s decode ORs in 1 (still odd) and only a subsequent successful\nencode restores even. While stuck odd, the dumpit reader treats the rqstp\nfields as stable and its retry check compares against the same unchanging\nodd value, so it never detects concurrent mutation. This exposes actively\nmutating fields (e.g. args-\u003eops / args-\u003eopcnt during compound decode and\nrelease) to the lockless reader, which can read past the end of the\n8-element inline ops array.\n\nAdd a helper that advances the counter to the next even value and call it\non every return path that follows the odd-valued store. The decode-error\npath is left untouched as it is reached before the counter is set odd."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The confidentiality and availability impact is in nfsd_nl_rpc_status_get_dumpit(), reached only via NFSD_CMD_RPC_STATUS_GET over AF_NETLINK. Remote NFS RPCs can leave rq_status_counter odd in nfsd_dispatch() but never enter dumpit, so exploitation requires local netlink access.\nAC:L - An attacker can send an NFSv4.0 COMPOUND with OP_CACHEME (SETCLIENTID) and a duplicate in-flight RPC so nfsd_cache_lookup() returns RC_DROPIT, leaving rq_status_counter stuck odd. Later compounds with more than eight ops then let dumpit observe opcnt/ops mid-decode with no seqlock retry; both sides are attacker-controlled.\nPR:L - NFSD_CMD_RPC_STATUS_GET is registered with GENL_CMD_CAP_DUMP and no GENL_ADMIN_PERM, so any unprivileged process in the nfsd network namespace can invoke the dump. Exploitation does not require CAP_NET_ADMIN or init-namespace root.\nUI:N - The attacker issues the netlink dump and the NFSv4 compounds themselves. No separate victim action such as mounting a filesystem or opening a device is required.\nS:U - The slab over-read and netlink leak occur in host-kernel nfsd on the local machine. Impact stays inside one security authority and is not a VM escape, IOMMU bypass, or other cross-boundary breakout.\nC:H - With the counter stuck odd, dumpit treats mutating args-\u003eops/opcnt as stable and reads min(opcnt,16) slots. When opcnt is set above eight before ops is switched off iops[8], indices 8-15 load adjacent slab at nfsd4_op stride and return those u32s via NFSD_A_RPC_STATUS_COMPOUND_OPS.\nI:N - dumpit only loads opnum into a stack nfsd_genl_rqstp for netlink. This seqlock bug yields an out-of-bounds read, not an out-of-bounds write, use-after-free write primitive, or control-flow hijack.\nA:H - Slots 8-15 are sampled at sizeof(struct nfsd4_op) stride past the trailing iops[8] array in kmalloc\u0027d nfsd4_compoundargs into adjacent or unmapped slab pages, which can oops the dumpit path even if the leak is not turned into a stable read."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:24.485Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5773e00cc0f9e34983bd29ba2a607c6b14258e00"
},
{
"url": "https://git.kernel.org/stable/c/df5500ab85df661d9e4439e4c456787181fbd5ff"
},
{
"url": "https://git.kernel.org/stable/c/b08c30f08d57f30699d36809d92f0b683dca261f"
},
{
"url": "https://git.kernel.org/stable/c/f6045886fe3f14f269f683d64021b004a50d0efa"
}
],
"title": "nfsd: restore rq_status_counter to even on all nfsd_dispatch() exit paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89705",
"datePublished": "2026-09-11T19:46:21.832Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-21T12:48:24.485Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89644 (GCVE-0-2026-89644)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-21 12:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix extent map leak in NOCOW direct I/O write
btrfs_dio_iomap_begin() calls btrfs_get_extent(), which returns an
extent map reference that must be dropped on all exit paths.
For direct writes into a NOCOW range, btrfs_get_blocks_direct_write()
keeps using that extent map and asks btrfs_create_dio_extent() to
allocate the ordered extent. If that fails, for example because
btrfs_alloc_ordered_extent() fails, the function returns the error
without dropping the input extent map. The PREALLOC path avoided this by
dropping the input extent map before replacing it with the newly created
one.
Check the error from btrfs_create_dio_extent() before replacing the
map and drop the input extent map on failure.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/direct-io.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cb732d302245b14943a5017015fffa8e6db7a6c0",
"status": "affected",
"version": "5f9a8a51d8b95505d8de8b7191ae2ed8c504d4af",
"versionType": "git"
},
{
"lessThan": "b7c873765875645b11503f94c9bae2ca80127375",
"status": "affected",
"version": "5f9a8a51d8b95505d8de8b7191ae2ed8c504d4af",
"versionType": "git"
},
{
"lessThan": "f42efd634c0ae7ba0ce2fc5e30e291b0803b0ae2",
"status": "affected",
"version": "5f9a8a51d8b95505d8de8b7191ae2ed8c504d4af",
"versionType": "git"
},
{
"lessThan": "05a1a816eef8b3e4332620a64fc8cf45c4eb5c0d",
"status": "affected",
"version": "5f9a8a51d8b95505d8de8b7191ae2ed8c504d4af",
"versionType": "git"
},
{
"lessThan": "3f950867c307c5413d628a153ac44915bd117ffd",
"status": "affected",
"version": "5f9a8a51d8b95505d8de8b7191ae2ed8c504d4af",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/direct-io.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix extent map leak in NOCOW direct I/O write\n\nbtrfs_dio_iomap_begin() calls btrfs_get_extent(), which returns an\nextent map reference that must be dropped on all exit paths.\n\nFor direct writes into a NOCOW range, btrfs_get_blocks_direct_write()\nkeeps using that extent map and asks btrfs_create_dio_extent() to\nallocate the ordered extent. If that fails, for example because\nbtrfs_alloc_ordered_extent() fails, the function returns the error\nwithout dropping the input extent map. The PREALLOC path avoided this by\ndropping the input extent map before replacing it with the newly created\none.\n\nCheck the error from btrfs_create_dio_extent() before replacing the\nmap and drop the input extent map on failure."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:08.939Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cb732d302245b14943a5017015fffa8e6db7a6c0"
},
{
"url": "https://git.kernel.org/stable/c/b7c873765875645b11503f94c9bae2ca80127375"
},
{
"url": "https://git.kernel.org/stable/c/f42efd634c0ae7ba0ce2fc5e30e291b0803b0ae2"
},
{
"url": "https://git.kernel.org/stable/c/05a1a816eef8b3e4332620a64fc8cf45c4eb5c0d"
},
{
"url": "https://git.kernel.org/stable/c/3f950867c307c5413d628a153ac44915bd117ffd"
}
],
"title": "btrfs: fix extent map leak in NOCOW direct I/O write",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89644",
"datePublished": "2026-09-11T19:45:36.268Z",
"dateReserved": "2026-09-11T19:38:34.741Z",
"dateUpdated": "2026-10-21T12:48:08.939Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2025-40136 (GCVE-0-2025-40136)
Vulnerability from cvelistv5
Published
2025-11-12 10:23
Modified
2026-10-21 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
crypto: hisilicon/qm - request reserved interrupt for virtual function
The device interrupt vector 3 is an error interrupt for
physical function and a reserved interrupt for virtual function.
However, the driver has not registered the reserved interrupt for
virtual function. When allocating interrupts, the number of interrupts
is allocated based on powers of two, which includes this interrupt.
When the system enables GICv4 and the virtual function passthrough
to the virtual machine, releasing the interrupt in the driver
triggers a warning.
The WARNING report is:
WARNING: CPU: 62 PID: 14889 at arch/arm64/kvm/vgic/vgic-its.c:852 its_free_ite+0x94/0xb4
Therefore, register a reserved interrupt for VF and set the
IRQF_NO_AUTOEN flag to avoid that warning.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/crypto/hisilicon/qm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5f75857ed634d04266301d7a4f695a7deeb9bfdc",
"status": "affected",
"version": "3536cc55cadaf2a03241915f9cfdaf6cd073e4fe",
"versionType": "git"
},
{
"lessThan": "24315474ca913c0693939ab74b389ee04c7d3020",
"status": "affected",
"version": "3536cc55cadaf2a03241915f9cfdaf6cd073e4fe",
"versionType": "git"
},
{
"lessThan": "854da2b0df1654d63963d587b12fec6068d89643",
"status": "affected",
"version": "3536cc55cadaf2a03241915f9cfdaf6cd073e4fe",
"versionType": "git"
},
{
"lessThan": "9228facb308157ac0bdd264b873187896f7a9c7a",
"status": "affected",
"version": "3536cc55cadaf2a03241915f9cfdaf6cd073e4fe",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/crypto/hisilicon/qm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.17.*",
"status": "unaffected",
"version": "6.17.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.18",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.17.3",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: hisilicon/qm - request reserved interrupt for virtual function\n\nThe device interrupt vector 3 is an error interrupt for\nphysical function and a reserved interrupt for virtual function.\nHowever, the driver has not registered the reserved interrupt for\nvirtual function. When allocating interrupts, the number of interrupts\nis allocated based on powers of two, which includes this interrupt.\nWhen the system enables GICv4 and the virtual function passthrough\nto the virtual machine, releasing the interrupt in the driver\ntriggers a warning.\n\nThe WARNING report is:\nWARNING: CPU: 62 PID: 14889 at arch/arm64/kvm/vgic/vgic-its.c:852 its_free_ite+0x94/0xb4\n\nTherefore, register a reserved interrupt for VF and set the\nIRQF_NO_AUTOEN flag to avoid that warning."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:37:49.467Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5f75857ed634d04266301d7a4f695a7deeb9bfdc"
},
{
"url": "https://git.kernel.org/stable/c/24315474ca913c0693939ab74b389ee04c7d3020"
},
{
"url": "https://git.kernel.org/stable/c/854da2b0df1654d63963d587b12fec6068d89643"
},
{
"url": "https://git.kernel.org/stable/c/9228facb308157ac0bdd264b873187896f7a9c7a"
}
],
"title": "crypto: hisilicon/qm - request reserved interrupt for virtual function",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2025-40136",
"datePublished": "2025-11-12T10:23:23.330Z",
"dateReserved": "2025-04-16T07:20:57.171Z",
"dateUpdated": "2026-10-21T12:37:49.467Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74603 (GCVE-0-2026-74603)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-08-25 05:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ptp: ocp: Fix board ID over-read
The EEPROM board ID is a fixed 13-byte field and is not guaranteed to
contain a NUL terminator. Passing it directly to
devlink_info_version_fixed_put() treats it as a C string and may read
beyond the field.
Format at most OCP_BOARD_ID_LEN bytes into the existing local buffer
before reporting the ID. Use a precision limit because the snprintf()
output size alone does not bound the source string scan.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 Version: 0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/ptp/ptp_ocp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "72ef3ce80078199bfad32f98d055f44ba7cd0c3d",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
},
{
"lessThan": "3d965811be78473654e6e8cc8e4fb7b6b87aa6c1",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
},
{
"lessThan": "f92558bbe78d6284fedd053900f82a70f0aa8707",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
},
{
"lessThan": "5fd91dd4a143479b0575fb1f202ec1c501e71fd5",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
},
{
"lessThan": "f8d7e5751267637190eff887c971d5b468106213",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
},
{
"lessThan": "6b69f2ef10cdb018c0b127a7cab88e590bbddba4",
"status": "affected",
"version": "0cfcdd1ebcfe1a9b262f6ad8419580720dc843c4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/ptp/ptp_ocp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nptp: ocp: Fix board ID over-read\n\nThe EEPROM board ID is a fixed 13-byte field and is not guaranteed to\ncontain a NUL terminator. Passing it directly to\ndevlink_info_version_fixed_put() treats it as a C string and may read\nbeyond the field.\n\nFormat at most OCP_BOARD_ID_LEN bytes into the existing local buffer\nbefore reporting the ID. Use a precision limit because the snprintf()\noutput size alone does not bound the source string scan."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable code is reached only through the devlink generic-netlink interface (DEVLINK_CMD_INFO_GET) via a local socket; ptp_ocp is a PCI PTP timecard driver with no network, Bluetooth, or physical-device input path to ptp_ocp_devlink_info_get().\nAC:L - On a system with a probed OCP timecard, issuing devlink info deterministically calls ptp_ocp_devlink_info_get() and passes the 13-byte EEPROM board_id that is not guaranteed to be NUL-terminated, so the over-read is reliably triggered without races or attacker-uncontrollable layout.\nPR:L - DEVLINK_CMD_INFO_GET is registered with only GENL_CMD_CAP_DO/GENL_CMD_CAP_DUMP and no GENL_ADMIN_PERM, and devlink_nl_pre_doit() adds no capability check, so any unprivileged local user with generic netlink access can invoke the vulnerable handler.\nUI:N - Exploitation requires only the attacker issuing a devlink info netlink request; no administrator or other user action is needed beyond the attacker having local access to the host.\nS:U - Kernel memory disclosure and any resulting crash are confined to the same host kernel; the bug does not cross VM, IOMMU, or sandbox security boundaries.\nC:H - Passing the non-NUL-terminated board_id to devlink_info_version_fixed_put() makes devlink_info_version_put() and nla_put_string() use strlen(), reading past the 13-byte field through adjacent ptp_ocp/devlink private memory and returning leaked bytes in the netlink reply to the caller.\nI:N - The defect is purely an out-of-bounds kernel read with no write, heap corruption, or control-flow hijack primitive; only kernel memory is scanned and copied into the netlink response.\nA:H - strlen() on the unterminated board_id can walk through subsequent kmalloc-backed struct fields and potentially past the devlink private allocation, touching unmapped pages and oopsing/panicking the kernel; an unprivileged user can repeat the devlink info query to retrigger it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:27.399Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/72ef3ce80078199bfad32f98d055f44ba7cd0c3d"
},
{
"url": "https://git.kernel.org/stable/c/3d965811be78473654e6e8cc8e4fb7b6b87aa6c1"
},
{
"url": "https://git.kernel.org/stable/c/f92558bbe78d6284fedd053900f82a70f0aa8707"
},
{
"url": "https://git.kernel.org/stable/c/5fd91dd4a143479b0575fb1f202ec1c501e71fd5"
},
{
"url": "https://git.kernel.org/stable/c/f8d7e5751267637190eff887c971d5b468106213"
},
{
"url": "https://git.kernel.org/stable/c/6b69f2ef10cdb018c0b127a7cab88e590bbddba4"
}
],
"title": "ptp: ocp: Fix board ID over-read",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74603",
"datePublished": "2026-08-22T15:31:51.544Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-08-25T05:40:27.399Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74744 (GCVE-0-2026-74744)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipvlan: inherit needed_headroom and needed_tailroom from phy_dev
ipvlan devices inherit hard_header_len from phy_dev during ipvlan_init(),
but leave needed_headroom and needed_tailroom set to 0.
When the underlying phy_dev (or stacked lower device) requires extra headroom
or tailroom for headers/trailers (e.g. macsec, ipsec, wireguard, tunnels, or
veth with rx headroom), upper layers calculating packet headroom and tailroom
fail to reserve sufficient space.
This can result in reallocation overhead, skb headroom underflows, or KASAN
slab-use-after-free crashes when dev_hard_header() / ipvlan_hard_header()
prepends header data or when lower devices append tailroom.
Fix this by:
1. Inheriting needed_headroom and needed_tailroom from phy_dev in ipvlan_init().
2. Propagating needed_headroom and needed_tailroom updates to attached ipvlans
in ipvlan_device_event() when receiving NETDEV_FEAT_CHANGE events.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2ad7bf3638411cb547f2823df08166c13ab04269 Version: 2ad7bf3638411cb547f2823df08166c13ab04269 Version: 2ad7bf3638411cb547f2823df08166c13ab04269 Version: 2ad7bf3638411cb547f2823df08166c13ab04269 Version: 2ad7bf3638411cb547f2823df08166c13ab04269 Version: 2ad7bf3638411cb547f2823df08166c13ab04269 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74744",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:16:09.313084Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:23.512Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ipvlan/ipvlan_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "af602c4d0ee548da18e2409b4b4da1079625a372",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
},
{
"lessThan": "f3c17ff65f54781cde696e16a6c577615ed735aa",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
},
{
"lessThan": "c0fbe31f6b20ade0465130685859faa5c86fda59",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
},
{
"lessThan": "5f33188457bbcc1b11ca87084037963c516ed3d9",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
},
{
"lessThan": "5c2ca77212eb38559b0353b8363b7a84f4b019dd",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
},
{
"lessThan": "e16e960d55a40d36bd7c2494cc005e757dc9a1ef",
"status": "affected",
"version": "2ad7bf3638411cb547f2823df08166c13ab04269",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ipvlan/ipvlan_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipvlan: inherit needed_headroom and needed_tailroom from phy_dev\n\nipvlan devices inherit hard_header_len from phy_dev during ipvlan_init(),\nbut leave needed_headroom and needed_tailroom set to 0.\n\nWhen the underlying phy_dev (or stacked lower device) requires extra headroom\nor tailroom for headers/trailers (e.g. macsec, ipsec, wireguard, tunnels, or\nveth with rx headroom), upper layers calculating packet headroom and tailroom\nfail to reserve sufficient space.\n\nThis can result in reallocation overhead, skb headroom underflows, or KASAN\nslab-use-after-free crashes when dev_hard_header() / ipvlan_hard_header()\nprepends header data or when lower devices append tailroom.\n\nFix this by:\n1. Inheriting needed_headroom and needed_tailroom from phy_dev in ipvlan_init().\n2. Propagating needed_headroom and needed_tailroom updates to attached ipvlans\n in ipvlan_device_event() when receiving NETDEV_FEAT_CHANGE events."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - On hosts where admins deployed ipvlan over phy_dev with non-zero headroom (WireGuard/IPsec/macsec/tunnels/veth-XDP), remote packets that trigger egress through the ipvlan netdev (TCP/UDP/ICMP responses, forwarded traffic) reach ipvlan_hard_header/dev_hard_header without local syscalls.\nAC:L - Once the stacked netdev exists, the attacker controls packet sizes and connection patterns to deterministically undersize skb headroom/tailroom; syzbot reproduced KASAN slab-UAF without races or uncontrollable memory layout.\nPR:N - Remote exploitation on pre-deployed ipvlan-over-encrypted/tunneled container or VPN hosts requires no credentials\u2014only network reachability to services using that netdev; CAP_NET_ADMIN is only needed for the alternate local user-namespace setup path.\nUI:N - No victim interaction is required; the attacker either sends crafted network traffic to trigger kernel TX through ipvlan or self-configures the netdev stack via rtnetlink inside a user namespace.\nS:U - Impact is kernel slab skb/net_device memory corruption and local privilege escalation within the same kernel security authority, not a VM escape, IOMMU bypass, or other cross-boundary scope change.\nC:H - Insufficient LL_RESERVED_SPACE causes pskb_expand_head to free still-referenced skb data and dev_hard_header skb_push to access memory outside the buffer; the fix cites KASAN slab-use-after-free, enabling arbitrary kernel memory disclosure.\nI:H - Slab UAF and skb headroom underflow during header prepend give heap-grooming and controlled overwrite primitives on attacker-influenced TX paths, suitable for kernel control-flow hijacking and code execution.\nA:H - Undersized headroom triggers skb_under_panic BUG and KASAN-reported slab-use-after-free oops/panic from softirq/TX paths; remote or local attackers can retrigger repeatedly for reliable kernel denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:01:05.284Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/af602c4d0ee548da18e2409b4b4da1079625a372"
},
{
"url": "https://git.kernel.org/stable/c/f3c17ff65f54781cde696e16a6c577615ed735aa"
},
{
"url": "https://git.kernel.org/stable/c/c0fbe31f6b20ade0465130685859faa5c86fda59"
},
{
"url": "https://git.kernel.org/stable/c/5f33188457bbcc1b11ca87084037963c516ed3d9"
},
{
"url": "https://git.kernel.org/stable/c/5c2ca77212eb38559b0353b8363b7a84f4b019dd"
},
{
"url": "https://git.kernel.org/stable/c/e16e960d55a40d36bd7c2494cc005e757dc9a1ef"
}
],
"title": "ipvlan: inherit needed_headroom and needed_tailroom from phy_dev",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74744",
"datePublished": "2026-08-26T14:36:54.773Z",
"dateReserved": "2026-08-15T05:44:03.931Z",
"dateUpdated": "2026-10-16T19:26:23.512Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74282 (GCVE-0-2026-74282)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: prevent snt_unacked underflow on CONN_ACK
tipc_sk_conn_proto_rcv() subtracts the peer-supplied connection ack count
from the unsigned 16-bit send counter snt_unacked without checking that it
does not exceed the number of messages actually outstanding:
tsk->snt_unacked -= msg_conn_ack(hdr);
msg_conn_ack() is read straight from a received CONN_MANAGER/CONN_ACK
message. If the ack count is larger than snt_unacked, the subtraction
wraps to a near-maximum value, leaving tsk_conn_cong() permanently true
and starving the connection of further transmits.
Validate the ACK count at the start of the CONN_ACK block and drop the
message if it acknowledges more messages than are outstanding. A peer (or,
for a local connection, the connected peer socket) can otherwise wedge a
TIPC connection's send side by sending an oversized connection ack.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa Version: 10724cc7bb7832b482df049c20fd824d928c5eaa |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74282",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:07.516475Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:29.895Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3388145d258cf2c4c98278e3987296007d30672e",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "67e55b054bf8025658dc0e255057f2a6236416bd",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "96f91b8ae1a489b3eca137e7acf42cf985fb8939",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "47ed873e4ceda34098bd46d8e96b4bb13cad3a04",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "b44bebdd32c9ff66ee2aebfc317ced44bedd9335",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "3cfa3d8e0dc167850edeb5bf5a07757db83fd54e",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "1e2c956745777e6ffdee7f30da5935741c03ee1e",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
},
{
"lessThan": "ab3e10b44ba5411779aac7afd2477917dd77750f",
"status": "affected",
"version": "10724cc7bb7832b482df049c20fd824d928c5eaa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: prevent snt_unacked underflow on CONN_ACK\n\ntipc_sk_conn_proto_rcv() subtracts the peer-supplied connection ack count\nfrom the unsigned 16-bit send counter snt_unacked without checking that it\ndoes not exceed the number of messages actually outstanding:\n\n\ttsk-\u003esnt_unacked -= msg_conn_ack(hdr);\n\nmsg_conn_ack() is read straight from a received CONN_MANAGER/CONN_ACK\nmessage. If the ack count is larger than snt_unacked, the subtraction\nwraps to a near-maximum value, leaving tsk_conn_cong() permanently true\nand starving the connection of further transmits.\n\nValidate the ACK count at the start of the CONN_ACK block and drop the\nmessage if it acknowledges more messages than are outstanding. A peer (or,\nfor a local connection, the connected peer socket) can otherwise wedge a\nTIPC connection\u0027s send side by sending an oversized connection ack."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached when tipc_rcv() processes a remote CONN_MANAGER/CONN_ACK skb from a TIPC bearer (UDP port 6118 or Ethernet), traversing tipc_link_rcv()\u2192tipc_sk_rcv()\u2192tipc_sk_proto_rcv()\u2192tipc_sk_conn_proto_rcv() with attacker-controlled ack count.\nAC:L - After a normal TIPC connect handshake, the connected peer can send a single CONN_ACK whose msg_conn_ack() exceeds snt_unacked; no races, timing, or rare layout conditions are needed and the malicious field is fully attacker-controlled.\nPR:N - Exploitation only requires becoming the established TIPC peer via a standard AF_TIPC connect/listen handshake; socket creation needs no capabilities and the protocol has no authentication gate before CONN_ACK processing.\nUI:N - No victim user action is required beyond the service already accepting TIPC connections; the attacker triggers the bug by sending one crafted CONN_ACK on the established connection.\nS:U - Impact is limited to corrupting flow-control state on a victim TIPC socket within the same kernel/host security boundary; there is no VM escape, container breakout, or IOMMU boundary crossing.\nC:N - The unsigned 16-bit underflow only corrupts the snt_unacked congestion counter and does not read or disclose kernel memory, pointers, or other sensitive information.\nI:N - The bug modifies only an internal send-window counter to block transmits and provides no arbitrary write, code execution, or user/kernel data modification primitive.\nA:H - An oversized CONN_ACK wraps snt_unacked to a near-maximum value, leaving tsk_conn_cong() permanently true and indefinitely starving the victim socket\u0027s transmit path until the connection is torn down."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:23.387Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3388145d258cf2c4c98278e3987296007d30672e"
},
{
"url": "https://git.kernel.org/stable/c/67e55b054bf8025658dc0e255057f2a6236416bd"
},
{
"url": "https://git.kernel.org/stable/c/96f91b8ae1a489b3eca137e7acf42cf985fb8939"
},
{
"url": "https://git.kernel.org/stable/c/47ed873e4ceda34098bd46d8e96b4bb13cad3a04"
},
{
"url": "https://git.kernel.org/stable/c/b44bebdd32c9ff66ee2aebfc317ced44bedd9335"
},
{
"url": "https://git.kernel.org/stable/c/3cfa3d8e0dc167850edeb5bf5a07757db83fd54e"
},
{
"url": "https://git.kernel.org/stable/c/1e2c956745777e6ffdee7f30da5935741c03ee1e"
},
{
"url": "https://git.kernel.org/stable/c/ab3e10b44ba5411779aac7afd2477917dd77750f"
}
],
"title": "tipc: prevent snt_unacked underflow on CONN_ACK",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74282",
"datePublished": "2026-08-15T05:57:52.048Z",
"dateReserved": "2026-08-15T05:44:03.880Z",
"dateUpdated": "2026-10-16T18:55:29.895Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80979 (GCVE-0-2026-80979)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: unregister the connection before draining the rx tasklet
smc_conn_free() calls smc_ism_unset_conn() only while the link group is
still on its device list, and never sets conn->killed.
smc_lgr_terminate_sched() unlinks the group immediately and defers killing
its connections to a work item, so a connection freed in that window keeps
its smcd->conn[] slot with both gates in smcd_handle_irq() open, and the
device can re-arm the receive tasklet after tasklet_kill() has returned. On
the DMB-nocopy path the ghost send buffer is freed right after that drain,
so the re-armed tasklet dereferences it.
Unregister unconditionally and drain before the detach at both teardown
sites, mirroring rmb_desc, which smc_buf_unuse() releases after the drain.
Clear conn->sndbuf_desc before freeing it as well, so a reader that samples
the pointer cannot get one that is already freed.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 21f6f41e82e59740e26e06e77bdf58dc7f6f08dd Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: 6.6.66 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b6b6ac713ee82b340a8e3be30b101bd2840deec4",
"status": "affected",
"version": "21f6f41e82e59740e26e06e77bdf58dc7f6f08dd",
"versionType": "git"
},
{
"lessThan": "b4d540ac95cd35c6ebab6afb7eae2bcac7b277a5",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "5bd8b764a610b6b6bc0c4d3d01652747f6e0b5c3",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "b74d313567dfc1b7e56629ddbad04e728686f235",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "36cdf5d48ca191dcd71c28cadbe0981b1d25318d",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "6.6.157",
"status": "affected",
"version": "6.6.66",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.6.66",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: unregister the connection before draining the rx tasklet\n\nsmc_conn_free() calls smc_ism_unset_conn() only while the link group is\nstill on its device list, and never sets conn-\u003ekilled.\nsmc_lgr_terminate_sched() unlinks the group immediately and defers killing\nits connections to a work item, so a connection freed in that window keeps\nits smcd-\u003econn[] slot with both gates in smcd_handle_irq() open, and the\ndevice can re-arm the receive tasklet after tasklet_kill() has returned. On\nthe DMB-nocopy path the ghost send buffer is freed right after that drain,\nso the re-armed tasklet dereferences it.\n\nUnregister unconditionally and drain before the detach at both teardown\nsites, mirroring rmb_desc, which smc_buf_unuse() releases after the drain.\nClear conn-\u003esndbuf_desc before freeing it as well, so a reader that samples\nthe pointer cannot get one that is already freed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is on the SMC-D DMB-nocopy teardown path, which only loopback-ISM implements; that device accepts a peer only when the GID matches this host, so a local AF_SMC/IPPROTO_SMC pair reaches smc_conn_free()/smcd_handle_irq(), and a remote TCP/CLC peer cannot attach to that fabric.\nAC:L - The attacker owns both sockets and can send on one endpoint to arm smcd_handle_irq() while close() on the other runs smc_conn_free()/smc_conn_kill, which kfree sndbuf_desc before tasklet_kill; they control both sides of the race, so complexity is Low.\nPR:L - socket(AF_SMC) and IPPROTO_SMC listen/connect on ephemeral ports need no capabilities, and loopback-ISM is usable from a user network namespace, so only an unprivileged local account is required.\nUI:N - The attacker performs connect, send, and close on their own SMC sockets; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - The freed object is a kernel kmalloc smc_buf_desc processed by a tasklet in the same kernel; this is privilege escalation within one security authority, not a VM, IOMMU, or sandbox escape.\nC:H - smcd_cdc_rx_tsklet/smc_cdc_msg_recv_action dereference the freed ghost sndbuf_desc (including -\u003elen); a slab use-after-free of a kmalloc object that the attacker can spray yields an arbitrary kernel read.\nI:H - The same tasklet continues into cursor updates and smc_tx_pending() which write through the recycled descriptor, so heap spraying the use-after-free provides an arbitrary kernel write and control-flow hijack primitive.\nA:H - Tasklet use of the freed smc_buf_desc oopses or panics the kernel even without a full exploit, causing a full system availability loss that the attacker can repeat."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:03.770Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b6b6ac713ee82b340a8e3be30b101bd2840deec4"
},
{
"url": "https://git.kernel.org/stable/c/b4d540ac95cd35c6ebab6afb7eae2bcac7b277a5"
},
{
"url": "https://git.kernel.org/stable/c/5bd8b764a610b6b6bc0c4d3d01652747f6e0b5c3"
},
{
"url": "https://git.kernel.org/stable/c/b74d313567dfc1b7e56629ddbad04e728686f235"
},
{
"url": "https://git.kernel.org/stable/c/36cdf5d48ca191dcd71c28cadbe0981b1d25318d"
}
],
"title": "net/smc: unregister the connection before draining the rx tasklet",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80979",
"datePublished": "2026-09-11T19:42:40.171Z",
"dateReserved": "2026-08-26T14:34:25.811Z",
"dateUpdated": "2026-10-19T08:46:03.770Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74376 (GCVE-0-2026-74376)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
md/raid10: reset read_slot when reusing r10bio for discard
put_all_bios() always drops devs[i].bio, but it only drops
devs[i].repl_bio when r10_bio->read_slot < 0. If discard reuses an
r10bio that was previously used for a read, read_slot can still be
non-negative, and discard cleanup can skip bio_put() on repl_bio.
Reset read_slot to -1 when preparing an r10bio for discard so the
replacement bio is always released correctly.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa Version: d30588b2731fb01e1616cf16c3fe79a1443e29aa |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74376",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:45.646885Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:36.173Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3cb2a606ce4902eceabe68338df0653312f861f8",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "561c9711e4f545d6464a023168bdee03b00fa945",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "ce3030e92f14362880055de5fe3c258971118853",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "742e4afd247d9c972695227716b03d432a7e1d26",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "b7313f23ea5a79b199a007bfad64a866cc2c22e7",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "eb04e3e9c14ed15914f5fd2eae8b6435f54f095f",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
},
{
"lessThan": "6b8a26af065ddc93de2aa5c9f0df98dce9723442",
"status": "affected",
"version": "d30588b2731fb01e1616cf16c3fe79a1443e29aa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/raid10.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid10: reset read_slot when reusing r10bio for discard\n\nput_all_bios() always drops devs[i].bio, but it only drops\ndevs[i].repl_bio when r10_bio-\u003eread_slot \u003c 0. If discard reuses an\nr10bio that was previously used for a read, read_slot can still be\nnon-negative, and discard cleanup can skip bio_put() on repl_bio.\n\nReset read_slot to -1 when preparing an r10bio for discard so the\nreplacement bio is always released correctly."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - iSCSI/NVMe-oF targets and appliances commonly expose RAID10-backed LUNs; remote SCSI UNMAP maps through target_core iblock_execute_unmap()/blkdev_issue_discard() to md_handle_request() and raid10_handle_discard without local access.\nAC:L - The attacker controls both pool poisoning reads and triggering discards; mempool-reused r10bios retain a non-negative read_slot from prior reads, so each qualifying discard reliably skips repl_bio bio_put() when replacement mirrors exist.\nPR:N - Network UNMAP from an iSCSI/NVMe-oF client needs no Linux UID or capabilities on the target; local exploitation only needs O_RDWR on the md device or FITRIM (CAP_SYS_ADMIN, obtainable in user namespaces), both below High.\nUI:N - No interactive victim action\u2014exploitation uses normal block-layer discard requests (fstrim cron, UNMAP, BLKDISCARD) issued or scripted by the attacker without cooperation.\nS:U - The bug corrupts/leaks kernel bio objects within the same host kernel security domain; it does not cross VM, container, or IOMMU boundaries.\nC:H - Stale read_slot misclassifies repl_bio as rdev in the r10dev union during put_all_bios(), leaking live bios holding kernel pointers and enabling heap-grooming read primitives; scored High when uncertain per memory-corruption guidance.\nI:H - The read_slot/repl_bio union type confusion skips bio_put() on attacker-submitted replacement discard clones, enabling slab manipulation for arbitrary kernel writes; type confusion maps to High integrity impact per kernel CVSS guidance.\nA:H - Repeated read-then-discard cycles leak bios on every hit; on busy RAID10 storage servers this exhausts kmem and can trigger OOM killer or panic, so Availability is High rather than Low per the conservative rule."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:28.657Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3cb2a606ce4902eceabe68338df0653312f861f8"
},
{
"url": "https://git.kernel.org/stable/c/561c9711e4f545d6464a023168bdee03b00fa945"
},
{
"url": "https://git.kernel.org/stable/c/ce3030e92f14362880055de5fe3c258971118853"
},
{
"url": "https://git.kernel.org/stable/c/742e4afd247d9c972695227716b03d432a7e1d26"
},
{
"url": "https://git.kernel.org/stable/c/b7313f23ea5a79b199a007bfad64a866cc2c22e7"
},
{
"url": "https://git.kernel.org/stable/c/eb04e3e9c14ed15914f5fd2eae8b6435f54f095f"
},
{
"url": "https://git.kernel.org/stable/c/6b8a26af065ddc93de2aa5c9f0df98dce9723442"
}
],
"title": "md/raid10: reset read_slot when reusing r10bio for discard",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74376",
"datePublished": "2026-08-15T05:58:55.023Z",
"dateReserved": "2026-08-15T05:44:03.889Z",
"dateUpdated": "2026-10-16T18:55:36.173Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90255 (GCVE-0-2026-90255)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 09:00
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_conn: fix the SCO setup context lifetime
hci_setup_sync() queues a conn_handle_t with a NULL destroy callback, so
the context is only freed if hci_enhanced_setup_sync() actually runs. An
entry that is cancelled instead is leaked, as
_hci_cmd_sync_cancel_entry() does not release entry->data when there is
no destroy callback, and hci_cmd_sync_clear() cancels every pending entry
when the controller is unregistered.
The context also stores a bare hci_conn pointer, so the connection can be
freed while the work is queued. The dequeue in hci_conn_del() does not
cover it either, as it matches on entry->data == conn and entry->data is
the wrapper here. Same problem as commit 2f5d635ad590 ("Bluetooth:
hci_sync: hold conn in hci_connect_acl/le_sync() callbacks").
Hold the connection and release both from a destroy callback. The
submission failure path drops both, since hci_cmd_sync_submit() does not
call the destroy callback when it fails to queue.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 Version: e07a06b4eb417f5271d33ce2240e93c62d98b7b4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/hci_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "37cfec41365c826d5496ef5d00c9e215eee53aa2",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
},
{
"lessThan": "9a2ba69cebe3fc5a3d4fa8eaaad3c42862723c27",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
},
{
"lessThan": "a661de0ee29d0915c5e924edf91d2be2b4d35bae",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
},
{
"lessThan": "c1fe3c74a89a7749cba3caa0dd91236049c66116",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
},
{
"lessThan": "4d7b1c834d2775b73c65e4888e01f5af8b477fe9",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
},
{
"lessThan": "42de40abe25db9211107af8896d0fd741f10648d",
"status": "affected",
"version": "e07a06b4eb417f5271d33ce2240e93c62d98b7b4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/hci_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_conn: fix the SCO setup context lifetime\n\nhci_setup_sync() queues a conn_handle_t with a NULL destroy callback, so\nthe context is only freed if hci_enhanced_setup_sync() actually runs. An\nentry that is cancelled instead is leaked, as\n_hci_cmd_sync_cancel_entry() does not release entry-\u003edata when there is\nno destroy callback, and hci_cmd_sync_clear() cancels every pending entry\nwhen the controller is unregistered.\n\nThe context also stores a bare hci_conn pointer, so the connection can be\nfreed while the work is queued. The dequeue in hci_conn_del() does not\ncover it either, as it matches on entry-\u003edata == conn and entry-\u003edata is\nthe wrapper here. Same problem as commit 2f5d635ad590 (\"Bluetooth:\nhci_sync: hold conn in hci_connect_acl/le_sync() callbacks\").\n\nHold the connection and release both from a destroy callback. The\nsubmission failure path drops both, since hci_cmd_sync_submit() does not\ncall the destroy callback when it fails to queue."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - hci_setup_sync() is reached from hci_sco_setup() on ACL HCI Connection Complete (hci_conn_complete_evt) and from hci_sync_conn_complete_evt retrying Enhanced Setup Synchronous Connection on remote error statuses (0x1a, 0x1c, 0x1e, 0x1f); those HCI events arrive over Bluetooth radio, scored Adjacent.\nAC:L - An attacker queues hci_enhanced_setup_sync via hci_setup_sync() (sco_connect-\u003ehci_connect_sco-\u003ehci_sco_setup, or Sync Conn Complete retries) then frees that SCO hci_conn with hci_conn_del (socket close, hci_disconn_complete_evt, or hci_setup_sync_conn_status). Dequeue matches entry-\u003edata==conn but data is the conn_handle_t wrapper, so both sides of the race are attacker-controlled.\nPR:N - A radio-adjacent peer needs no Linux account: HFP/PipeWire stacks cause the host to call hci_setup_sync, and the peer\u0027s Disconnection Complete or Synchronous Connection Complete events run hci_conn_del. Locally sco_sock_create() has no capability check (AF_BLUETOOTH is init_net only).\nUI:N - No extra victim action at exploit time: Bluetooth audio stacks automatically open outgoing SCO for a connected HFP/headset, and a local attacker uses their own BTPROTO_SCO sockets rather than inducing another user to mount or open a file.\nS:U - The use-after-free corrupts kernel heap (struct hci_conn) in the host Bluetooth stack and can escalate privileges in that same kernel authority; it does not cross a VM, guest-to-host, or IOMMU boundary.\nC:H - hci_enhanced_setup_sync() reads conn_handle-\u003econn, kfree()s the wrapper, then uses conn (conn-\u003ecodec, conn-\u003eparent, conn-\u003eattempt) after only a pointer-compare hci_conn_valid() check, so a freed or slab-reused hci_conn yields arbitrary kernel reads.\nI:H - The same callback writes conn-\u003estate, conn-\u003eout, and conn-\u003eattempt and builds HCI_OP_ENHANCED_SETUP_SYNC_CONN from freed codec fields; struct hci_conn has cleanup/connect_cfm_cb pointers, so slab reuse gives a kernel write and control-flow primitive.\nA:H - Dereferencing a freed hci_conn from hci_cmd_sync_work on req_workqueue causes a kernel oops or panic; UAF availability is High even without full exploitation. Cancelled cmd_sync entries also leak conn_handle_t because destroy was NULL."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:00:31.949Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/37cfec41365c826d5496ef5d00c9e215eee53aa2"
},
{
"url": "https://git.kernel.org/stable/c/9a2ba69cebe3fc5a3d4fa8eaaad3c42862723c27"
},
{
"url": "https://git.kernel.org/stable/c/a661de0ee29d0915c5e924edf91d2be2b4d35bae"
},
{
"url": "https://git.kernel.org/stable/c/c1fe3c74a89a7749cba3caa0dd91236049c66116"
},
{
"url": "https://git.kernel.org/stable/c/4d7b1c834d2775b73c65e4888e01f5af8b477fe9"
},
{
"url": "https://git.kernel.org/stable/c/42de40abe25db9211107af8896d0fd741f10648d"
}
],
"title": "Bluetooth: hci_conn: fix the SCO setup context lifetime",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90255",
"datePublished": "2026-09-17T16:07:54.775Z",
"dateReserved": "2026-09-11T19:38:34.796Z",
"dateUpdated": "2026-10-19T09:00:31.949Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90263 (GCVE-0-2026-90263)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-21 12:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: check if root is readonly when setting posix acl
For a filesystem which has btrfs read-only property set to true, all
write operations including acl and xattr should be denied. However, acl
can still be set even if btrfs ro property is true.
This happens because no function on the set_acl code path checks the root
is readonly or not. It was checked in btrfs_setxattr_trans() but got
removed in commit 353c2ea735e4 ("btrfs: remove redundant readonly root
check in btrfs_setxattr_trans")
That commit didn't check if all the callers properly check the root's
read-only flag. A previous fix is commit b51111271b03 ("btrfs: check if
root is readonly while setting security xattr").
Always check if the root is read-only before performing the set acl
operation.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "20b2c2f3316e82a76ae3358c0bd45824f50f3fd5",
"status": "affected",
"version": "353c2ea735e4b54fb6250861e67b51b1bcb47198",
"versionType": "git"
},
{
"lessThan": "dc3a6e90a0a6350a6d43fed9f005f54171809580",
"status": "affected",
"version": "353c2ea735e4b54fb6250861e67b51b1bcb47198",
"versionType": "git"
},
{
"lessThan": "ce8103676f4d4b13e1f087fcfb34f80774d30be2",
"status": "affected",
"version": "353c2ea735e4b54fb6250861e67b51b1bcb47198",
"versionType": "git"
},
{
"lessThan": "d5602f96ff1e266f069b4d0d94f441050e057e06",
"status": "affected",
"version": "353c2ea735e4b54fb6250861e67b51b1bcb47198",
"versionType": "git"
},
{
"lessThan": "01c2f41fc441f75b3f9326443372faceb1cb6638",
"status": "affected",
"version": "353c2ea735e4b54fb6250861e67b51b1bcb47198",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: check if root is readonly when setting posix acl\n\nFor a filesystem which has btrfs read-only property set to true, all\nwrite operations including acl and xattr should be denied. However, acl\ncan still be set even if btrfs ro property is true.\n\nThis happens because no function on the set_acl code path checks the root\nis readonly or not. It was checked in btrfs_setxattr_trans() but got\nremoved in commit 353c2ea735e4 (\"btrfs: remove redundant readonly root\ncheck in btrfs_setxattr_trans\")\n\nThat commit didn\u0027t check if all the callers properly check the root\u0027s\nread-only flag. A previous fix is commit b51111271b03 (\"btrfs: check if\nroot is readonly while setting security xattr\").\n\nAlways check if the root is read-only before performing the set acl\noperation."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:50:43.346Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/20b2c2f3316e82a76ae3358c0bd45824f50f3fd5"
},
{
"url": "https://git.kernel.org/stable/c/dc3a6e90a0a6350a6d43fed9f005f54171809580"
},
{
"url": "https://git.kernel.org/stable/c/ce8103676f4d4b13e1f087fcfb34f80774d30be2"
},
{
"url": "https://git.kernel.org/stable/c/d5602f96ff1e266f069b4d0d94f441050e057e06"
},
{
"url": "https://git.kernel.org/stable/c/01c2f41fc441f75b3f9326443372faceb1cb6638"
}
],
"title": "btrfs: check if root is readonly when setting posix acl",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90263",
"datePublished": "2026-09-17T16:08:00.085Z",
"dateReserved": "2026-09-11T19:38:34.796Z",
"dateUpdated": "2026-10-21T12:50:43.346Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74480 (GCVE-0-2026-74480)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: stop fast-leave after deleting a port group
br_multicast_leave_group() iterates mp->ports with pp = &p->next in
its fast-leave path. After br_multicast_del_pg() removes p,
continuing the loop advances pp through the deleted entry.
If multicast-to-unicast was enabled, the bridge can hold multiple port
groups for the same port and group with different source MAC
addresses. Once multicast-to-unicast is disabled,
br_port_group_equal() matches those entries by port only. A fast leave
can then delete one entry and continue from its stale next pointer,
leaving mp->ports pointing at a deleted port group.
Fast leave only needs to remove one matching port group. Break after
br_multicast_del_pg() so the loop stops before dereferencing the
removed entry.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 Version: 6db6f0eae6052b70885562e1733896647ec1d807 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74480",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:57:40.918598Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:48.808Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d6c32e2e25a9a06ba021030e26b6d602a277eb72",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "482bcb85139addb4e8ac8ed10baeda3e0aad4031",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "1a109cc9890d017c41d77e6c82da739579c49f0b",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "159ad90cb929c033308bb39a2c5f8fbf393b77aa",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "4695430e8132420bf8de94da3eb36a6cf35fde6b",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "0309ebbc570000ea0df11c06b69798e5860c5f6f",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "a39789f211b8a4125f0c70e05b30cf715f4f187d",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: stop fast-leave after deleting a port group\n\nbr_multicast_leave_group() iterates mp-\u003eports with pp = \u0026p-\u003enext in\nits fast-leave path. After br_multicast_del_pg() removes p,\ncontinuing the loop advances pp through the deleted entry.\n\nIf multicast-to-unicast was enabled, the bridge can hold multiple port\ngroups for the same port and group with different source MAC\naddresses. Once multicast-to-unicast is disabled,\nbr_port_group_equal() matches those entries by port only. A fast leave\ncan then delete one entry and continue from its stale next pointer,\nleaving mp-\u003eports pointing at a deleted port group.\n\nFast leave only needs to remove one matching port group. Break after\nbr_multicast_del_pg() so the loop stops before dereferencing the\nremoved entry."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when the bridge network stack processes attacker-supplied IGMP/MLD Leave packets received on a bridge port (br_handle_frame_finish -\u003e br_multicast_rcv -\u003e br_ip4/ip6_multicast_leave_group -\u003e br_multicast_leave_group), requiring no local syscall access.\nAC:L - Once a bridge has IGMP snooping, fast-leave, and leftover duplicate port groups (common on WiFi APs that used multicast-to-unicast), an attacker can reliably trigger the bug by sending IGMP/MLD joins then a Leave; no uncontrollable race or rare timing is required.\nPR:N - No privileges or authentication are required on the target; any host on an attached bridge port can inject IGMP/MLD Leave packets that are processed and reach the vulnerable fast-leave deletion loop.\nUI:N - Exploitation requires only attacker-sent multicast control packets; no victim user action such as opening files, clicking links, or mounting filesystems is needed.\nS:U - Impact is kernel heap corruption and use-after-free within the bridge/multicast subsystem on the same host; it does not cross a VM/hypervisor or IOMMU security boundary by itself.\nC:H - Deleting a port group then continuing the list walk dereferences freed net_bridge_port_group memory and can leave mp-\u003eports dangling, giving a use-after-free read primitive exploitable for arbitrary kernel memory disclosure.\nI:H - Corrupting the mp-\u003eports linked list via stale next pointers after br_multicast_del_pg() enables attacker-influenced kernel heap corruption that can be developed into arbitrary write and privilege escalation.\nA:H - The use-after-free and corrupted multicast database pointers cause kernel oops/panics when subsequent bridge multicast forwarding or MDB operations traverse the broken port-group list, enabling repeatable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:33.031Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d6c32e2e25a9a06ba021030e26b6d602a277eb72"
},
{
"url": "https://git.kernel.org/stable/c/482bcb85139addb4e8ac8ed10baeda3e0aad4031"
},
{
"url": "https://git.kernel.org/stable/c/1a109cc9890d017c41d77e6c82da739579c49f0b"
},
{
"url": "https://git.kernel.org/stable/c/159ad90cb929c033308bb39a2c5f8fbf393b77aa"
},
{
"url": "https://git.kernel.org/stable/c/4695430e8132420bf8de94da3eb36a6cf35fde6b"
},
{
"url": "https://git.kernel.org/stable/c/0309ebbc570000ea0df11c06b69798e5860c5f6f"
},
{
"url": "https://git.kernel.org/stable/c/4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4"
},
{
"url": "https://git.kernel.org/stable/c/a39789f211b8a4125f0c70e05b30cf715f4f187d"
}
],
"title": "net: bridge: stop fast-leave after deleting a port group",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74480",
"datePublished": "2026-08-15T12:27:13.803Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-10-16T19:05:48.808Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72433 (GCVE-0-2026-72433)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_meta_bridge: fix NFT_META_BRI_IIFPVID stack leak
This needs to test for nonzero retval.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 Version: c54c7c685494fc0f1662091d4d0c4fc26e810471 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/nft_meta_bridge.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c37a39b963034cc2d141baf46017614cb1fc275f",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "a853c3769b73ceb2d2b735aff621d1d51fe0553d",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "b1b0b9efe641afa5c2d4ba2ec77aed7b6f4bc398",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "f73b7de5338fcca7f63ca88597a050c119501531",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "92c9682b36f0c8f7a1f14d4558b72793f62e90a1",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "7e23965d44f06ed93fb5362fb1e321b769eecc3b",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "4dce8bf588a89bef99b446136d15685a837e7acf",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
},
{
"lessThan": "27dd2997746d54ebc079bb13161cc1bdd401d4a6",
"status": "affected",
"version": "c54c7c685494fc0f1662091d4d0c4fc26e810471",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/nft_meta_bridge.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nft_meta_bridge: fix NFT_META_BRI_IIFPVID stack leak\n\nThis needs to test for nonzero retval."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:14:33.263Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c37a39b963034cc2d141baf46017614cb1fc275f"
},
{
"url": "https://git.kernel.org/stable/c/a853c3769b73ceb2d2b735aff621d1d51fe0553d"
},
{
"url": "https://git.kernel.org/stable/c/b1b0b9efe641afa5c2d4ba2ec77aed7b6f4bc398"
},
{
"url": "https://git.kernel.org/stable/c/f73b7de5338fcca7f63ca88597a050c119501531"
},
{
"url": "https://git.kernel.org/stable/c/92c9682b36f0c8f7a1f14d4558b72793f62e90a1"
},
{
"url": "https://git.kernel.org/stable/c/7e23965d44f06ed93fb5362fb1e321b769eecc3b"
},
{
"url": "https://git.kernel.org/stable/c/4dce8bf588a89bef99b446136d15685a837e7acf"
},
{
"url": "https://git.kernel.org/stable/c/27dd2997746d54ebc079bb13161cc1bdd401d4a6"
}
],
"title": "netfilter: nft_meta_bridge: fix NFT_META_BRI_IIFPVID stack leak",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72433",
"datePublished": "2026-08-15T05:56:48.117Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-08-17T05:14:33.263Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89913 (GCVE-0-2026-89913)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-21 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables
vgic_v3_save_pending_tables() iterates dist->lpi_xa using xa_for_each()
and dereferences the returned struct vgic_irq in the loop body without
holding a reference on the LPI.
The xarray iterator only provides temporary RCU coverage while looking up
the current entry. That is not sufficient for this loop body, which reads
fields from struct vgic_irq and performs guest memory accesses before the
iteration completes.
A concurrent path can trigger this race: the irqfd cached injection path
(vgic_its_inject_cached_translation) obtains a transient LPI reference
via vgic_its_check_cache() without holding kvm->lock, vcpu->mutex,
config_lock, or its_lock. If guest ITS DISCARD then drops the cache and
ITE references under its_lock, the transient inject reference may become
the final one. When vgic_put_irq() drops it, the LPI is erased from
lpi_xa and freed via kfree_rcu(). Meanwhile, vgic_v3_save_pending_tables()
may still hold a stale pointer obtained from the xarray iterator and
dereference it after the RCU grace period completes.
Fix this by re-fetching each iterated LPI via vgic_get_irq(), which takes
a stable reference, and dropping it with vgic_put_irq() on all paths.
This matches the pattern already used by other lpi_xa iterators in the
vgic ITS code.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-v3.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4000462866bc71f16d1bfb3cf8e969f95150cd64",
"status": "affected",
"version": "280771252c1bae0947215c59fb9ea6a8d9f8399d",
"versionType": "git"
},
{
"lessThan": "7631f95297560157d3a9283cb999e3be00103348",
"status": "affected",
"version": "280771252c1bae0947215c59fb9ea6a8d9f8399d",
"versionType": "git"
},
{
"lessThan": "d3a2d20b7248ea67465af1cf79c79f90ff70926c",
"status": "affected",
"version": "280771252c1bae0947215c59fb9ea6a8d9f8399d",
"versionType": "git"
},
{
"lessThan": "f5b8f203bfc07a5a257dff859e66d2c500f9f509",
"status": "affected",
"version": "280771252c1bae0947215c59fb9ea6a8d9f8399d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-v3.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables\n\nvgic_v3_save_pending_tables() iterates dist-\u003elpi_xa using xa_for_each()\nand dereferences the returned struct vgic_irq in the loop body without\nholding a reference on the LPI.\n\nThe xarray iterator only provides temporary RCU coverage while looking up\nthe current entry. That is not sufficient for this loop body, which reads\nfields from struct vgic_irq and performs guest memory accesses before the\niteration completes.\n\nA concurrent path can trigger this race: the irqfd cached injection path\n(vgic_its_inject_cached_translation) obtains a transient LPI reference\nvia vgic_its_check_cache() without holding kvm-\u003elock, vcpu-\u003emutex,\nconfig_lock, or its_lock. If guest ITS DISCARD then drops the cache and\nITE references under its_lock, the transient inject reference may become\nthe final one. When vgic_put_irq() drops it, the LPI is erased from\nlpi_xa and freed via kfree_rcu(). Meanwhile, vgic_v3_save_pending_tables()\nmay still hold a stale pointer obtained from the xarray iterator and\ndereference it after the RCU grace period completes.\n\nFix this by re-fetching each iterated LPI via vgic_get_irq(), which takes\na stable reference, and dropping it with vgic_put_irq() on all paths.\nThis matches the pattern already used by other lpi_xa iterators in the\nvgic ITS code."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only via local KVM: KVM_SET_DEVICE_ATTR(KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES) on the VGIC device fd, irqfd/KVM_SIGNAL_MSI cached injection, and guest GICv3 ITS MMIO writes to GITS_CWRITER (DISCARD); there is no network, adjacent, or physical path.\nAC:L - A kvm-group attacker who owns the VMM controls every side of the race (irqfd/KVM_SIGNAL_MSI cached inject, guest ITS DISCARD, and SAVE_PENDING_TABLES). The save path sleeps in kvm_read_guest_lock() so the kfree_rcu() window is attacker-driven rather than an uninfluenced host condition.\nPR:L - Creating a VM and issuing VGIC device attributes requires only /dev/kvm access (typically 0660 kvm group) or tenancy in an arm64 KVM guest; kvm_dev_ioctl_create_vm() and kvm_device_ioctl() have no capable() gate, so init-namespace root is not required.\nUI:N - The attacker issues the VGIC save ioctl, irqfd/MSI injection, and guest ITS DISCARD themselves; no separate victim action such as mounting a filesystem or opening a crafted file is required.\nS:C - Use-after-free of host-kernel struct vgic_irq in KVM\u0027s VGIC ITS LPI xarray crosses the guest-to-host hypervisor boundary; corrupting host LPI objects from a VM/VMM can escape the guest security authority.\nC:H - This is a host-kernel use-after-free of struct vgic_irq after kfree_rcu(); reclaiming the freed object lets the save loop read attacker-controlled irq fields (target_vcpu, intid, pending_latch), yielding an arbitrary host kernel read primitive.\nI:H - Host heap UAF of vgic_irq with attacker-controlled irqfd/DISCARD timing enables heap spray of fake irq objects, providing write and control-flow hijack primitives against the host kernel.\nA:H - Dereferencing the freed vgic_irq after the RCU grace period (the save path sleeps in kvm_read_guest_lock()) causes a host kernel oops or panic even without a full exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:49:08.468Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4000462866bc71f16d1bfb3cf8e969f95150cd64"
},
{
"url": "https://git.kernel.org/stable/c/7631f95297560157d3a9283cb999e3be00103348"
},
{
"url": "https://git.kernel.org/stable/c/d3a2d20b7248ea67465af1cf79c79f90ff70926c"
},
{
"url": "https://git.kernel.org/stable/c/f5b8f203bfc07a5a257dff859e66d2c500f9f509"
}
],
"title": "KVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89913",
"datePublished": "2026-09-16T10:32:09.947Z",
"dateReserved": "2026-09-11T19:38:34.774Z",
"dateUpdated": "2026-10-21T12:49:08.468Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74612 (GCVE-0-2026-74612)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
veth: fix skb length accounting after XDP frag adjustment
veth exposes non-linear skb fragments through an xdp_buff. If an XDP
program adjusts the fragment area, veth_xdp_rcv_skb() copies
xdp_frags_size back to skb->data_len but leaves skb->len containing the
old fragment contribution.
After a fragment shrink, this makes skb_headlen() larger than the actual
linear area. In the reproduced UDP receive path, __skb_datagram_iter()
copied 1024 bytes past the actual linear tail to userspace, starting at
struct skb_shared_info. The copied bytes included the affected skb's
nr_frags, xdp_frags_size, and a kernel pointer from
skb_shinfo(skb)->frags[0]. Real packet data was displaced by the same
amount and truncated at the end.
Subtract the old data_len before replacing it and add the new data_len
afterwards, keeping skb->len and skb->data_len synchronized.
Additionally, bpf_xdp_pull_data() can advance data_end while leaving
frags present. The skb is then still non-linear, so the old
__skb_put(skb, off) triggers SKB_LINEAR_ASSERT().
Use skb_set_tail_pointer() and update skb->len explicitly instead,
following bpf_prog_run_generic_xdp(). Unlike __skb_put(),
skb_set_tail_pointer() does not require a linear skb.
A 60000-byte UDP datagram on a veth pair with MTU 64000 was shortened by
1024 bytes from its fragment area. Before the fix, all 10 runs produced
corrupted payloads. After the fix, all 10 runs matched the expected
payload exactly. A forced-tailroom reproducer also exercises
bpf_xdp_pull_data() with frags still present; the old code triggers
SKB_LINEAR_ASSERT(), while this fix passes 10/10 runs.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 Version: 718a18a0c8a67f97781e40bdef7cdd055c430996 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74612",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:22.074793Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:01.379Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0c3024afabb8064b141f3cedcb1ddd6ab05ad9d5",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "2f2a7f3f8b9f1bffc9b0488aa02b6951b2aec139",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "41b96667d42b74bb4b137f1bb78b611a953c5943",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "cdf745b7a777f87f51666e5d8f4c6fc279bcf54d",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "3205b0652a37255dbb7ca8f3d942c8d8aa677c21",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "cb6379feaaff11c4e1e79c26c745ffa23182768a",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nveth: fix skb length accounting after XDP frag adjustment\n\nveth exposes non-linear skb fragments through an xdp_buff. If an XDP\nprogram adjusts the fragment area, veth_xdp_rcv_skb() copies\nxdp_frags_size back to skb-\u003edata_len but leaves skb-\u003elen containing the\nold fragment contribution.\n\nAfter a fragment shrink, this makes skb_headlen() larger than the actual\nlinear area. In the reproduced UDP receive path, __skb_datagram_iter()\ncopied 1024 bytes past the actual linear tail to userspace, starting at\nstruct skb_shared_info. The copied bytes included the affected skb\u0027s\nnr_frags, xdp_frags_size, and a kernel pointer from\nskb_shinfo(skb)-\u003efrags[0]. Real packet data was displaced by the same\namount and truncated at the end.\n\nSubtract the old data_len before replacing it and add the new data_len\nafterwards, keeping skb-\u003elen and skb-\u003edata_len synchronized.\n\nAdditionally, bpf_xdp_pull_data() can advance data_end while leaving\nfrags present. The skb is then still non-linear, so the old\n__skb_put(skb, off) triggers SKB_LINEAR_ASSERT().\n\nUse skb_set_tail_pointer() and update skb-\u003elen explicitly instead,\nfollowing bpf_prog_run_generic_xdp(). Unlike __skb_put(),\nskb_set_tail_pointer() does not require a linear skb.\n\nA 60000-byte UDP datagram on a veth pair with MTU 64000 was shortened by\n1024 bytes from its fragment area. Before the fix, all 10 runs produced\ncorrupted payloads. After the fix, all 10 runs matched the expected\npayload exactly. A forced-tailroom reproducer also exercises\nbpf_xdp_pull_data() with frags still present; the old code triggers\nSKB_LINEAR_ASSERT(), while this fix passes 10/10 runs."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote packets routed through container/host veth pairs reach veth_xdp_rcv_skb() after veth_xmit on the peer; cloud and edge nodes routinely forward Internet traffic across veth links with XDP attached, matching the reproduced UDP receive path.\nAC:L - The fix commit shows 10/10 reliable reproduction with a 60000-byte UDP datagram and XDP bpf_xdp_adjust_tail()/bpf_xdp_pull_data() fragment shrink; the attacker controls packet size, timing, and both veth ends without races or uncontrollable kernel state.\nPR:N - Exploitation only requires an XDP program using bpf_xdp_adjust_tail or bpf_xdp_pull_data to already be attached on a reachable veth peer; the remote packet sender needs no local account, capabilities, or authentication to trigger the bad skb length accounting.\nUI:N - No victim interaction is needed beyond normal always-on packet reception and socket delivery; corrupted payloads and leaked kernel metadata are produced automatically when a userspace process reads the affected datagram.\nS:C - veth links intentionally cross container/host network namespaces on multi-tenant servers, and skb_shared_info metadata plus kernel pointers leaked into a tenant userspace recv buffer exceed that tenant\u0027s authorized security boundary.\nC:H - Desynchronized skb-\u003elen makes skb_headlen() exceed the real linear tail, so __skb_datagram_iter() copies up to 1024 bytes past the skb into userspace, exposing nr_frags, xdp_frags_size, and a kernel pointer from skb_shinfo(skb)-\u003efrags[0].\nI:H - The same length mismatch inflates the linear region, displacing and truncating real datagram bytes in the delivered UDP buffer and corrupting application-visible data beyond intended packet bounds while compounding misuse of leaked kernel metadata.\nA:H - bpf_xdp_pull_data() can leave frags present while the old __skb_put() path hits SKB_LINEAR_ASSERT()/BUG_ON on nonlinear skbs; the commit reports deterministic kernel asserts and crashes in addition to datagram corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:38.488Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0c3024afabb8064b141f3cedcb1ddd6ab05ad9d5"
},
{
"url": "https://git.kernel.org/stable/c/2f2a7f3f8b9f1bffc9b0488aa02b6951b2aec139"
},
{
"url": "https://git.kernel.org/stable/c/41b96667d42b74bb4b137f1bb78b611a953c5943"
},
{
"url": "https://git.kernel.org/stable/c/cdf745b7a777f87f51666e5d8f4c6fc279bcf54d"
},
{
"url": "https://git.kernel.org/stable/c/3205b0652a37255dbb7ca8f3d942c8d8aa677c21"
},
{
"url": "https://git.kernel.org/stable/c/cb6379feaaff11c4e1e79c26c745ffa23182768a"
}
],
"title": "veth: fix skb length accounting after XDP frag adjustment",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74612",
"datePublished": "2026-08-22T15:31:58.295Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:01.379Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74308 (GCVE-0-2026-74308)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix kernel BUG in ext4_write_inline_data_end
When the data=journal mount option is used, the ext4_journalled_write_end()
function incorrectly calls ext4_write_inline_data_end() without checking
if the EXT4_STATE_MAY_INLINE_DATA flag is still set on the inode.
If a previous attempt to convert the inline data to an extent failed (e.g.
due to ENOSPC), the EXT4_STATE_MAY_INLINE_DATA flag is cleared, but
the EXT4_INODE_INLINE_DATA flag remains set. In this scenario, the next
call to ext4_write_begin() will not prepare the inline data xattr for
writing, but ext4_journalled_write_end() will incorrectly attempt to write
to it, triggering a BUG_ON(pos + len > EXT4_I(inode)->i_inline_size) in
ext4_write_inline_data() since i_inline_size was not expanded.
Fix this by ensuring that ext4_journalled_write_end() only calls
ext4_write_inline_data_end() if the EXT4_STATE_MAY_INLINE_DATA flag is
set, mirroring the behavior of ext4_write_end() and ext4_da_write_end().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "260830a9a706f5d335398236fc788ce32f220de1",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "9808ae9fae996afa942bd963a39c9b1cdeebd0bd",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "f00f5c0dd55319bc33b76f72c853bda0e0a32eda",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "0ae42b51607240990614e0843f0d3529aaff62cc",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
},
{
"lessThan": "ad09aa45965d3fafaf9963bc78109b73c0f9ac8d",
"status": "affected",
"version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.8"
},
{
"lessThan": "3.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix kernel BUG in ext4_write_inline_data_end\n\nWhen the data=journal mount option is used, the ext4_journalled_write_end()\nfunction incorrectly calls ext4_write_inline_data_end() without checking\nif the EXT4_STATE_MAY_INLINE_DATA flag is still set on the inode.\n\nIf a previous attempt to convert the inline data to an extent failed (e.g.\ndue to ENOSPC), the EXT4_STATE_MAY_INLINE_DATA flag is cleared, but\nthe EXT4_INODE_INLINE_DATA flag remains set. In this scenario, the next\ncall to ext4_write_begin() will not prepare the inline data xattr for\nwriting, but ext4_journalled_write_end() will incorrectly attempt to write\nto it, triggering a BUG_ON(pos + len \u003e EXT4_I(inode)-\u003ei_inline_size) in\next4_write_inline_data() since i_inline_size was not expanded.\n\nFix this by ensuring that ext4_journalled_write_end() only calls\next4_write_inline_data_end() if the EXT4_STATE_MAY_INLINE_DATA flag is\nset, mirroring the behavior of ext4_write_end() and ext4_da_write_end()."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:16:57.145Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/260830a9a706f5d335398236fc788ce32f220de1"
},
{
"url": "https://git.kernel.org/stable/c/9808ae9fae996afa942bd963a39c9b1cdeebd0bd"
},
{
"url": "https://git.kernel.org/stable/c/f00f5c0dd55319bc33b76f72c853bda0e0a32eda"
},
{
"url": "https://git.kernel.org/stable/c/0ae42b51607240990614e0843f0d3529aaff62cc"
},
{
"url": "https://git.kernel.org/stable/c/ad09aa45965d3fafaf9963bc78109b73c0f9ac8d"
}
],
"title": "ext4: fix kernel BUG in ext4_write_inline_data_end",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74308",
"datePublished": "2026-08-15T05:58:08.682Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-08-17T05:16:57.145Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72018 (GCVE-0-2026-72018)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-10-16 18:42
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dibs: loopback: validate offset and size in move_data()
The loopback move_data() performs a memcpy into the registered DMB
without checking whether offset + size exceeds the DMB length. Unlike
real ISM hardware, which enforces memory region bounds natively, the
software loopback has no such protection.
A peer-supplied out-of-bounds offset or oversized write would result in
an OOB write past the allocated kernel buffer. Add an explicit bounds
check before the memcpy to reject such requests with -EINVAL.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72018",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:10.930913Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:42:39.883Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dibs/dibs_loopback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ee188a6b264b71315a67f1b9470faad308b730d2",
"status": "affected",
"version": "f7a22071dbf316c982fb44308874bd7ad9ac2091",
"versionType": "git"
},
{
"lessThan": "b2f426a9a22886071966432ede8fceafffe12b8c",
"status": "affected",
"version": "f7a22071dbf316c982fb44308874bd7ad9ac2091",
"versionType": "git"
},
{
"lessThan": "94fe0ab01b480b52bd8f977edbd845ef375d69fd",
"status": "affected",
"version": "f7a22071dbf316c982fb44308874bd7ad9ac2091",
"versionType": "git"
},
{
"lessThan": "78237e3c0720fcc6eb9b87e90fd70f63eeca886f",
"status": "affected",
"version": "f7a22071dbf316c982fb44308874bd7ad9ac2091",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dibs/dibs_loopback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndibs: loopback: validate offset and size in move_data()\n\nThe loopback move_data() performs a memcpy into the registered DMB\nwithout checking whether offset + size exceeds the DMB length. Unlike\nreal ISM hardware, which enforces memory region bounds natively, the\nsoftware loopback has no such protection.\n\nA peer-supplied out-of-bounds offset or oversized write would result in\nan OOB write past the allocated kernel buffer. Add an explicit bounds\ncheck before the memcpy to reject such requests with -EINVAL."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is only reachable via loopback-ISM (intra-OS DIBS), which requires matching local GID and shared kernel; exploitation is through AF_SMC sendmsg after SMC-D handshake, not remote packet handling on a network-facing stack path.\nAC:L - A malicious SMC-D peer can supply crafted CLC dmbe_idx/dmbe_size values and send patterns that drive move_data() with attacker-controlled offset and size; no race or uncontrollable memory layout is required once loopback-ISM is active.\nPR:L - Exploitation requires only an unprivileged local account able to open AF_SMC sockets and complete an SMC-D loopback handshake (no CAP_NET_ADMIN or root); the SMC CLC path performs no authentication beyond standard socket access controls.\nUI:N - No victim user action is needed when a malicious peer initiates an inbound SMC-D connection to a listening service; the attacker can trigger the OOB write by sending SMC-D data after handshake completion.\nS:U - The OOB write corrupts kernel heap memory within the same kernel security authority; successful exploitation yields local privilege escalation, not cross-VM, container-boundary, or IOMMU bypass scope change.\nC:H - An out-of-bounds kernel heap write past the folio-allocated DMB buffer can corrupt adjacent kernel objects and be leveraged for arbitrary kernel memory disclosure, not merely a bounded leak or pure crash.\nI:H - The unchecked memcpy() allows controlled out-of-bounds writes beyond the registered DMB allocation, enabling heap corruption and potential arbitrary kernel code execution or control-flow hijacking.\nA:H - Writing past the allocated DMB folio can immediately corrupt critical kernel structures and cause kernel oops, panic, or hang; heap corruption from the OOB write itself constitutes high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:27.125Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ee188a6b264b71315a67f1b9470faad308b730d2"
},
{
"url": "https://git.kernel.org/stable/c/b2f426a9a22886071966432ede8fceafffe12b8c"
},
{
"url": "https://git.kernel.org/stable/c/94fe0ab01b480b52bd8f977edbd845ef375d69fd"
},
{
"url": "https://git.kernel.org/stable/c/78237e3c0720fcc6eb9b87e90fd70f63eeca886f"
}
],
"title": "dibs: loopback: validate offset and size in move_data()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72018",
"datePublished": "2026-08-15T05:51:45.360Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-10-16T18:42:39.883Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72491 (GCVE-0-2026-72491)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/9p: fix race condition on rdma->state in trans_rdma.c
The rdma->state field is modified without holding req_lock in both
recv_done() and p9_cm_event_handler(), while rdma_request() accesses
the same field under the req_lock spinlock. This inconsistent locking
creates a race condition:
- recv_done() running in softirq completion context sets
rdma->state = P9_RDMA_FLUSHING without acquiring req_lock
- p9_cm_event_handler() modifies rdma->state at multiple points
(ADDR_RESOLVED, ROUTE_RESOLVED, ESTABLISHED, CLOSED) without
req_lock
- rdma_request() uses spin_lock_irqsave(&rdma->req_lock, flags) to
protect the read-modify-write of rdma->state
The race can cause lost state transitions: recv_done() or the CM
event handler could set state to FLUSHING/CLOSED while rdma_request()
is concurrently checking or modifying state under the lock, leading to
the FLUSHING transition being silently overwritten by CLOSING. This
corrupts the connection state machine and can cause use-after-free on
RDMA request objects during teardown.
Fix by adding req_lock protection to all rdma->state modifications in
recv_done() and p9_cm_event_handler(), matching the pattern already
used in rdma_request(). Use spin_lock_irqsave/spin_unlock_irqrestore
in the CM event handler since it can race with recv_done() which runs
in softirq context.
Tested with a kernel module that races two threads (simulating
rdma_request and recv_done/CM handler) on rdma->state with proper
locking: 5.5M+ FLUSHING writes over 27M iterations with 0 lost
transitions.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b Version: 3479b3c35e82ed10aa0ca2ee9e78c4eded06ba62 Version: c01ddaa54d7411e964ffd250c018d8469c5852f2 Version: 9e69c673fe077b8dc491cd8406c9bdcb1f76dee2 Version: e48e7e27e4dfd00c81e0381e7cee610cce021452 Version: 4.4.185 ≤ Version: 4.9.185 ≤ Version: 4.14.132 ≤ Version: 4.19.57 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72491",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:50.731501Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:26.515Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/9p/trans_rdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4cee2b8766045059d5e0b8114837b4a8efe827ac",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "5424138848eb7d7d8a7196676e90a2cbf2142454",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "3970a19a80de530b801b6256354d4a529a9a2d6c",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "8aadc136d8e8d8fc95d7982d213cfe2234dfcf2b",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "151f8cf5b23d8a534d884432a82a6d54d5a61989",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "13bf9879b778b2f4b260b45bed18f31806120d1e",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "ebbcbe5c0db215feecc17def06178da443f4eea6",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"lessThan": "7d54894a1ee265a72d70f7cae1da6cc774cccc71",
"status": "affected",
"version": "473c7dd1d7b59ff8f88a5154737e3eac78a96e5b",
"versionType": "git"
},
{
"status": "affected",
"version": "3479b3c35e82ed10aa0ca2ee9e78c4eded06ba62",
"versionType": "git"
},
{
"status": "affected",
"version": "c01ddaa54d7411e964ffd250c018d8469c5852f2",
"versionType": "git"
},
{
"status": "affected",
"version": "9e69c673fe077b8dc491cd8406c9bdcb1f76dee2",
"versionType": "git"
},
{
"status": "affected",
"version": "e48e7e27e4dfd00c81e0381e7cee610cce021452",
"versionType": "git"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.185",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.185",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.132",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.57",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/9p/trans_rdma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.20"
},
{
"lessThan": "4.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.185",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.185",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.132",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.57",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/9p: fix race condition on rdma-\u003estate in trans_rdma.c\n\nThe rdma-\u003estate field is modified without holding req_lock in both\nrecv_done() and p9_cm_event_handler(), while rdma_request() accesses\nthe same field under the req_lock spinlock. This inconsistent locking\ncreates a race condition:\n\n- recv_done() running in softirq completion context sets\n rdma-\u003estate = P9_RDMA_FLUSHING without acquiring req_lock\n\n- p9_cm_event_handler() modifies rdma-\u003estate at multiple points\n (ADDR_RESOLVED, ROUTE_RESOLVED, ESTABLISHED, CLOSED) without\n req_lock\n\n- rdma_request() uses spin_lock_irqsave(\u0026rdma-\u003ereq_lock, flags) to\n protect the read-modify-write of rdma-\u003estate\n\nThe race can cause lost state transitions: recv_done() or the CM\nevent handler could set state to FLUSHING/CLOSED while rdma_request()\nis concurrently checking or modifying state under the lock, leading to\nthe FLUSHING transition being silently overwritten by CLOSING. This\ncorrupts the connection state machine and can cause use-after-free on\nRDMA request objects during teardown.\n\nFix by adding req_lock protection to all rdma-\u003estate modifications in\nrecv_done() and p9_cm_event_handler(), matching the pattern already\nused in rdma_request(). Use spin_lock_irqsave/spin_unlock_irqrestore\nin the CM event handler since it can race with recv_done() which runs\nin softirq context.\n\nTested with a kernel module that races two threads (simulating\nrdma_request and recv_done/CM handler) on rdma-\u003estate with proper\nlocking: 5.5M+ FLUSHING writes over 27M iterations with 0 lost\ntransitions."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The 9p RDMA client processes RDMA receive completions and CM disconnect events from the remote peer in recv_done() and p9_cm_event_handler(); a malicious or compromised 9p server over RoCE/iWARP can trigger err_out and concurrent teardown without local access.\nAC:L - The attacker controls both sides of the race by sending malformed 9p RDMA replies to drive recv_done() into err_out while forcing disconnects and concurrent rdma_request() error paths; no uncontrollable memory layout or rare victim state is required.\nPR:N - A remote malicious 9p RDMA server needs no credentials on the victim kernel; HPC clusters and virtio-9p backends with persistent trans=rdma mounts let the server alone time malformed replies against in-flight client requests.\nUI:N - No per-attack victim action is needed on existing 9p RDMA mounts\u2014automated workloads, parallel I/O, and server-initiated RDMA disconnects concurrently reach recv_done() and rdma_request() during normal filesystem operation.\nS:U - Impact is kernel heap corruption and local privilege escalation within the victim kernel security domain; UAF on p9_req_t during RDMA teardown does not cross VM, container, or IOMMU isolation boundaries.\nC:H - Lost FLUSHING state transitions corrupt the connection teardown state machine and cause use-after-free on RDMA request (p9_req_t) objects; UAF provides attacker-influenced freed-heap contents usable for arbitrary kernel memory disclosure.\nI:H - Corrupted rdma-\u003estate frees in-flight p9_req_t structures while send_done() and p9_client_cb() still hold references, enabling heap grooming and arbitrary kernel write or control-flow hijack primitives.\nA:H - Use-after-free during RDMA request teardown causes kernel oops or panic when dangling p9_req_t objects are accessed, and state-machine corruption alone can hang or crash the 9p RDMA transport."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:52.224Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4cee2b8766045059d5e0b8114837b4a8efe827ac"
},
{
"url": "https://git.kernel.org/stable/c/5424138848eb7d7d8a7196676e90a2cbf2142454"
},
{
"url": "https://git.kernel.org/stable/c/3970a19a80de530b801b6256354d4a529a9a2d6c"
},
{
"url": "https://git.kernel.org/stable/c/8aadc136d8e8d8fc95d7982d213cfe2234dfcf2b"
},
{
"url": "https://git.kernel.org/stable/c/151f8cf5b23d8a534d884432a82a6d54d5a61989"
},
{
"url": "https://git.kernel.org/stable/c/13bf9879b778b2f4b260b45bed18f31806120d1e"
},
{
"url": "https://git.kernel.org/stable/c/ebbcbe5c0db215feecc17def06178da443f4eea6"
},
{
"url": "https://git.kernel.org/stable/c/7d54894a1ee265a72d70f7cae1da6cc774cccc71"
}
],
"title": "net/9p: fix race condition on rdma-\u003estate in trans_rdma.c",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72491",
"datePublished": "2026-08-15T05:57:26.281Z",
"dateReserved": "2026-08-09T03:40:39.936Z",
"dateUpdated": "2026-10-16T18:55:26.515Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89672 (GCVE-0-2026-89672)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: gate nfs2 setacl by argp->mask
The NFSACL v2 SETACL path shares the decoder convention used by its
v3 sibling: nfsaclsvc_decode_setaclargs() fills in argp->acl_access
only when NFS_ACL is set in the request mask and argp->acl_default
only when NFS_DFACL is set, leaving the other pointer NULL because
the argument buffer is zeroed up to pc_argzero before decode.
nfsacld_proc_setacl() then hands both pointers to set_posix_acl()
unconditionally. set_posix_acl(idmap, dentry, type, NULL) is the VFS
"remove this ACL type" operation, so an omitted arm is
indistinguishable from an explicit request to delete that ACL. A
SETACL carrying only NFS_ACL silently strips the directory's default
ACL; mask=0 strips both.
This is the same defect just fixed in nfsd3_proc_setacl(); apply the
same remedy. Gate each set_posix_acl() call on its mask bit and
initialize error to 0 so that a request with neither bit set leaves
the on-disk ACLs untouched and returns success. The out_drop_lock
path and the unconditional posix_acl_release() in
nfsaclsvc_release_setacl() already tolerate the skipped arms.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89672",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:25:46.874632Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:48.206Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs2acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8e4422b05f410f95c51b68a0db4bf1d87f6d22f5",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "e41d173d9dc735cecb15ab7aa63ecab09338f81b",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "f951b22dbeec46f2e0fba81cb80d1b0c686b61eb",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "37eea38e7898538f0ec5f1eb8b18d8646e4be41c",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
},
{
"lessThan": "a3a7e20ed66d3f04d37883c398da8a113b430769",
"status": "affected",
"version": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs2acl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.13"
},
{
"lessThan": "2.6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: gate nfs2 setacl by argp-\u003emask\n\nThe NFSACL v2 SETACL path shares the decoder convention used by its\nv3 sibling: nfsaclsvc_decode_setaclargs() fills in argp-\u003eacl_access\nonly when NFS_ACL is set in the request mask and argp-\u003eacl_default\nonly when NFS_DFACL is set, leaving the other pointer NULL because\nthe argument buffer is zeroed up to pc_argzero before decode.\n\nnfsacld_proc_setacl() then hands both pointers to set_posix_acl()\nunconditionally. set_posix_acl(idmap, dentry, type, NULL) is the VFS\n\"remove this ACL type\" operation, so an omitted arm is\nindistinguishable from an explicit request to delete that ACL. A\nSETACL carrying only NFS_ACL silently strips the directory\u0027s default\nACL; mask=0 strips both.\n\nThis is the same defect just fixed in nfsd3_proc_setacl(); apply the\nsame remedy. Gate each set_posix_acl() call on its mask bit and\ninitialize error to 0 so that a request with neither bit set leaves\nthe on-disk ACLs untouched and returns success. The out_drop_lock\npath and the unconditional posix_acl_release() in\nnfsaclsvc_release_setacl() already tolerate the skipped arms."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in nfsd NFSACL v2 SETACL (RPC program 100227, ACLPROC2_SETACL) in nfsacld_proc_setacl(); a remote NFS client reaches it over TCP/UDP 2049 via svc_process to nfsd_dispatch and nfsaclsvc_decode_setaclargs.\nAC:L - The attacker supplies the SETACL mask and filehandle. A request with only NFS_ACL, only NFS_DFACL, or mask=0 leaves the omitted posix_acl pointer NULL (pc_argzero), and set_posix_acl() treats NULL as delete with no race or uninfluencable victim state.\nPR:N - Typical AUTH_SYS nfsd exports do not cryptographically verify RPC credentials; any host allowed by the export can MOUNT/LOOKUP and send SETACL with a spoofed AUTH_UNIX owner uid so nfsd_setuser() and inode_owner_or_capable() succeed without a local account.\nUI:N - The attacking NFS client sends the SETACL RPC itself; no local user or administrator action on the NFS server, such as mounting a filesystem or opening a file, is required at attack time.\nS:U - Unintended set_posix_acl(NULL) only removes POSIX ACL xattrs on the exported filesystem of the nfsd host; impact stays in that kernel/filesystem security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Silently deleting a directory default ACL (SETACL with only NFS_ACL, or mask=0 stripping both) drops inheritance so new files are governed only by mode/umask, allowing a remote client to READ subsequently created data those default ACLs were meant to keep confidential.\nI:H - nfsacld_proc_setacl() calls set_posix_acl(..., NULL) for every ACL type omitted from the mask, which is the VFS delete operation, so an attacker-chosen inode can have its access ACL, default ACL, or both completely removed and later writes those ACLs would have denied.\nA:N - This is an unintended POSIX ACL deletion through the normal set_posix_acl(NULL) remove path; it does not oops, panic, hang, deadlock, or leak memory, so the NFS server and host remain available."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:45.617Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8e4422b05f410f95c51b68a0db4bf1d87f6d22f5"
},
{
"url": "https://git.kernel.org/stable/c/e41d173d9dc735cecb15ab7aa63ecab09338f81b"
},
{
"url": "https://git.kernel.org/stable/c/f951b22dbeec46f2e0fba81cb80d1b0c686b61eb"
},
{
"url": "https://git.kernel.org/stable/c/37eea38e7898538f0ec5f1eb8b18d8646e4be41c"
},
{
"url": "https://git.kernel.org/stable/c/a3a7e20ed66d3f04d37883c398da8a113b430769"
}
],
"title": "nfsd: gate nfs2 setacl by argp-\u003emask",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89672",
"datePublished": "2026-09-11T19:45:57.414Z",
"dateReserved": "2026-09-11T19:38:34.746Z",
"dateUpdated": "2026-10-19T08:50:45.617Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72460 (GCVE-0-2026-72460)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
apparmor: check label build before no_new_privs test
aa_change_profile() builds a replacement label with
fn_label_build_in_scope() before the no_new_privs subset check. The build
helper can fail and return NULL or an ERR_PTR, but the result was passed
to aa_label_is_unconfined_subset() before the existing IS_ERR_OR_NULL()
check.
Reuse the existing target-label build failure handling immediately after
the build. This preserves the current audit handling while preventing the
subset helper from dereferencing an invalid label.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 Version: e00b02bb6ac2a1893227ce8014b649028d6425d2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/apparmor/domain.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a29f06db44b4c94597ded58f639eed3e21781ac3",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "cfc224866530a6842b6c2d2d30ef6a9b0e64bb9c",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "31cb109db5e6322ed22304fd5c0dedbaa438d6d3",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "b7c45c05a396a017c49ac7949de240a0dfc0ac4e",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "d84bb195d208adbf77f012ca2a96e11163f6def1",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "d82160132345688a09cbaa648cfdd16bb32e8ea2",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "ec926b2a351eeeb31e6c9aee02e0c32f94b5588f",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
},
{
"lessThan": "a58cafd38b46fb1a2220e2fbbcfe291ea75fa147",
"status": "affected",
"version": "e00b02bb6ac2a1893227ce8014b649028d6425d2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/apparmor/domain.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.13"
},
{
"lessThan": "4.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: check label build before no_new_privs test\n\naa_change_profile() builds a replacement label with\nfn_label_build_in_scope() before the no_new_privs subset check. The build\nhelper can fail and return NULL or an ERR_PTR, but the result was passed\nto aa_label_is_unconfined_subset() before the existing IS_ERR_OR_NULL()\ncheck.\n\nReuse the existing target-label build failure handling immediately after\nthe build. This preserves the current audit handling while preventing the\nsubset helper from dereferencing an invalid label."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only through a local write to /proc/self/attr/current or /proc/self/attr/exec (changeprofile/exec), which flows through proc_pid_attr_write and the AppArmor setprocattr hook into aa_change_profile(); there is no network, adjacent-radio, or physical-device entry point.\nAC:L - Once a confined task with policy-granted changeprofile and PR_SET_NO_NEW_PRIVS calls the interface, fn_label_build_in_scope() failure (e.g., GFP_KERNEL ENOMEM from memory pressure) is reliably attacker-influenced and immediately triggers the invalid dereference without races or victim-dependent timing.\nPR:L - Exploitation requires a local unprivileged process confined by AppArmor whose policy permits changeprofile/onexec to the requested target; prctl(PR_SET_NO_NEW_PRIVS) is self-settable and does not require real root or init-namespace capabilities.\nUI:N - The attacker triggers the bug by writing to their own process attribute file; no separate victim action such as opening a file, mounting a filesystem, or clicking a link is required.\nS:U - The vulnerable AppArmor kernel code and the resulting kernel oops/panic affect the same OS security authority; this is not a VM escape, IOMMU bypass, or cross-authority sandbox breakout as defined by CVSS scope.\nC:H - aa_label_is_unconfined_subset() dereferences the failed label pointer (NULL or ERR_PTR) to read aa_label fields such as size/vec; ERR_PTR values are non-NULL kernel-range addresses, so the fault path includes an invalid kernel-memory read that can leak data before oops under worst-case layout.\nI:N - The bug performs invalid reads through a bad label pointer and does not write memory, corrupt adjacent objects, or complete an unauthorized aa_replace_current_label(); failed builds are still rejected later, so integrity impact is limited to the read-side fault rather than modification or code execution.\nA:H - Dereferencing NULL or ERR_PTR labels in aa_label_is_unconfined_subset() causes a kernel BUG/oops/panic, yielding host-wide denial of service on AppArmor-enabled systems and repeatable crashes from the same procattr write."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:26.306Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a29f06db44b4c94597ded58f639eed3e21781ac3"
},
{
"url": "https://git.kernel.org/stable/c/cfc224866530a6842b6c2d2d30ef6a9b0e64bb9c"
},
{
"url": "https://git.kernel.org/stable/c/31cb109db5e6322ed22304fd5c0dedbaa438d6d3"
},
{
"url": "https://git.kernel.org/stable/c/b7c45c05a396a017c49ac7949de240a0dfc0ac4e"
},
{
"url": "https://git.kernel.org/stable/c/d84bb195d208adbf77f012ca2a96e11163f6def1"
},
{
"url": "https://git.kernel.org/stable/c/d82160132345688a09cbaa648cfdd16bb32e8ea2"
},
{
"url": "https://git.kernel.org/stable/c/ec926b2a351eeeb31e6c9aee02e0c32f94b5588f"
},
{
"url": "https://git.kernel.org/stable/c/a58cafd38b46fb1a2220e2fbbcfe291ea75fa147"
}
],
"title": "apparmor: check label build before no_new_privs test",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72460",
"datePublished": "2026-08-15T05:57:05.404Z",
"dateReserved": "2026-08-09T03:40:39.932Z",
"dateUpdated": "2026-08-17T05:44:26.306Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74450 (GCVE-0-2026-74450)
Vulnerability from cvelistv5
Published
2026-08-15 12:26
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/pm: fix pptable use-after-free
amdgpu_dpm_get_pp_table() returns a pointer to a driver-owned power table
after dropping adev->pm.mutex. The sysfs path then copies from that pointer.
A concurrent pp_table write can replace and free the allocation during the
copy, causing a use-after-free.
Change the DPM interface to copy into caller-provided storage while the mutex
is held. Keep the size-only query for attribute discovery without exposing
the driver-owned pointer.
(cherry picked from commit f6eed7acfd30099ef7baeb6ba45bb59daad80631)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1684d3ba488529266ce6f97b88076bd185f4790e Version: 1684d3ba488529266ce6f97b88076bd185f4790e Version: 1684d3ba488529266ce6f97b88076bd185f4790e Version: 1684d3ba488529266ce6f97b88076bd185f4790e Version: 1684d3ba488529266ce6f97b88076bd185f4790e Version: 1684d3ba488529266ce6f97b88076bd185f4790e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74450",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:56:51.440492Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:46.575Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/pm/amdgpu_dpm.c",
"drivers/gpu/drm/amd/pm/amdgpu_pm.c",
"drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3fbb3ac75000e3187f500a91a4099b24206866a1",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
},
{
"lessThan": "9efc767335234cf7a892e46d45cd453b711421e7",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
},
{
"lessThan": "81b5af1fb0f14cace6c3b3130a05e5602a597820",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
},
{
"lessThan": "8c685df5c3b261c42505110965b42f9a754eb9b7",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
},
{
"lessThan": "b628f2c6feb3a115ea72d3120a2bd94afc5163df",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
},
{
"lessThan": "bb493058c35c8676e48269ab6732688ea733d23c",
"status": "affected",
"version": "1684d3ba488529266ce6f97b88076bd185f4790e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/pm/amdgpu_dpm.c",
"drivers/gpu/drm/amd/pm/amdgpu_pm.c",
"drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/pm: fix pptable use-after-free\n\namdgpu_dpm_get_pp_table() returns a pointer to a driver-owned power table\nafter dropping adev-\u003epm.mutex. The sysfs path then copies from that pointer.\nA concurrent pp_table write can replace and free the allocation during the\ncopy, causing a use-after-free.\n\nChange the DPM interface to copy into caller-provided storage while the mutex\nis held. Keep the size-only query for attribute discovery without exposing\nthe driver-owned pointer.\n\n(cherry picked from commit f6eed7acfd30099ef7baeb6ba45bb59daad80631)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reached only via local sysfs read/write on /sys/class/drm/cardN/device/pp_table (amdgpu_get_pp_table/amdgpu_set_pp_table); no network, adjacent, or physical-access path exists into amdgpu_dpm_get_pp_table().\nAC:L - A single attacker can drive both sides of the race with concurrent pp_table read and write threads; the write path holds pm.mutex during smu_reset/smu_sys_set_pp_table() while the read copies up to PAGE_SIZE-1 bytes from a pointer obtained after mutex drop.\nPR:L - Triggering the concurrent write/free requires sysfs write access to pp_table; the kernel CNA\u0027s CVE-2025-21780 scored the same attribute PR:L because gaming/handheld udev rules commonly group-write pp_* nodes and the commit describes a concurrent pp_table write.\nUI:N - Exploitation is performed by the attacker\u0027s own concurrent sysfs read/write loops; no action by another user or victim is required.\nS:U - The use-after-free corrupts kernel heap memory during a sysfs memcpy in amdgpu_pm.c; impact stays within the kernel security authority with no VM, IOMMU, or sandbox boundary crossed.\nC:H - Use-after-free on a kmalloc\u0027d pp table during memcpy can return freed/reallocated kernel heap contents up to PAGE_SIZE-1 bytes to userspace and enables arbitrary kernel memory reads via heap grooming.\nI:H - Concurrent pp_table writes control kmalloc size/contents while reads dereference the freed pptable, classic UAF heap corruption that can be weaponized for arbitrary kernel writes and privilege escalation.\nA:H - Reading freed pptable memory during memcpy causes kernel oops/panic and smu_reset() during the concurrent write can wedge discrete AMD GPUs; UAF reliably threatens system/GPU availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:19.009Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3fbb3ac75000e3187f500a91a4099b24206866a1"
},
{
"url": "https://git.kernel.org/stable/c/9efc767335234cf7a892e46d45cd453b711421e7"
},
{
"url": "https://git.kernel.org/stable/c/81b5af1fb0f14cace6c3b3130a05e5602a597820"
},
{
"url": "https://git.kernel.org/stable/c/8c685df5c3b261c42505110965b42f9a754eb9b7"
},
{
"url": "https://git.kernel.org/stable/c/b628f2c6feb3a115ea72d3120a2bd94afc5163df"
},
{
"url": "https://git.kernel.org/stable/c/bb493058c35c8676e48269ab6732688ea733d23c"
}
],
"title": "drm/amd/pm: fix pptable use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74450",
"datePublished": "2026-08-15T12:26:55.127Z",
"dateReserved": "2026-08-15T05:44:03.899Z",
"dateUpdated": "2026-10-16T19:05:46.575Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74534 (GCVE-0-2026-74534)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-23 08:20
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: fix refcounting of iso_conn
iso_conn_del() and iso_chan_del() have a race that results to double-put
of iso_conn:
[Task hdev->workqueue] [Task 2]
iso_conn_del iso_chan_del
iso_conn_hold_unless_zero iso_conn_lock
iso_conn_lock conn->sk = NULL
iso_conn_unlock
sk = iso_sock_hold(conn) <---------´
if (!sk) iso_conn_put iso_conn_put
iso_conn_put /* UAF */
The extra put for !sk in iso_conn_del() is currently required since
failing iso_chan_add() may leave iso_conn not associated with any sk.
Fix by having iso_pi(sk)->conn own refcount when non-NULL, so
iso_conn_del does not need to put it. Adjust the iso_conn_add()
refcounting so that conn is put if it does not get associated with an
sk.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a58d0f5dac322e16cc75334d000666512341bde5 Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: dc26097bdb864a0d5955b9a25e43376ffc1af99b Version: f53e7489273dc2bb307bf50f319b3762d45534f0 Version: 6.12.2 ≤ Version: 6.11.11 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74534",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:26.294931Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:53.833Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "42c8bd6ac81e21200bb90f1eaf43d19352eec6d7",
"status": "affected",
"version": "a58d0f5dac322e16cc75334d000666512341bde5",
"versionType": "git"
},
{
"lessThan": "3b921533e8aa95b77aadcf31737595578e735f3c",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "8208b4939afb0a1977fffe902c3ca42fe0f3baaa",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"lessThan": "fdfde532ab1caa165fcd8985001157ac8b4db365",
"status": "affected",
"version": "dc26097bdb864a0d5955b9a25e43376ffc1af99b",
"versionType": "git"
},
{
"status": "affected",
"version": "f53e7489273dc2bb307bf50f319b3762d45534f0",
"versionType": "git"
},
{
"lessThan": "6.12.113",
"status": "affected",
"version": "6.12.2",
"versionType": "semver"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "6.12.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: fix refcounting of iso_conn\n\niso_conn_del() and iso_chan_del() have a race that results to double-put\nof iso_conn:\n\n [Task hdev-\u003eworkqueue] [Task 2]\n iso_conn_del iso_chan_del\n iso_conn_hold_unless_zero iso_conn_lock\n iso_conn_lock conn-\u003esk = NULL\n iso_conn_unlock\n sk = iso_sock_hold(conn) \u003c---------\u00b4\n if (!sk) iso_conn_put iso_conn_put\n iso_conn_put /* UAF */\n\nThe extra put for !sk in iso_conn_del() is currently required since\nfailing iso_chan_add() may leave iso_conn not associated with any sk.\n\nFix by having iso_pi(sk)-\u003econn own refcount when non-NULL, so\niso_conn_del does not need to put it. Adjust the iso_conn_add()\nrefcounting so that conn is put if it does not get associated with an\nsk."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is in Bluetooth ISO connection teardown; a remote LE Audio/CIS/BIS peer in range can trigger iso_conn_del via HCI disconnect events (iso_disconn_cfm) that race with concurrent socket teardown.\nAC:L - The double kref_put race is between iso_conn_del and iso_chan_del; an adjacent attacker controls disconnect timing and can repeatedly connect/disconnect to race automatic kernel and Bluetooth daemon socket cleanup.\nPR:N - No local UNIX privileges are required; a malicious or compromised adjacent Bluetooth ISO peer with an established connection can initiate the disconnect leg without root, capabilities, or user-namespace admin rights.\nUI:N - No explicit victim action is needed beyond an active ISO session; remote disconnect triggers automatic HCI teardown and stack socket close that can race iso_chan_del without the user manually closing applications.\nS:U - The vulnerability corrupts kernel heap lifetime of iso_conn objects within the Bluetooth subsystem and does not cross VM, hypervisor, or IOMMU security boundaries.\nC:H - Premature kfree of iso_conn from the refcount race is a use-after-free that can expose kernel heap contents and be leveraged for arbitrary kernel memory disclosure.\nI:H - UAF on iso_conn enables heap grooming and corrupted pointer dereferences that can be leveraged for arbitrary kernel memory writes or privilege-escalating code execution.\nA:H - The double iso_conn_put can free iso_conn while still referenced, causing kernel oops/panic or reliably exploitable instability during ISO connection teardown."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-23T08:20:16.546Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/42c8bd6ac81e21200bb90f1eaf43d19352eec6d7"
},
{
"url": "https://git.kernel.org/stable/c/3b921533e8aa95b77aadcf31737595578e735f3c"
},
{
"url": "https://git.kernel.org/stable/c/8208b4939afb0a1977fffe902c3ca42fe0f3baaa"
},
{
"url": "https://git.kernel.org/stable/c/fdfde532ab1caa165fcd8985001157ac8b4db365"
}
],
"title": "Bluetooth: ISO: fix refcounting of iso_conn",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74534",
"datePublished": "2026-08-15T12:27:47.831Z",
"dateReserved": "2026-08-15T05:44:03.913Z",
"dateUpdated": "2026-10-23T08:20:16.546Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72448 (GCVE-0-2026-72448)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
octeontx2-pf: Fix leak of SQ timestamp buffer on teardown
The send-queue timestamp ring is allocated with qmem_alloc() when
timestamping is used, but otx2_free_sq_res() never freed sq->timestamps,
leaking that memory across ifdown and device removal. Add the missing
qmem_free() alongside the other SQ companion buffers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 Version: c9c12d339d93366732112d7ff472958834bfc3c5 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c642a530aaaeb9a3e356cedfe77955e7f983380e",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "e68ada66afcae0bc2a7c06b43c5a9a081d29e7b4",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "d6c0b0c802d3c49b86cad665a7f3790dc55a0394",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "19d2d36e193c3fb515c052a56bfc83d8ac7b6764",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "e8e9dff204e8d8553495893e1a44d2b5021648de",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "3d45d40b872aec0073d4cf08956a6c9b87c5e396",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "452ec5058ea4ed63adae8d6beeac9ee687fe8061",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
},
{
"lessThan": "a056db30de92945ff8ee6033096678bfbae878e3",
"status": "affected",
"version": "c9c12d339d93366732112d7ff472958834bfc3c5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-pf: Fix leak of SQ timestamp buffer on teardown\n\nThe send-queue timestamp ring is allocated with qmem_alloc() when\ntimestamping is used, but otx2_free_sq_res() never freed sq-\u003etimestamps,\nleaking that memory across ifdown and device removal. Add the missing\nqmem_free() alongside the other SQ companion buffers."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:14:50.660Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c642a530aaaeb9a3e356cedfe77955e7f983380e"
},
{
"url": "https://git.kernel.org/stable/c/e68ada66afcae0bc2a7c06b43c5a9a081d29e7b4"
},
{
"url": "https://git.kernel.org/stable/c/d6c0b0c802d3c49b86cad665a7f3790dc55a0394"
},
{
"url": "https://git.kernel.org/stable/c/19d2d36e193c3fb515c052a56bfc83d8ac7b6764"
},
{
"url": "https://git.kernel.org/stable/c/e8e9dff204e8d8553495893e1a44d2b5021648de"
},
{
"url": "https://git.kernel.org/stable/c/3d45d40b872aec0073d4cf08956a6c9b87c5e396"
},
{
"url": "https://git.kernel.org/stable/c/452ec5058ea4ed63adae8d6beeac9ee687fe8061"
},
{
"url": "https://git.kernel.org/stable/c/a056db30de92945ff8ee6033096678bfbae878e3"
}
],
"title": "octeontx2-pf: Fix leak of SQ timestamp buffer on teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72448",
"datePublished": "2026-08-15T05:56:57.701Z",
"dateReserved": "2026-08-09T03:40:39.931Z",
"dateUpdated": "2026-08-17T05:14:50.660Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74663 (GCVE-0-2026-74663)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: reject overly deep qdisc hierarchies
Deep qdisc hierarchies can lead to excessive recursion in qdisc tree
walkers and exhaust the kernel stack. The existing loop check does not
cover the create-and-graft path, so a hierarchy can still be extended by
creating a new child qdisc below an already deep parent.
Store the hierarchy depth in struct Qdisc and update it when qdiscs are
grafted. Reject new child qdiscs once the parent is already at the maximum
allowed depth.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74663",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:09.885396Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:07.950Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/sch_generic.h",
"net/sched/sch_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "08dc49df1527b09d9ea225a7265bbf6c237097bf",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a627d36c2a94e18c8c105ae68008786dfd85592e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9f69bb9fdaa2fe64b68bb62fb84d405784bee540",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8ca8cdb74939581339e1ae370193c0adb5a85336",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2759acf08a3454866660edcd3ef4e64139f254a6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a4b14a4df29d36458a943f9b521ddd0f940363cc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e2d658c6427844cee5bc654b436ca68d680b6148",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "dedd34b0f2310e28c5f6d4875cfbf4b7ed821c01",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/sch_generic.h",
"net/sched/sch_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: reject overly deep qdisc hierarchies\n\nDeep qdisc hierarchies can lead to excessive recursion in qdisc tree\nwalkers and exhaust the kernel stack. The existing loop check does not\ncover the create-and-graft path, so a hierarchy can still be extended by\ncreating a new child qdisc below an already deep parent.\n\nStore the hierarchy depth in struct Qdisc and update it when qdiscs are\ngrafted. Reject new child qdiscs once the parent is already at the maximum\nallowed depth."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through RTM_NEWQDISC/tc netlink operations that build or graft qdiscs and invoke recursive qdisc tree walkers such as check_loop(); per kernel CNA guidance, tc/netlink qdisc configuration is Local and is not on any remote packet-receive path.\nAC:L - The create-and-graft path bypasses the existing depth-7 check_loop() guard, so an attacker can deterministically extend a linear classful qdisc chain (e.g., repeated HTB/HFSC grafts) and then trigger check_loop() with a graft/replace to recurse until the kernel stack is exhausted; no race or uncontrollable layout is required.\nPR:L - RTM_NEWQDISC is gated by netlink_net_capable(skb, CAP_NET_ADMIN) in rtnetlink_rcv_msg(), evaluated against the socket netns user_ns; an unprivileged local user routinely obtains CAP_NET_ADMIN via user+network namespaces (unshare -Urn) or containers with NET_ADMIN, not init-namespace root.\nUI:N - Exploitation requires only the attacker\u0027s own tc/netlink qdisc setup and a follow-on graft/replace that walks the deep hierarchy; no victim must open files, mount filesystems, click prompts, or perform any cooperative action.\nS:U - Impact is kernel-stack exhaustion and crash/panic within the same kernel security domain; it does not cross a VM, IOMMU, or sandbox boundary to another security authority such as guest-to-host escape.\nC:H - Unbounded recursion in qdisc tree walkers overflows the kernel task stack and corrupts stack memory before the guard-page fault; under overestimation guidance, such stack corruption is treated as plausibly enabling kernel memory disclosure rather than a pure crash with no data exposure.\nI:H - Recursive stack exhaustion overwrites saved return addresses and adjacent kernel stack frames, providing a plausible path to control-flow hijack or arbitrary kernel modification even though the immediate failure mode is oops/panic, not a bounded integrity change.\nA:H - Excessive recursion in qdisc tree walkers exhausts the kernel stack and causes a kernel oops/panic, denying all system availability on the host until reboot; any kernel stack guard fault or panic from this path scores Availability High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:59.404Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/08dc49df1527b09d9ea225a7265bbf6c237097bf"
},
{
"url": "https://git.kernel.org/stable/c/a627d36c2a94e18c8c105ae68008786dfd85592e"
},
{
"url": "https://git.kernel.org/stable/c/9f69bb9fdaa2fe64b68bb62fb84d405784bee540"
},
{
"url": "https://git.kernel.org/stable/c/8ca8cdb74939581339e1ae370193c0adb5a85336"
},
{
"url": "https://git.kernel.org/stable/c/2759acf08a3454866660edcd3ef4e64139f254a6"
},
{
"url": "https://git.kernel.org/stable/c/a4b14a4df29d36458a943f9b521ddd0f940363cc"
},
{
"url": "https://git.kernel.org/stable/c/e2d658c6427844cee5bc654b436ca68d680b6148"
},
{
"url": "https://git.kernel.org/stable/c/dedd34b0f2310e28c5f6d4875cfbf4b7ed821c01"
}
],
"title": "net/sched: reject overly deep qdisc hierarchies",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74663",
"datePublished": "2026-08-22T15:32:35.871Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-10-16T19:16:07.950Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68382 (GCVE-0-2026-68382)
Vulnerability from cvelistv5
Published
2026-08-10 12:04
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/guc: Hold device ref until queue teardown completes
GuC exec queue destruction can run asynchronously. If the final device
put happens from a destroy worker, drmm cleanup can end up draining
the same workqueue and deadlock.
Hold a drm_device reference for the queue lifetime and drop it after
queue teardown completes. This keeps drmm cleanup from running while
async destroy work is still pending.
Move GuC destroy work to a module-lifetime Xe workqueue and flush it
on PCI remove so hot-unbind/rebind still waits for pending destroy work.
With queue-held device refs, guc_submit_sw_fini() cannot run with live
GuC IDs. Replace the fini wait with an assertion and remove the unused
fini_wq.
v2:
- Rebase
v3:
- Switch to queue-lifetime drm_dev_get()/drm_dev_put() model. (Matt)
- Queue async teardown on system_dfl_wq instead of xe->destroy_wq. (Matt)
- Drop separate deferred drm_dev_put worker.
- Remove stale drain_workqueue(xe->destroy_wq) from guc_submit_sw_fini().
v4:
- Replace the guc_submit_sw_fini() wait with an assertion and remove
the now-unused fini_wq. (sashiko)
v5:
- Move destroy work to a module-lifetime Xe workqueue instead of
system_dfl_wq. (Matt)
- Flush the module-lifetime destroy workqueue during PCI remove to
preserve the old device-remove wait semantics.
v6:
- Keep SVM pagemap destroy work on the per-device destroy_wq to avoid
letting it outlive the xe_device/drm_device. (Sashiko)
- Use WQ_MEM_RECLAIM for xe->destroy_wq because SVM pagemap destroy work
can be queued from the reclaim path.
v7:
- Drop the per-device xe->destroy_wq and use the module-level destroy WQ
for SVM pagemap destroy as well. (Matt)
- Rename xe_exec_queue_destroy_wq_*() helpers to xe_destroy_wq_*()
helpers because the WQ is no longer exec-queue specific. (Matt)
v8:
- Rebase.
v9:
- Keep SVM pagemap destroy work on the per-device WQ_MEM_RECLAIM
destroy_wq because it can be queued from reclaim and embeds
the dev_pagemap used by devres teardown. (Sashiko)
- Keep the module-level destroy WQ GuC-only and drop WQ_MEM_RECLAIM
from it.
- Update the module-WQ kdoc to document the GuC/SVM split.
v10:
- Keep xe->destroy_wq per-cpu while adding WQ_MEM_RECLAIM to fix the
workqueue allocation warning.
v11:
- Drop the SVM pagemap destroy comment as it was revision-specific.
(Thomas)
v12:
- Rebase.
(cherry picked from commit da1124abac689cc2b1d8995e5f0a816f8a122edb)
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2d2be279f1ca9e7288282d4214f16eea8a727cdb Version: 2d2be279f1ca9e7288282d4214f16eea8a727cdb Version: 2d2be279f1ca9e7288282d4214f16eea8a727cdb Version: 272b0e78874586d6ccae04079d75b27b47705544 Version: 421c74670b0f9d5c007f1276d3647aa58f407fde Version: 6.10.14 ≤ Version: 6.11.3 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68382",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:43.404015Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:07.083Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_device.c",
"drivers/gpu/drm/xe/xe_device_types.h",
"drivers/gpu/drm/xe/xe_guc_submit.c",
"drivers/gpu/drm/xe/xe_guc_types.h",
"drivers/gpu/drm/xe/xe_module.c",
"drivers/gpu/drm/xe/xe_module.h",
"drivers/gpu/drm/xe/xe_pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "81f70f130eff985fb678d8b891c960381bc7e900",
"status": "affected",
"version": "2d2be279f1ca9e7288282d4214f16eea8a727cdb",
"versionType": "git"
},
{
"lessThan": "03d6f83979b0d75a0b0893dfe1735ec93facf515",
"status": "affected",
"version": "2d2be279f1ca9e7288282d4214f16eea8a727cdb",
"versionType": "git"
},
{
"lessThan": "9b7e60184f4b22e893d4ae95234d5f26261a430c",
"status": "affected",
"version": "2d2be279f1ca9e7288282d4214f16eea8a727cdb",
"versionType": "git"
},
{
"status": "affected",
"version": "272b0e78874586d6ccae04079d75b27b47705544",
"versionType": "git"
},
{
"status": "affected",
"version": "421c74670b0f9d5c007f1276d3647aa58f407fde",
"versionType": "git"
},
{
"lessThan": "6.11",
"status": "affected",
"version": "6.10.14",
"versionType": "semver"
},
{
"lessThan": "6.12",
"status": "affected",
"version": "6.11.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_device.c",
"drivers/gpu/drm/xe/xe_device_types.h",
"drivers/gpu/drm/xe/xe_guc_submit.c",
"drivers/gpu/drm/xe/xe_guc_types.h",
"drivers/gpu/drm/xe/xe_module.c",
"drivers/gpu/drm/xe/xe_module.h",
"drivers/gpu/drm/xe/xe_pci.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.10.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.11.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/guc: Hold device ref until queue teardown completes\n\nGuC exec queue destruction can run asynchronously. If the final device\nput happens from a destroy worker, drmm cleanup can end up draining\nthe same workqueue and deadlock.\n\nHold a drm_device reference for the queue lifetime and drop it after\nqueue teardown completes. This keeps drmm cleanup from running while\nasync destroy work is still pending.\n\nMove GuC destroy work to a module-lifetime Xe workqueue and flush it\non PCI remove so hot-unbind/rebind still waits for pending destroy work.\n\nWith queue-held device refs, guc_submit_sw_fini() cannot run with live\nGuC IDs. Replace the fini wait with an assertion and remove the unused\nfini_wq.\n\nv2:\n - Rebase\n\nv3:\n - Switch to queue-lifetime drm_dev_get()/drm_dev_put() model. (Matt)\n - Queue async teardown on system_dfl_wq instead of xe-\u003edestroy_wq. (Matt)\n - Drop separate deferred drm_dev_put worker.\n - Remove stale drain_workqueue(xe-\u003edestroy_wq) from guc_submit_sw_fini().\n\nv4:\n - Replace the guc_submit_sw_fini() wait with an assertion and remove\n the now-unused fini_wq. (sashiko)\n\nv5:\n - Move destroy work to a module-lifetime Xe workqueue instead of\n system_dfl_wq. (Matt)\n - Flush the module-lifetime destroy workqueue during PCI remove to\n preserve the old device-remove wait semantics.\n\nv6:\n - Keep SVM pagemap destroy work on the per-device destroy_wq to avoid\n letting it outlive the xe_device/drm_device. (Sashiko)\n - Use WQ_MEM_RECLAIM for xe-\u003edestroy_wq because SVM pagemap destroy work\n can be queued from the reclaim path.\n\nv7:\n - Drop the per-device xe-\u003edestroy_wq and use the module-level destroy WQ\n for SVM pagemap destroy as well. (Matt)\n - Rename xe_exec_queue_destroy_wq_*() helpers to xe_destroy_wq_*()\n helpers because the WQ is no longer exec-queue specific. (Matt)\n\nv8:\n - Rebase.\n\nv9:\n - Keep SVM pagemap destroy work on the per-device WQ_MEM_RECLAIM\n destroy_wq because it can be queued from reclaim and embeds\n the dev_pagemap used by devres teardown. (Sashiko)\n - Keep the module-level destroy WQ GuC-only and drop WQ_MEM_RECLAIM\n from it.\n - Update the module-WQ kdoc to document the GuC/SVM split.\n\nv10:\n - Keep xe-\u003edestroy_wq per-cpu while adding WQ_MEM_RECLAIM to fix the\n workqueue allocation warning.\n\nv11:\n - Drop the SVM pagemap destroy comment as it was revision-specific.\n (Thomas)\n\nv12:\n - Rebase.\n\n(cherry picked from commit da1124abac689cc2b1d8995e5f0a816f8a122edb)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable state is created through the Intel Xe DRM render node (/dev/dri/renderD*) via DRM_RENDER_ALLOW exec-queue create/destroy ioctls and manifests during local device teardown; no network or adjacent-network input is involved.\nAC:L - The attacker deterministically controls the decisive side of the race: GuC queue teardown blocks on a GuC deregister round-trip and cancel_delayed_work_sync() of the TDR, so long-running contexts with large preempt/job timeouts reliably keep exec_queue_lookup non-empty past guc_submit_sw_fini()\u0027s fixed 5s wait, and the attempt can be repeated freely.\nPR:L - Exec queue creation and destruction are DRM_RENDER_ALLOW ioctls reachable by any unprivileged user holding an open render node, which is granted to logged-in users by default udev/ACL rules on systems with Intel GPUs; no capability or root privilege is needed to leave destroy work pending.\nUI:N - The attacker acts entirely on its own through render-node ioctls and GPU submission; no victim must open a file, mount a filesystem, or take any other action for the stale teardown state to be created.\nS:U - The corruption is confined to kernel memory managed by the same security authority as the xe driver; there is no VM escape, IOMMU/DMA boundary bypass, or other crossing into a different security scope.\nC:H - After the 5s wait times out (the assert is a no-op on production builds), drm_dev_release() kfree()s the whole xe_device while destroy work is pending, so the worker dereferences a freed slab object; the attacker can spray the reclaimed allocation and read back kernel data through the stale xe/guc pointers and xarray.\nI:H - The pending worker writes through the freed xe_device \u2014 xa_erase() on the destroyed lookup, mutex operations on submission_state.lock, and xe_guc_id_mgr_release_locked() bitmap updates \u2014 giving controlled writes into a reclaimed heap object and a path to control-flow hijack.\nA:H - Use-after-free on the freed device structure reliably oopses or panics the kernel; additionally the drain_workqueue() from a work item on the same destroy workqueue self-deadlocks, hanging device removal indefinitely."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T10:08:21.163Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/81f70f130eff985fb678d8b891c960381bc7e900"
},
{
"url": "https://git.kernel.org/stable/c/03d6f83979b0d75a0b0893dfe1735ec93facf515"
},
{
"url": "https://git.kernel.org/stable/c/9b7e60184f4b22e893d4ae95234d5f26261a430c"
}
],
"title": "drm/xe/guc: Hold device ref until queue teardown completes",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68382",
"datePublished": "2026-08-10T12:04:01.187Z",
"dateReserved": "2026-07-30T09:28:09.387Z",
"dateUpdated": "2026-10-19T21:09:07.083Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-23352 (GCVE-0-2026-23352)
Vulnerability from cvelistv5
Published
2026-03-25 10:27
Modified
2026-10-15 01:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/efi: defer freeing of boot services memory
efi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE
and EFI_BOOT_SERVICES_DATA using memblock_free_late().
There are two issue with that: memblock_free_late() should be used for
memory allocated with memblock_alloc() while the memory reserved with
memblock_reserve() should be freed with free_reserved_area().
More acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
efi_free_boot_services() is called before deferred initialization of the
memory map is complete.
Benjamin Herrenschmidt reports that this causes a leak of ~140MB of
RAM on EC2 t3a.nano instances which only have 512MB or RAM.
If the freed memory resides in the areas that memory map for them is
still uninitialized, they won't be actually freed because
memblock_free_late() calls memblock_free_pages() and the latter skips
uninitialized pages.
Using free_reserved_area() at this point is also problematic because
__free_page() accesses the buddy of the freed page and that again might
end up in uninitialized part of the memory map.
Delaying the entire efi_free_boot_services() could be problematic
because in addition to freeing boot services memory it updates
efi.memmap without any synchronization and that's undesirable late in
boot when there is concurrency.
More robust approach is to only defer freeing of the EFI boot services
memory.
Split efi_free_boot_services() in two. First efi_unmap_boot_services()
collects ranges that should be freed into an array then
efi_free_boot_services() later frees them after deferred init is complete.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0aed459e8487eb6ebdb4efe8cefe1eafbc704b30 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 916f676f8dc016103f983c7ec54c18ecdbb6e349 Version: 2.6.39.1 ≤ |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:14:17.020Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/efi.h",
"arch/x86/platform/efi/efi.c",
"arch/x86/platform/efi/quirks.c",
"drivers/firmware/efi/mokvar-table.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4a2cb90c538f06c873a187aa743575d48685d7a6",
"status": "affected",
"version": "0aed459e8487eb6ebdb4efe8cefe1eafbc704b30",
"versionType": "git"
},
{
"lessThan": "7131bd1fecc749bc94fb44aae217bbd8a8a85264",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "6d8ba221e7aafaa2f284b7d22faee814c28e009d",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "227688312fece0026fc67a00ba9a0b3611ebe95d",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "6a25e25279282c5c8ade554c04c6ab9dc7902c64",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "399da820ecfe6f4f10c143e5c453d3559a04db9c",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "f9e9cc320854a76a39e7bc92d144554f3a727fad",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "7dcf59422a3b0d20ddda844f856b4a1e0608a326",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "a4b0bf6a40f3c107c67a24fbc614510ef5719980",
"status": "affected",
"version": "916f676f8dc016103f983c7ec54c18ecdbb6e349",
"versionType": "git"
},
{
"lessThan": "2.6.39.2",
"status": "affected",
"version": "2.6.39.1",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/efi.h",
"arch/x86/platform/efi/efi.c",
"arch/x86/platform/efi/quirks.c",
"drivers/firmware/efi/mokvar-table.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.0"
},
{
"lessThan": "3.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "2.6.*",
"status": "unaffected",
"version": "2.6.39.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.253",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.203",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.167",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.130",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.77",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.17",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "2.6.39.2",
"versionStartIncluding": "2.6.39.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.253",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.203",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.167",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.77",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.17",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.7",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/efi: defer freeing of boot services memory\n\nefi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE\nand EFI_BOOT_SERVICES_DATA using memblock_free_late().\n\nThere are two issue with that: memblock_free_late() should be used for\nmemory allocated with memblock_alloc() while the memory reserved with\nmemblock_reserve() should be freed with free_reserved_area().\n\nMore acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y\nefi_free_boot_services() is called before deferred initialization of the\nmemory map is complete.\n\nBenjamin Herrenschmidt reports that this causes a leak of ~140MB of\nRAM on EC2 t3a.nano instances which only have 512MB or RAM.\n\nIf the freed memory resides in the areas that memory map for them is\nstill uninitialized, they won\u0027t be actually freed because\nmemblock_free_late() calls memblock_free_pages() and the latter skips\nuninitialized pages.\n\nUsing free_reserved_area() at this point is also problematic because\n__free_page() accesses the buddy of the freed page and that again might\nend up in uninitialized part of the memory map.\n\nDelaying the entire efi_free_boot_services() could be problematic\nbecause in addition to freeing boot services memory it updates\nefi.memmap without any synchronization and that\u0027s undesirable late in\nboot when there is concurrency.\n\nMore robust approach is to only defer freeing of the EFI boot services\nmemory.\n\nSplit efi_free_boot_services() in two. First efi_unmap_boot_services()\ncollects ranges that should be freed into an array then\nefi_free_boot_services() later frees them after deferred init is complete."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-23T16:04:35.619Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4a2cb90c538f06c873a187aa743575d48685d7a6"
},
{
"url": "https://git.kernel.org/stable/c/7131bd1fecc749bc94fb44aae217bbd8a8a85264"
},
{
"url": "https://git.kernel.org/stable/c/6d8ba221e7aafaa2f284b7d22faee814c28e009d"
},
{
"url": "https://git.kernel.org/stable/c/227688312fece0026fc67a00ba9a0b3611ebe95d"
},
{
"url": "https://git.kernel.org/stable/c/6a25e25279282c5c8ade554c04c6ab9dc7902c64"
},
{
"url": "https://git.kernel.org/stable/c/399da820ecfe6f4f10c143e5c453d3559a04db9c"
},
{
"url": "https://git.kernel.org/stable/c/f9e9cc320854a76a39e7bc92d144554f3a727fad"
},
{
"url": "https://git.kernel.org/stable/c/7dcf59422a3b0d20ddda844f856b4a1e0608a326"
},
{
"url": "https://git.kernel.org/stable/c/a4b0bf6a40f3c107c67a24fbc614510ef5719980"
}
],
"title": "x86/efi: defer freeing of boot services memory",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-23352",
"datePublished": "2026-03-25T10:27:37.500Z",
"dateReserved": "2026-01-13T15:37:46.000Z",
"dateUpdated": "2026-10-15T01:14:17.020Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89532 (GCVE-0-2026-89532)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Fix pcl_for_each_segment for empty chunks
When a parsed chunk list contains a chunk whose ch_segcount is zero,
pcl_for_each_segment computes its inclusive upper bound as
&chunk->ch_segments[ch_segcount - 1]. ch_segcount is u32, so the
subtraction wraps to 0xFFFFFFFF and the bound lands far past the
ch_segments flex array. The loop body then walks unrelated memory at
sizeof(struct svc_rdma_segment) stride until it faults.
A zero-segcount chunk is reachable from the wire:
xdr_check_write_chunk() only rejects segcount values greater than
rc_maxpages, and pcl_alloc_write() links a freshly allocated chunk
onto rc_write_pcl/rc_reply_pcl before its segment-fill loop runs,
so a Write or Reply chunk advertising zero segments leaves
ch_segcount == 0 on the list. When the transport has negotiated
Send-With-Invalidate, svc_rdma_get_inv_rkey() iterates all four
PCLs with pcl_for_each_segment and dereferences segment->rs_handle
on each iteration, turning the underflow into an out-of-bounds read
and a general protection fault.
xdr_check_write_list / xdr_check_reply_chunk
pcl_alloc_write()
chunk = pcl_alloc_chunk(...) /* ch_segcount = 0 */
list_add_tail(&chunk->ch_list, &pcl->cl_chunks)
/* fill loop iterates zero times for wire segcount 0 */
svc_rdma_get_inv_rkey()
pcl_for_each_chunk(rc_write_pcl)
pcl_for_each_segment(segment, chunk)
pos <= &ch_segments[0u - 1u] /* 0xFFFFFFFF */
segment->rs_handle /* OOB read -> GPF */
Fix by switching the macro to a half-open upper bound that uses
ch_segcount directly. For ch_segcount == 0 the loop start equals the
loop end and the body is skipped; for ch_segcount > 0 the iteration
range is unchanged. All six existing call sites in
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c and
net/sunrpc/xprtrdma/svc_rdma_rw.c remain correct under the new bound,
so no caller changes are needed.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 Version: 78147ca8b4a9b6cf0e597ddd6bf17959e08376c2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89532",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:11.362883Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:41.408Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/sunrpc/svc_rdma_pcl.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1e2e3481e39103a386b86be1c33eaef97cbdf16e",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "3a78b841879c2a3243f74edc514236fb2907167f",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "06d0390c37fa6714624af771bd72bbf1a7ed9bb1",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "9c5a03c3dc505c0295339b0a1b9e4fe36447e482",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "a1c954ca4977a4e6ec73ef92fe48073ec54f9fc8",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "6d33a7e6bf6c6b293a266a617201285a1ad32c56",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
},
{
"lessThan": "b7713a784c59515d0aba558c8f5df6a0164dd3a9",
"status": "affected",
"version": "78147ca8b4a9b6cf0e597ddd6bf17959e08376c2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/sunrpc/svc_rdma_pcl.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Fix pcl_for_each_segment for empty chunks\n\nWhen a parsed chunk list contains a chunk whose ch_segcount is zero,\npcl_for_each_segment computes its inclusive upper bound as\n\u0026chunk-\u003ech_segments[ch_segcount - 1]. ch_segcount is u32, so the\nsubtraction wraps to 0xFFFFFFFF and the bound lands far past the\nch_segments flex array. The loop body then walks unrelated memory at\nsizeof(struct svc_rdma_segment) stride until it faults.\n\nA zero-segcount chunk is reachable from the wire:\nxdr_check_write_chunk() only rejects segcount values greater than\nrc_maxpages, and pcl_alloc_write() links a freshly allocated chunk\nonto rc_write_pcl/rc_reply_pcl before its segment-fill loop runs,\nso a Write or Reply chunk advertising zero segments leaves\nch_segcount == 0 on the list. When the transport has negotiated\nSend-With-Invalidate, svc_rdma_get_inv_rkey() iterates all four\nPCLs with pcl_for_each_segment and dereferences segment-\u003ers_handle\non each iteration, turning the underflow into an out-of-bounds read\nand a general protection fault.\n\n xdr_check_write_list / xdr_check_reply_chunk\n pcl_alloc_write()\n chunk = pcl_alloc_chunk(...) /* ch_segcount = 0 */\n list_add_tail(\u0026chunk-\u003ech_list, \u0026pcl-\u003ecl_chunks)\n /* fill loop iterates zero times for wire segcount 0 */\n\n svc_rdma_get_inv_rkey()\n pcl_for_each_chunk(rc_write_pcl)\n pcl_for_each_segment(segment, chunk)\n pos \u003c= \u0026ch_segments[0u - 1u] /* 0xFFFFFFFF */\n segment-\u003ers_handle /* OOB read -\u003e GPF */\n\nFix by switching the macro to a half-open upper bound that uses\nch_segcount directly. For ch_segcount == 0 the loop start equals the\nloop end and the body is skipped; for ch_segcount \u003e 0 the iteration\nrange is unchanged. All six existing call sites in\nnet/sunrpc/xprtrdma/svc_rdma_recvfrom.c and\nnet/sunrpc/xprtrdma/svc_rdma_rw.c remain correct under the new bound,\nso no caller changes are needed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcrdma is the nfsd RPC-over-RDMA server transport and parses Write/Reply chunks from remote peers over iWARP or routable RoCEv2; a remote NFS/RDMA client triggers the bug with a crafted transport header on an established RDMA connection.\nAC:L - The attacker sets RPCRDMA_CMP_F_SND_W_INV_OK on connect and sends a Write or Reply chunk with segcount 0, which xdr_check_write_chunk accepts; Send-With-Invalidate is available on typical RDMA devices, so svc_rdma_get_inv_rkey hits the underflow deterministically.\nPR:N - svc_rdma_xdr_decode_req and svc_rdma_get_inv_rkey run in svc_rdma_recvfrom before svc_process/svc_authenticate; RDMA CM accept and RPC-over-RDMA header parsing require no NFS credentials or capabilities.\nUI:N - Exploitation requires only attacker-generated RDMA connect and RPC-over-RDMA messages to a listening NFS/RDMA service; no victim user action is needed.\nS:U - The out-of-bounds read and resulting general protection fault occur in the host kernel NFS/RDMA server and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - With ch_segcount 0, pcl_for_each_segment underflows the u32 bound to 0xFFFFFFFF and walks adjacent kernel heap at sizeof(struct svc_rdma_segment) stride, an unbounded out-of-bounds read rather than a few-byte leak.\nI:N - svc_rdma_get_inv_rkey only loads segment-\u003ers_handle from the overrun pointer; the defect is a read-only walk with no out-of-bounds write, use-after-free, or control-flow hijack primitive.\nA:H - The unbounded walk continues until it hits unmapped memory and raises a general protection fault, oopsing or panicking the kernel, and the attacker can repeat it on each request."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:23.895Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1e2e3481e39103a386b86be1c33eaef97cbdf16e"
},
{
"url": "https://git.kernel.org/stable/c/3a78b841879c2a3243f74edc514236fb2907167f"
},
{
"url": "https://git.kernel.org/stable/c/06d0390c37fa6714624af771bd72bbf1a7ed9bb1"
},
{
"url": "https://git.kernel.org/stable/c/9c5a03c3dc505c0295339b0a1b9e4fe36447e482"
},
{
"url": "https://git.kernel.org/stable/c/a1c954ca4977a4e6ec73ef92fe48073ec54f9fc8"
},
{
"url": "https://git.kernel.org/stable/c/6d33a7e6bf6c6b293a266a617201285a1ad32c56"
},
{
"url": "https://git.kernel.org/stable/c/b7713a784c59515d0aba558c8f5df6a0164dd3a9"
}
],
"title": "svcrdma: Fix pcl_for_each_segment for empty chunks",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89532",
"datePublished": "2026-09-11T19:44:11.495Z",
"dateReserved": "2026-09-11T19:38:34.720Z",
"dateUpdated": "2026-10-19T08:48:23.895Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72297 (GCVE-0-2026-72297)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: atm: reject out-of-range traffic classes in QoS validation
Reject ATM traffic classes above ATM_ANYCLASS in check_tp().
SO_ATMQOS stores the supplied QoS after check_qos() succeeds, so
accepting larger values leaves invalid traffic_class values in
vcc->qos.
That bad state later reaches pvc_info(), which indexes class_name[]
with vcc->qos.{rx,tp}.traffic_class. Values above ATM_ANYCLASS cause
an out-of-bounds read when /proc/net/atm/pvc is read.
Tighten the existing QoS validation so invalid traffic_class values
are rejected at the point where user supplied QoS is accepted.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72297",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:45:57.327476Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:15.534Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/atm/common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1a6dda72455b399ce9c1a12695471dc4d5c61add",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2b3e241729e87afed13ac0f666472d5d6ca42e87",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "367acd288bc6255e247cb1a1efbf5c6567cab423",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "513f820b3f0cf4462e17d84c39ed3948d061a6ea",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "15444b57fdc6fc3f3e22a87f791ae5be81e6ecf5",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e62adb157c2eaad9ad4867ec6cd9af5b9a51b1c7",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "806b7b6edc8446e8b94b706807a7090a14d47b5c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cdf19f380e46192e7084be559638aab1f6ed86a2",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/atm/common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: atm: reject out-of-range traffic classes in QoS validation\n\nReject ATM traffic classes above ATM_ANYCLASS in check_tp().\nSO_ATMQOS stores the supplied QoS after check_qos() succeeds, so\naccepting larger values leaves invalid traffic_class values in\nvcc-\u003eqos.\n\nThat bad state later reaches pvc_info(), which indexes class_name[]\nwith vcc-\u003eqos.{rx,tp}.traffic_class. Values above ATM_ANYCLASS cause\nan out-of-bounds read when /proc/net/atm/pvc is read.\n\nTighten the existing QoS validation so invalid traffic_class values\nare rejected at the point where user supplied QoS is accepted."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local setsockopt(SO_ATMQOS) on an AF_ATMPVC socket and reading /proc/net/atm/pvc; no remote network packet or protocol handler reaches check_tp() or pvc_info().\nAC:L - On systems with an existing ATM PVC device, an attacker deterministically sets an out-of-range traffic_class via SO_ATMQOS before connect and triggers the OOB read by reading /proc/net/atm/pvc with no race or special memory layout needed.\nPR:L - No capability check guards SO_ATMQOS on unconnected sockets; any unprivileged local user in init_net can create AF_ATMPVC sockets (module autoloadable) and read world-readable /proc/net/atm/pvc without CAP_NET_ADMIN.\nUI:N - The attacker controls both poisoning vcc-\u003eqos via setsockopt and triggering pvc_info() by reading procfs; no victim action or cooperation is required.\nS:U - Impact is kernel memory disclosure within the host kernel security boundary; no VM escape, IOMMU bypass, or sandbox boundary crossing occurs.\nC:H - Out-of-bounds indexing of class_name[] loads adjacent kernel pointers that seq_printf() dereferences with %s, disclosing kernel memory contents into the procfs read buffer visible to the attacker.\nI:N - The flaw is an out-of-bounds read of static pointer tables with no memory corruption, arbitrary write, or control-flow hijack primitive; kernel or user data integrity is not modified.\nA:H - Dereferencing attacker-influenced out-of-bounds pointers via %s can fault on unmappable addresses and oops the kernel; even without reliable crash, OOB kernel reads carry high availability risk per conservative scoring."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:30.264Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1a6dda72455b399ce9c1a12695471dc4d5c61add"
},
{
"url": "https://git.kernel.org/stable/c/2b3e241729e87afed13ac0f666472d5d6ca42e87"
},
{
"url": "https://git.kernel.org/stable/c/367acd288bc6255e247cb1a1efbf5c6567cab423"
},
{
"url": "https://git.kernel.org/stable/c/513f820b3f0cf4462e17d84c39ed3948d061a6ea"
},
{
"url": "https://git.kernel.org/stable/c/15444b57fdc6fc3f3e22a87f791ae5be81e6ecf5"
},
{
"url": "https://git.kernel.org/stable/c/e62adb157c2eaad9ad4867ec6cd9af5b9a51b1c7"
},
{
"url": "https://git.kernel.org/stable/c/806b7b6edc8446e8b94b706807a7090a14d47b5c"
},
{
"url": "https://git.kernel.org/stable/c/cdf19f380e46192e7084be559638aab1f6ed86a2"
}
],
"title": "net: atm: reject out-of-range traffic classes in QoS validation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72297",
"datePublished": "2026-08-15T05:55:17.877Z",
"dateReserved": "2026-08-09T03:40:39.917Z",
"dateUpdated": "2026-10-16T18:55:15.534Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72070 (GCVE-0-2026-72070)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-08-23 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: libertas_tf: fix use-after-free in lbtf_free_adapter()
lbtf_free_adapter() calls timer_delete(&priv->command_timer), which does
not wait for a running command_timer_fn() callback. lbtf_free_adapter()
runs on the teardown path right before ieee80211_free_hw() frees priv,
both in lbtf_remove_card() and in the probe error path. command_timer is
armed by mod_timer() in lbtf_cmd() whenever a firmware command is sent.
command_timer_fn() dereferences priv. If a command times out as the
device is removed, command_timer_fn() runs concurrently with teardown and
dereferences priv after it has been freed.
This is the same use-after-free that commit 03cc8f90d053 ("wifi: libertas:
fix use-after-free in lbs_free_adapter()") fixed in the sibling libertas
driver. The libertas_tf variant has the identical pattern and was left
unchanged. Use timer_delete_sync() so any in-flight callback completes
before priv is freed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 Version: 06b16ae5319251c26377afcb401e46056d5673f4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/marvell/libertas_tf/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bd75636681588c67006279abdb9a76a708b3ce29",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "2fba1d3b2f031a2c68e566a6d45cc5b7a8d6683d",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "9392fd5de555272449d3d8c63410ea00f8ec853a",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "4714e95f5d61cb9c5c7c6c4e68b618f37bc6ffcf",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "066b59e84f90d270cc15f0370166155aca507630",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "fcff712d0e3d183843ec3916470ee6cc3455baad",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "bcf7968cb97ce4312588042cf2712f04caff6d8f",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
},
{
"lessThan": "aa6dcd5c8dd9ba1d7d0f60093bcda41c0d6d438d",
"status": "affected",
"version": "06b16ae5319251c26377afcb401e46056d5673f4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/marvell/libertas_tf/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.28"
},
{
"lessThan": "2.6.28",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.28",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.28",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: libertas_tf: fix use-after-free in lbtf_free_adapter()\n\nlbtf_free_adapter() calls timer_delete(\u0026priv-\u003ecommand_timer), which does\nnot wait for a running command_timer_fn() callback. lbtf_free_adapter()\nruns on the teardown path right before ieee80211_free_hw() frees priv,\nboth in lbtf_remove_card() and in the probe error path. command_timer is\narmed by mod_timer() in lbtf_cmd() whenever a firmware command is sent.\ncommand_timer_fn() dereferences priv. If a command times out as the\ndevice is removed, command_timer_fn() runs concurrently with teardown and\ndereferences priv after it has been freed.\n\nThis is the same use-after-free that commit 03cc8f90d053 (\"wifi: libertas:\nfix use-after-free in lbs_free_adapter()\") fixed in the sibling libertas\ndriver. The libertas_tf variant has the identical pattern and was left\nunchanged. Use timer_delete_sync() so any in-flight callback completes\nbefore priv is freed."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:42.921Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bd75636681588c67006279abdb9a76a708b3ce29"
},
{
"url": "https://git.kernel.org/stable/c/2fba1d3b2f031a2c68e566a6d45cc5b7a8d6683d"
},
{
"url": "https://git.kernel.org/stable/c/9392fd5de555272449d3d8c63410ea00f8ec853a"
},
{
"url": "https://git.kernel.org/stable/c/4714e95f5d61cb9c5c7c6c4e68b618f37bc6ffcf"
},
{
"url": "https://git.kernel.org/stable/c/066b59e84f90d270cc15f0370166155aca507630"
},
{
"url": "https://git.kernel.org/stable/c/fcff712d0e3d183843ec3916470ee6cc3455baad"
},
{
"url": "https://git.kernel.org/stable/c/bcf7968cb97ce4312588042cf2712f04caff6d8f"
},
{
"url": "https://git.kernel.org/stable/c/aa6dcd5c8dd9ba1d7d0f60093bcda41c0d6d438d"
}
],
"title": "wifi: libertas_tf: fix use-after-free in lbtf_free_adapter()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72070",
"datePublished": "2026-08-15T05:52:22.486Z",
"dateReserved": "2026-08-09T03:40:39.904Z",
"dateUpdated": "2026-08-23T12:46:42.921Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72337 (GCVE-0-2026-72337)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: 6lowpan: avoid untracked enable work
lowpan_enable_set() allocates a temporary work item and schedules
do_enable_set() on system_wq, then returns to debugfs. The debugfs active
operation has ended at that point, but the worker still executes module
text and manipulates enable_6lowpan and listen_chan.
bt_6lowpan_exit() removes the debugfs files and immediately closes and
puts listen_chan. It has no pointer to the queued work item, so it cannot
cancel or flush it before tearing down the state that the worker uses.
The buggy scenario involves two paths, with each column showing the order
within that path:
debugfs enable write module exit
1. lowpan_enable_set() allocates 1. bt_6lowpan_exit() removes
set_enable work the debugfs file
2. schedule_work() queues 2. bt_6lowpan_exit() closes
do_enable_set() and puts listen_chan
3. the write operation returns 3. module teardown can continue
4. do_enable_set() later runs
against stale state
Run the enable state transition synchronously in lowpan_enable_set()
instead. The simple debugfs setter can sleep, and this file already handles
the 6LoWPAN control write synchronously under the same set_lock. Once the
setter returns, debugfs removal covers the whole operation and exit can no
longer race with an untracked work item.
Validation reproduced this kernel report:
BUG: KASAN: slab-use-after-free in do_enable_set+0x113/0x2e0
Workqueue: events do_enable_set [bluetooth_6lowpan]
The buggy address belongs to the object at ffff888109cb8000
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/6lowpan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "333a39f134dd0bc614ef6658e9ccd448080443d1",
"status": "affected",
"version": "90305829635d90a5053ec99a261035b4ce0a2649",
"versionType": "git"
},
{
"lessThan": "9061d0c19e97bb8d0aa235d0a571a5d6d0be7477",
"status": "affected",
"version": "90305829635d90a5053ec99a261035b4ce0a2649",
"versionType": "git"
},
{
"lessThan": "31cc289d5b179a37be439043306f518376a58187",
"status": "affected",
"version": "90305829635d90a5053ec99a261035b4ce0a2649",
"versionType": "git"
},
{
"lessThan": "feb3fc2c38ed52003142f31e04109719b200c049",
"status": "affected",
"version": "90305829635d90a5053ec99a261035b4ce0a2649",
"versionType": "git"
},
{
"lessThan": "352a59dc1f4a41314b6f827c17e16af7ca88271a",
"status": "affected",
"version": "90305829635d90a5053ec99a261035b4ce0a2649",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/6lowpan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: 6lowpan: avoid untracked enable work\n\nlowpan_enable_set() allocates a temporary work item and schedules\ndo_enable_set() on system_wq, then returns to debugfs. The debugfs active\noperation has ended at that point, but the worker still executes module\ntext and manipulates enable_6lowpan and listen_chan.\n\nbt_6lowpan_exit() removes the debugfs files and immediately closes and\nputs listen_chan. It has no pointer to the queued work item, so it cannot\ncancel or flush it before tearing down the state that the worker uses.\n\nThe buggy scenario involves two paths, with each column showing the order\nwithin that path:\n\ndebugfs enable write module exit\n1. lowpan_enable_set() allocates 1. bt_6lowpan_exit() removes\n set_enable work the debugfs file\n2. schedule_work() queues 2. bt_6lowpan_exit() closes\n do_enable_set() and puts listen_chan\n3. the write operation returns 3. module teardown can continue\n4. do_enable_set() later runs\n against stale state\n\nRun the enable state transition synchronously in lowpan_enable_set()\ninstead. The simple debugfs setter can sleep, and this file already handles\nthe 6LoWPAN control write synchronously under the same set_lock. Once the\nsetter returns, debugfs removal covers the whole operation and exit can no\nlonger race with an untracked work item.\n\nValidation reproduced this kernel report:\nBUG: KASAN: slab-use-after-free in do_enable_set+0x113/0x2e0\nWorkqueue: events do_enable_set [bluetooth_6lowpan]\nThe buggy address belongs to the object at ffff888109cb8000"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:37.407Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/333a39f134dd0bc614ef6658e9ccd448080443d1"
},
{
"url": "https://git.kernel.org/stable/c/9061d0c19e97bb8d0aa235d0a571a5d6d0be7477"
},
{
"url": "https://git.kernel.org/stable/c/31cc289d5b179a37be439043306f518376a58187"
},
{
"url": "https://git.kernel.org/stable/c/feb3fc2c38ed52003142f31e04109719b200c049"
},
{
"url": "https://git.kernel.org/stable/c/352a59dc1f4a41314b6f827c17e16af7ca88271a"
}
],
"title": "Bluetooth: 6lowpan: avoid untracked enable work",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72337",
"datePublished": "2026-08-15T05:55:45.160Z",
"dateReserved": "2026-08-09T03:40:39.920Z",
"dateUpdated": "2026-10-21T12:44:37.407Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74718 (GCVE-0-2026-74718)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-08-22 15:33
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
devlink: fix net namespace reference leak in reload
devlink_nl_reload_doit() calls devlink_netns_get(), which returns a net
with a held reference. When the requested namespace differs from the
current one and the reload action is not DRIVER_REINIT, the function
returns -EOPNOTSUPP without releasing the reference. Add the missing
put_net() on this error path.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/devlink/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7b6552e53426ea0539c667bbc5a524fdf7feae6f",
"status": "affected",
"version": "2edd92570441dd33246210042dc167319a5cf7e3",
"versionType": "git"
},
{
"lessThan": "bf0797b92be591ac71d7c0f610e695caca3c72c9",
"status": "affected",
"version": "2edd92570441dd33246210042dc167319a5cf7e3",
"versionType": "git"
},
{
"lessThan": "7b02c6d2a3cd2cd669f5c16685779f84328ae60c",
"status": "affected",
"version": "2edd92570441dd33246210042dc167319a5cf7e3",
"versionType": "git"
},
{
"lessThan": "eda60c85b4f4c7d66b7141a5fe020b1a7f395341",
"status": "affected",
"version": "2edd92570441dd33246210042dc167319a5cf7e3",
"versionType": "git"
},
{
"lessThan": "1c4dac9bf1d2ac31da63b794bdec697777cbd0fd",
"status": "affected",
"version": "2edd92570441dd33246210042dc167319a5cf7e3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/devlink/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndevlink: fix net namespace reference leak in reload\n\ndevlink_nl_reload_doit() calls devlink_netns_get(), which returns a net\nwith a held reference. When the requested namespace differs from the\ncurrent one and the reload action is not DRIVER_REINIT, the function\nreturns -EOPNOTSUPP without releasing the reference. Add the missing\nput_net() on this error path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:33:12.106Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7b6552e53426ea0539c667bbc5a524fdf7feae6f"
},
{
"url": "https://git.kernel.org/stable/c/bf0797b92be591ac71d7c0f610e695caca3c72c9"
},
{
"url": "https://git.kernel.org/stable/c/7b02c6d2a3cd2cd669f5c16685779f84328ae60c"
},
{
"url": "https://git.kernel.org/stable/c/eda60c85b4f4c7d66b7141a5fe020b1a7f395341"
},
{
"url": "https://git.kernel.org/stable/c/1c4dac9bf1d2ac31da63b794bdec697777cbd0fd"
}
],
"title": "devlink: fix net namespace reference leak in reload",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74718",
"datePublished": "2026-08-22T15:33:12.106Z",
"dateReserved": "2026-08-15T05:44:03.928Z",
"dateUpdated": "2026-08-22T15:33:12.106Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72136 (GCVE-0-2026-72136)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: xfrm_interface: require CAP_NET_ADMIN in the device netns for changelink
xfrmi_changelink() operates on at most two netns, dev_net(dev) and the
interface link netns xi->net. They differ once the device is created in
or moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in xi->net can rewrite an interface that
lives in xi->net.
Gate xfrmi_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e Version: f203b76d78092faf248db3f851840fbecf80b40e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72136",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:42.776069Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:58.796Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_interface_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04c1aa57d08471b1953bf27c84ac9b3d78d71831",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "bdfd1c21d90e628a58a9de79e024cdfcbedfa15c",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "80ec68bba11f7f387c0e4099c2d7b2c84943eb99",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "e9c90756f10da334fb31552e52c61f1dba69f491",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "37b61946d278c7deb0d40ba8f2b6fc0478d61dab",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "8ca2a19a987a7d1cb4c916ed9723a1c6993b4276",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "3ba2b2ef7d6a63b190f15cfc2b4ba0fba59928ea",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
},
{
"lessThan": "095515d89b19b6cc19dfcdc846f97403ed1ebce3",
"status": "affected",
"version": "f203b76d78092faf248db3f851840fbecf80b40e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_interface_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: xfrm_interface: require CAP_NET_ADMIN in the device netns for changelink\n\nxfrmi_changelink() operates on at most two netns, dev_net(dev) and the\ninterface link netns xi-\u003enet. They differ once the device is created in\nor moved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in xi-\u003enet can rewrite an interface that\nlives in xi-\u003enet.\n\nGate xfrmi_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local RTM_NEWLINK changelink over an rtnetlink/netlink socket (rtnl_newlink \u2192 rtnl_changelink \u2192 xfrmi_changelink); this is a netlink configuration path, not remote packet handling, matching kernel Local guidance.\nAC:L - Once a cross-namespace xfrmi exists (dev_net(dev) \u2260 xi-\u003enet via IFLA_LINK_NETNSID creation or netns migration), bypassing the missing check is one deterministic changelink with attacker-chosen IFLA_XFRM_IF_ID; no race, timing, or layout dependency.\nPR:L - rtnl_link_get_net_capable() only requires CAP_NET_ADMIN in dev_net(dev), obtainable by an unprivileged user via user+network namespaces (unshare -Urn / map-root-user); CAP_NET_ADMIN in the sticky link netns xi-\u003enet is not required.\nUI:N - The attack is fully programmatic from the attacker\u0027s own process through netlink; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - Privilege is checked against dev_net(dev) while xfrmi_changelink/xfrmi_update mutate live xfrm interface state in xi-\u003enet (hash unlink/relink, if_id binding), crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host network namespace.\nC:H - Changing IFLA_XFRM_IF_ID in xi-\u003enet retargets xfrmi_lookup/xfrm_lookup_with_ifid so host IPsec SAs can deliver decrypted VPN cleartext to the attacker-controlled netdev in dev_net(dev), exposing confidential tunneled traffic.\nI:H - Unauthorized changelink rewrites live xfrm interface parameters and xi-\u003enet registration, enabling redirection or injection of IPsec encapsulation/decapsulation paths on Internet-facing VPN gateways and cloud IPsec endpoints.\nA:H - xfrmi_update() runs synchronize_net() and netdev_state_change(); breaking or rebinding if_id mapping disrupts production IPsec/VTI/xfrmi VPN paths, causing sustained loss of encrypted tunnel connectivity."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:46.616Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04c1aa57d08471b1953bf27c84ac9b3d78d71831"
},
{
"url": "https://git.kernel.org/stable/c/bdfd1c21d90e628a58a9de79e024cdfcbedfa15c"
},
{
"url": "https://git.kernel.org/stable/c/80ec68bba11f7f387c0e4099c2d7b2c84943eb99"
},
{
"url": "https://git.kernel.org/stable/c/e9c90756f10da334fb31552e52c61f1dba69f491"
},
{
"url": "https://git.kernel.org/stable/c/37b61946d278c7deb0d40ba8f2b6fc0478d61dab"
},
{
"url": "https://git.kernel.org/stable/c/8ca2a19a987a7d1cb4c916ed9723a1c6993b4276"
},
{
"url": "https://git.kernel.org/stable/c/3ba2b2ef7d6a63b190f15cfc2b4ba0fba59928ea"
},
{
"url": "https://git.kernel.org/stable/c/095515d89b19b6cc19dfcdc846f97403ed1ebce3"
}
],
"title": "xfrm: xfrm_interface: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72136",
"datePublished": "2026-08-15T05:53:11.072Z",
"dateReserved": "2026-08-09T03:40:39.908Z",
"dateUpdated": "2026-10-16T18:44:58.796Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80805 (GCVE-0-2026-80805)
Vulnerability from cvelistv5
Published
2026-09-04 15:13
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: validate attr entry pointer before field access
xfs_attr3_leaf_verify_entry() accesses lentry/rentry fields (namelen,
valuelen) before checking if the entry pointer itself is within bounds.
If nameidx is crafted to point near the end of the buffer, these field
accesses can read out-of-bounds before the bounds check at
name_end > buf_end is performed.
Add explicit bounds checks for entry pointers before accessing their
fields. Use offsetof() to check that the start of the flexible array
member (nameval/name) is within bounds, which ensures all preceding
fields are safe to access.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f Version: c84760659dcf237902d4cc997cd5f55cb3b2807f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_attr_leaf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f82586741e39926542f621bafa424e237a04fa4",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "134d82a2b5e3eba3ebf58753a1387b22f26ca1de",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "03a12253dd2a036545bdb0110a4e0b8dc70f8e7c",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "e99120b5944a16d0bc27e52b33de78bcdaaabf5c",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "98a42bb9d60d42898c3494de351a1bf508348cde",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "184c1a80421a5b5ddcd262e47980ce2e67fee211",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "9f92e749fc08b7ff3d9da190c4d1b2273745b282",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "c35da2bac6f7cb9a9be73f188b4fcc324615c327",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
},
{
"lessThan": "b7eea80be25f3334f131d52982b3131aba77b97d",
"status": "affected",
"version": "c84760659dcf237902d4cc997cd5f55cb3b2807f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_attr_leaf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"lessThan": "5.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: validate attr entry pointer before field access\n\nxfs_attr3_leaf_verify_entry() accesses lentry/rentry fields (namelen,\nvaluelen) before checking if the entry pointer itself is within bounds.\nIf nameidx is crafted to point near the end of the buffer, these field\naccesses can read out-of-bounds before the bounds check at\nname_end \u003e buf_end is performed.\n\nAdd explicit bounds checks for entry pointers before accessing their\nfields. Use offsetof() to check that the start of the flexible array\nmember (nameval/name) is within bounds, which ensures all preceding\nfields are safe to access."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:58.417Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f82586741e39926542f621bafa424e237a04fa4"
},
{
"url": "https://git.kernel.org/stable/c/134d82a2b5e3eba3ebf58753a1387b22f26ca1de"
},
{
"url": "https://git.kernel.org/stable/c/03a12253dd2a036545bdb0110a4e0b8dc70f8e7c"
},
{
"url": "https://git.kernel.org/stable/c/e99120b5944a16d0bc27e52b33de78bcdaaabf5c"
},
{
"url": "https://git.kernel.org/stable/c/98a42bb9d60d42898c3494de351a1bf508348cde"
},
{
"url": "https://git.kernel.org/stable/c/184c1a80421a5b5ddcd262e47980ce2e67fee211"
},
{
"url": "https://git.kernel.org/stable/c/9f92e749fc08b7ff3d9da190c4d1b2273745b282"
},
{
"url": "https://git.kernel.org/stable/c/c35da2bac6f7cb9a9be73f188b4fcc324615c327"
},
{
"url": "https://git.kernel.org/stable/c/b7eea80be25f3334f131d52982b3131aba77b97d"
}
],
"title": "xfs: validate attr entry pointer before field access",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80805",
"datePublished": "2026-09-04T15:13:19.239Z",
"dateReserved": "2026-08-26T14:34:25.794Z",
"dateUpdated": "2026-10-19T08:43:58.417Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53400 (GCVE-0-2026-53400)
Vulnerability from cvelistv5
Published
2026-07-19 12:02
Modified
2026-10-19 20:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
i2c: core: fix adapter registration race
Adapters can be looked up based on their id using i2c_get_adapter()
which takes a reference to the embedded struct device.
Make sure that the adapter (including its struct device) has been
initialised before adding it to the IDR to avoid accessing uninitialised
data which could, for example, lead to NULL-pointer dereferences or
use-after-free.
Note that the i2c-dev chardev, which is registered from a bus notifier,
currently uses i2c_get_adapter() so the adapter needs to be added to the
IDR before registration.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b Version: 6e13e641841833cc2aa5baefe89bb04bc388801b |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:23:27.069Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-53400",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:30:30.537647Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:07:46.858Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2e57c788e71f1763445f812eba4e0b4a2fbd0646",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "a4365bc41baaf67f3a5aa8556d23544e6ec7480a",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "1febb174815bcae56d73587e99e8f87e02f0784d",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "da9d8d9711f78deebc202d0cffcf577e45ee8621",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "78793c75dc6d0ff2e4d50ad617349b328a99054e",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "6a946038f2a5a8c29048c6af369d4e391448a5c5",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "a4c8094bbf4c6fa68b17e3b16f6a0a1b7a14f3e0",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
},
{
"lessThan": "ba14d7cf2fe7284610a29854bdff22b2537d3ce6",
"status": "affected",
"version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-base.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.95",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.38",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.95",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.38",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.3",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: core: fix adapter registration race\n\nAdapters can be looked up based on their id using i2c_get_adapter()\nwhich takes a reference to the embedded struct device.\n\nMake sure that the adapter (including its struct device) has been\ninitialised before adding it to the IDR to avoid accessing uninitialised\ndata which could, for example, lead to NULL-pointer dereferences or\nuse-after-free.\n\nNote that the i2c-dev chardev, which is registered from a bus notifier,\ncurrently uses i2c_get_adapter() so the adapter needs to be added to the\nIDR before registration."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached through local kernel I2C adapter registration/lookup paths (module load, hotplug, concurrent probe) and userspace access to /dev/i2c-* via open(); there is no remote network entry point to i2c_get_adapter().\nAC:L - An attacker can repeatedly trigger adapter registration (e.g., modprobe/rmmod of I2C drivers, USB hotplug) while concurrently driving i2c_get_adapter() lookups, controlling both sides of the race window rather than depending on uncontrollable timing.\nPR:L - Exploitation requires a local unprivileged user with basic capabilities such as membership in the i2c group for /dev/i2c-* access or CAP_SYS_MODULE within a user namespace to load I2C drivers, not full init-namespace root.\nUI:N - No victim interaction is required; the attacker can autonomously trigger the race through module loading, hotplug, and concurrent I2C device access.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same security authority; this is not a VM escape or cross-boundary sandbox breakout.\nC:H - Calling get_device() on an uninitialized struct device can cause use-after-free and read of uninitialized kobject memory, which the fix commit explicitly identifies as a UAF/info-disclosure class bug.\nI:H - Use-after-free and uninitialized kobject refcount corruption can be leveraged for arbitrary kernel memory writes and control-flow hijacking, consistent with UAF exploitation potential cited in the fix.\nA:H - The race can trigger NULL-pointer dereferences or use-after-free in kernel context, causing oops/panic and complete loss of system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:50:52.550Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2e57c788e71f1763445f812eba4e0b4a2fbd0646"
},
{
"url": "https://git.kernel.org/stable/c/a4365bc41baaf67f3a5aa8556d23544e6ec7480a"
},
{
"url": "https://git.kernel.org/stable/c/1febb174815bcae56d73587e99e8f87e02f0784d"
},
{
"url": "https://git.kernel.org/stable/c/da9d8d9711f78deebc202d0cffcf577e45ee8621"
},
{
"url": "https://git.kernel.org/stable/c/78793c75dc6d0ff2e4d50ad617349b328a99054e"
},
{
"url": "https://git.kernel.org/stable/c/6a946038f2a5a8c29048c6af369d4e391448a5c5"
},
{
"url": "https://git.kernel.org/stable/c/a4c8094bbf4c6fa68b17e3b16f6a0a1b7a14f3e0"
},
{
"url": "https://git.kernel.org/stable/c/ba14d7cf2fe7284610a29854bdff22b2537d3ce6"
}
],
"title": "i2c: core: fix adapter registration race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53400",
"datePublished": "2026-07-19T12:02:00.632Z",
"dateReserved": "2026-06-09T07:44:35.403Z",
"dateUpdated": "2026-10-19T20:07:46.858Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93104 (GCVE-0-2026-93104)
Vulnerability from cvelistv5
Published
2026-09-17 16:11
Modified
2026-10-21 12:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rvt: Return NULL after port allocation failure
rvt_alloc_device() deallocates the IB device when its port array cannot
be allocated but then returns the pointer to the released allocation.
Callers treat any non-NULL value as valid and dereference it, resulting
in a use-after-free.
Return NULL immediately after deallocation so callers can propagate the
allocation failure.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rdmavt/vt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b7129930d1ec46c03a0de07fdce6c29f75795006",
"status": "affected",
"version": "ff6acd69518e0a84bd9c9b7f1bd4313f7076db97",
"versionType": "git"
},
{
"lessThan": "5a1a7a5e2fe1a15824fa9ae5edd8f008259471d1",
"status": "affected",
"version": "ff6acd69518e0a84bd9c9b7f1bd4313f7076db97",
"versionType": "git"
},
{
"lessThan": "80968b42d13080bf7bc1f3ee17fef126ce2ad98f",
"status": "affected",
"version": "ff6acd69518e0a84bd9c9b7f1bd4313f7076db97",
"versionType": "git"
},
{
"lessThan": "b1e1b25723af44328524c7b54433e4bf0ab9930c",
"status": "affected",
"version": "ff6acd69518e0a84bd9c9b7f1bd4313f7076db97",
"versionType": "git"
},
{
"lessThan": "2982eaf3b9d2d953318c74cd6f1b7576ea6d7b1f",
"status": "affected",
"version": "ff6acd69518e0a84bd9c9b7f1bd4313f7076db97",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rdmavt/vt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rvt: Return NULL after port allocation failure\n\nrvt_alloc_device() deallocates the IB device when its port array cannot\nbe allocated but then returns the pointer to the released allocation.\nCallers treat any non-NULL value as valid and dereference it, resulting\nin a use-after-free.\n\nReturn NULL immediately after deallocation so callers can propagate the\nallocation failure."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:51:54.286Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b7129930d1ec46c03a0de07fdce6c29f75795006"
},
{
"url": "https://git.kernel.org/stable/c/5a1a7a5e2fe1a15824fa9ae5edd8f008259471d1"
},
{
"url": "https://git.kernel.org/stable/c/80968b42d13080bf7bc1f3ee17fef126ce2ad98f"
},
{
"url": "https://git.kernel.org/stable/c/b1e1b25723af44328524c7b54433e4bf0ab9930c"
},
{
"url": "https://git.kernel.org/stable/c/2982eaf3b9d2d953318c74cd6f1b7576ea6d7b1f"
}
],
"title": "RDMA/rvt: Return NULL after port allocation failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93104",
"datePublished": "2026-09-17T16:11:15.760Z",
"dateReserved": "2026-09-17T16:02:15.085Z",
"dateUpdated": "2026-10-21T12:51:54.286Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89503 (GCVE-0-2026-89503)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Fix subbuf resize race with ring_buffer_alloc_read_page()
ring_buffer_alloc_read_page() is racy with ring_buffer_subbuf_order_set,
it can allocate a reader page with an outdated order. This isn't a big
issue, the user can still re-allocate a new reader page and try again.
However, what is more problematic is if the value of subbuf_order
changes in the middle of ring_buffer_alloc_read_page(). In that case,
bpage->order might not match the actual allocated memory.
Use bpage->order for the allocation to prevent this race.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2313ff69bd237aad264a5913907f374f958335a2",
"status": "affected",
"version": "bce761d757452ba5eb77e11fecc37a04b67494e7",
"versionType": "git"
},
{
"lessThan": "2dc510957fe8fd098ab3c3147ebdf34d00cd2734",
"status": "affected",
"version": "bce761d757452ba5eb77e11fecc37a04b67494e7",
"versionType": "git"
},
{
"lessThan": "53106e9262a310ef2c9a9321168c03705940c678",
"status": "affected",
"version": "bce761d757452ba5eb77e11fecc37a04b67494e7",
"versionType": "git"
},
{
"lessThan": "e743527c5bfdceda1095bc0a9e596e2aebb6a9c3",
"status": "affected",
"version": "bce761d757452ba5eb77e11fecc37a04b67494e7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Fix subbuf resize race with ring_buffer_alloc_read_page()\n\nring_buffer_alloc_read_page() is racy with ring_buffer_subbuf_order_set,\nit can allocate a reader page with an outdated order. This isn\u0027t a big\nissue, the user can still re-allocate a new reader page and try again.\n\nHowever, what is more problematic is if the value of subbuf_order\nchanges in the middle of ring_buffer_alloc_read_page(). In that case,\nbpage-\u003eorder might not match the actual allocated memory.\n\nUse bpage-\u003eorder for the allocation to prevent this race."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local tracefs: read() on per_cpu/*/trace_pipe_raw or snapshot_raw (tracing_buffers_read -\u003e ring_buffer_alloc_read_page) racing with write() to buffer_subbuf_size_kb. No network, adjacent-radio, or physical path reaches this code.\nAC:L - The attacker controls both sides: one thread reads trace_pipe_raw while another writes buffer_subbuf_size_kb. GFP_KERNEL in alloc_cpu_data sleeps, so subbuf_order can change between the two reads in ring_buffer_alloc_read_page(); the race is reliably retried.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC with no capable() check. trace_pipe_raw is 0440 and buffer_subbuf_size_kb is 0640, routinely delegated via gid=/mode= to tracing-group members on Android/Perfetto, ChromeOS, and developer systems.\nUI:N - Exploitation uses the attacker\u0027s own tracefs file descriptors and threads. No separate victim mount, click, or configuration action is required beyond the attacker holding tracefs access.\nS:U - Wrong-order page allocation and free corrupt the kernel buddy allocator and ring-buffer pages within the same OS security authority. This enables local privilege escalation but does not cross VM, IOMMU, or hardware trust boundaries.\nC:H - When bpage-\u003eorder does not match the alloc_pages() size, later copy_to_user of a stale page_size and ring_buffer_read_page memcpy/memset over-read adjacent kernel pages, and wrong-order free_pages() corrupts the buddy allocator, yielding arbitrary kernel reads.\nI:H - free_pages() with a larger order than allocated, or memcpy/memset into an undersized sub-buffer when reader_page-\u003eorder later matches the stale bpage-\u003eorder, corrupts adjacent pages and the buddy allocator, which is exploitable for arbitrary kernel writes.\nA:H - Wrong-order free_pages() and out-of-bounds writes on undersized compound pages crash the kernel via buddy-allocator corruption or oops in ring_buffer_read_page/free_read_page. The attacker can retrigger the race at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:54.761Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2313ff69bd237aad264a5913907f374f958335a2"
},
{
"url": "https://git.kernel.org/stable/c/2dc510957fe8fd098ab3c3147ebdf34d00cd2734"
},
{
"url": "https://git.kernel.org/stable/c/53106e9262a310ef2c9a9321168c03705940c678"
},
{
"url": "https://git.kernel.org/stable/c/e743527c5bfdceda1095bc0a9e596e2aebb6a9c3"
}
],
"title": "ring-buffer: Fix subbuf resize race with ring_buffer_alloc_read_page()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89503",
"datePublished": "2026-09-11T19:43:51.357Z",
"dateReserved": "2026-09-11T19:38:34.715Z",
"dateUpdated": "2026-10-19T08:47:54.761Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74631 (GCVE-0-2026-74631)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: smc: fix splice entry lifetime imbalance in smc_rx_splice
smc_rx_splice() passes pages to splice_to_pipe() before taking the
references that cover the lifetime of each splice entry. In the
VM-backed RMB path, splice_to_pipe() may drop unqueued entries through
smc_rx_spd_release(), while queued entries are released later via the
pipe buffer callback.
The old post-splice accounting also derives the number of queued VM pages
from an offset mutated while building the descriptor, and a multi-page
splice pairs one sock_hold() with multiple sock_put() calls.
Take the page and socket references for every candidate entry before
splice_to_pipe(), and drop the matching private state, page reference,
and socket reference from smc_rx_spd_release() for entries that never
get queued. This fixes a refcount imbalance that can underflow page
refcounts and trigger a use-after-free.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f Version: 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74631",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:03:01.320271Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:03.774Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_rx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7ddc7af2ae7fc5a0c0635b245c0824c8b76de5cb",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "07ad246529d136d5ef441d5ab4c305d132ff3090",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "c841789e456ec6751342fa800639ce8e82ff0e6b",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "af02c67ce654356c58db20a0bb2db33ace3b07a8",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "ca8342b5fc24c249fdb998468f6a168b457c67e5",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "0b7d54cedea5cb158e21925ae0c6c2f5c87ed2a0",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "4515c78f4d9fd577270f012efeb062ea58b3682d",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
},
{
"lessThan": "5d9686af2976741bbd79b150d1c9e60b81e7f12e",
"status": "affected",
"version": "9014db202cb764b8e14c53e7bacc81f9a1a2ba7f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_rx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: smc: fix splice entry lifetime imbalance in smc_rx_splice\n\nsmc_rx_splice() passes pages to splice_to_pipe() before taking the\nreferences that cover the lifetime of each splice entry. In the\nVM-backed RMB path, splice_to_pipe() may drop unqueued entries through\nsmc_rx_spd_release(), while queued entries are released later via the\npipe buffer callback.\n\nThe old post-splice accounting also derives the number of queued VM pages\nfrom an offset mutated while building the descriptor, and a multi-page\nsplice pairs one sock_hold() with multiple sock_put() calls.\n\nTake the page and socket references for every candidate entry before\nsplice_to_pipe(), and drop the matching private state, page reference,\nand socket reference from smc_rx_spd_release() for entries that never\nget queued. This fixes a refcount imbalance that can underflow page\nrefcounts and trigger a use-after-free."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - smc_rx_splice is only reached via splice()/tee() on an SMC socket FD (syscall -\u003e smc_splice_read -\u003e smc_rx_recvmsg with pipe set); remote SMC peers can supply receive-buffer data but cannot execute the vulnerable splice path without a local process invoking splice on that socket.\nAC:L - The attacker controls splice length, can nearly fill the destination pipe to force splice_to_pipe to drop unqueued entries via smc_rx_spd_release, and can hit the multi-page VM-backed RMB path (smcr_buf_type or mixed-buffer vmalloc fallback); no timing race or external victim state is required.\nPR:N - Exploitation requires only completing an SMC session as a network peer to a victim that reads with splice (common zero-copy SMC pattern); no local account, capabilities, or namespace-admin rights on the victim host are needed beyond normal remote connectivity to the SMC service.\nUI:N - No per-exploit victim action is needed beyond an application already using splice on SMC receive; a malicious peer can deliver the receive data while the victim\u0027s normal automated splice path triggers the refcount imbalance without prompts or manual steps.\nS:U - Impact is kernel page refcount underflow and use-after-free within the same kernel security boundary, enabling privilege escalation or crash on the host; it does not cross VM, IOMMU, or sandbox authority boundaries.\nC:H - Refcount imbalance lets smc_rx_spd_release and pipe-buffer teardown free pages while still referenced, creating a UAF on RMB pages that can be turned into arbitrary kernel memory disclosure via heap reuse and spraying.\nI:H - Corrupted page lifetime and dangling pipe_buffer state enable heap metadata corruption and arbitrary kernel writes from the UAF primitive, supporting control-flow hijacking and local privilege escalation.\nA:H - Page refcount underflow and UAF during splice teardown can cause immediate kernel oops/panic; repeated splice from an SMC peer reliably triggers denial-of-service even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:55.722Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7ddc7af2ae7fc5a0c0635b245c0824c8b76de5cb"
},
{
"url": "https://git.kernel.org/stable/c/07ad246529d136d5ef441d5ab4c305d132ff3090"
},
{
"url": "https://git.kernel.org/stable/c/c841789e456ec6751342fa800639ce8e82ff0e6b"
},
{
"url": "https://git.kernel.org/stable/c/af02c67ce654356c58db20a0bb2db33ace3b07a8"
},
{
"url": "https://git.kernel.org/stable/c/ca8342b5fc24c249fdb998468f6a168b457c67e5"
},
{
"url": "https://git.kernel.org/stable/c/0b7d54cedea5cb158e21925ae0c6c2f5c87ed2a0"
},
{
"url": "https://git.kernel.org/stable/c/4515c78f4d9fd577270f012efeb062ea58b3682d"
},
{
"url": "https://git.kernel.org/stable/c/5d9686af2976741bbd79b150d1c9e60b81e7f12e"
}
],
"title": "net: smc: fix splice entry lifetime imbalance in smc_rx_splice",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74631",
"datePublished": "2026-08-22T15:32:12.334Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-10-16T19:06:03.774Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72108 (GCVE-0-2026-72108)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm thin metadata: fix metadata snapshot consistency on commit failure
__reserve_metadata_snap() and __release_metadata_snap() modify the
superblock's held_root directly in the block_manager's buffer. If the
subsequent metadata commit fails, the held_root gets flushed to disk
through the abort_transaction path, resulting in inconsistent metadata.
Reproducer 1: __reserve_metadata_snap()
1. Create a 2 MiB metadata device and make the region after the 14th
block inaccessible, to trigger metadata commit failure in the
subsequent reserve_metadata_snap operation. The 14th block will be
the shadow destination for the index block.
dmsetup create tmeta --table "0 112 linear /dev/sdc 0
112 3984 error"
2. Create a 16 MiB thin-pool
dmsetup create tdata --table "0 32768 zero"
dd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1
dmsetup create tpool --table "0 32768 thin-pool /dev/mapper/tmeta \
/dev/mapper/tdata 128 0 1 skip_block_zeroing"
3. Take a metadata snapshot to trigger metadata commit failure and
transaction abort. However, the held_root is written to disk,
breaking metadata consistency.
dmsetup message tpool 0 "reserve_metadata_snap"
thin_check v1.2.2 result:
Bad reference count for metadata block 6. Expected 2, but space map contains 1.
Bad reference count for metadata block 7. Expected 2, but space map contains 1.
Bad reference count for metadata block 13. Expected 1, but space map contains 0.
Reproducer 2: __release_metadata_snap()
1. Create a 2 MiB metadata device and make the region after the 16th
block inaccessible, to trigger metadata commit failure in the
subsequent release_metadata_snap operation. The 16th block will be
the shadow destination for the index block.
dmsetup create tmeta --table "0 128 linear /dev/sdc 0
128 3968 error"
2. Create a 16 MiB thin-pool
dmsetup create tdata --table "0 32768 zero"
dd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1
dmsetup create tpool --table "0 32768 thin-pool /dev/mapper/tmeta \
/dev/mapper/tdata 128 0 1 skip_block_zeroing"
3. Reserve then release the metadata snapshot, to trigger metadata
commit failure and transaction abort. The held_root gets removed
from the on-disk superblock, causing inconsistent metadata.
dmsetup message tpool 0 "reserve_metadata_snap"
dmsetup message tpool 0 "release_metadata_snap"
thin_check v1.2.2 result:
Bad reference count for metadata block 6. Expected 1, but space map contains 2.
Bad reference count for metadata block 7. Expected 1, but space map contains 2.
1 metadata blocks have leaked.
Fix by deferring the held_root update to commit time.
Additionally, move the existing-snapshot check in __reserve_metadata_snap
before the shadow operation to avoid unnecessary work. In
__release_metadata_snap, clear pmd->held_root before btree deletion so
partial failure leaks blocks rather than leaving a stale reference, and
unlock the snapshot block before decrementing its refcount.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 Version: 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72108",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:52:16.054783Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-672",
"description": "CWE-672 Operation on a Resource after Expiration or Release",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:28.563Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-thin-metadata.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4af993468193cf4cd32ba5748786e7801945f7d2",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "abf2fae92cbe68945028987d498cc72f8f0e23a8",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "5efb1a7734ed4035fa4fdc3716bdb84621f27cf6",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "3dc9ae1029320d77472c44965e572f176949cd63",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "b5f9a31c51cbb374a1713c3494f8660ab070f035",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "7f76245960a332f39b08cc556e675d1765dc5bbb",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "9f1a0d27586ceab055e6b050e3731ce3c6b2c4f0",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
},
{
"lessThan": "5bcd4d3058ebaf46ad2e163829d87dd4870c7a45",
"status": "affected",
"version": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-thin-metadata.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm thin metadata: fix metadata snapshot consistency on commit failure\n\n__reserve_metadata_snap() and __release_metadata_snap() modify the\nsuperblock\u0027s held_root directly in the block_manager\u0027s buffer. If the\nsubsequent metadata commit fails, the held_root gets flushed to disk\nthrough the abort_transaction path, resulting in inconsistent metadata.\n\nReproducer 1: __reserve_metadata_snap()\n\n1. Create a 2 MiB metadata device and make the region after the 14th\n block inaccessible, to trigger metadata commit failure in the\n subsequent reserve_metadata_snap operation. The 14th block will be\n the shadow destination for the index block.\n\ndmsetup create tmeta --table \"0 112 linear /dev/sdc 0\n112 3984 error\"\n\n2. Create a 16 MiB thin-pool\n\ndmsetup create tdata --table \"0 32768 zero\"\ndd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1\ndmsetup create tpool --table \"0 32768 thin-pool /dev/mapper/tmeta \\\n/dev/mapper/tdata 128 0 1 skip_block_zeroing\"\n\n3. Take a metadata snapshot to trigger metadata commit failure and\n transaction abort. However, the held_root is written to disk,\n breaking metadata consistency.\n\ndmsetup message tpool 0 \"reserve_metadata_snap\"\n\nthin_check v1.2.2 result:\n\nBad reference count for metadata block 6. Expected 2, but space map contains 1.\nBad reference count for metadata block 7. Expected 2, but space map contains 1.\nBad reference count for metadata block 13. Expected 1, but space map contains 0.\n\nReproducer 2: __release_metadata_snap()\n\n1. Create a 2 MiB metadata device and make the region after the 16th\n block inaccessible, to trigger metadata commit failure in the\n subsequent release_metadata_snap operation. The 16th block will be\n the shadow destination for the index block.\n\ndmsetup create tmeta --table \"0 128 linear /dev/sdc 0\n128 3968 error\"\n\n2. Create a 16 MiB thin-pool\n\ndmsetup create tdata --table \"0 32768 zero\"\ndd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1\ndmsetup create tpool --table \"0 32768 thin-pool /dev/mapper/tmeta \\\n/dev/mapper/tdata 128 0 1 skip_block_zeroing\"\n\n3. Reserve then release the metadata snapshot, to trigger metadata\n commit failure and transaction abort. The held_root gets removed\n from the on-disk superblock, causing inconsistent metadata.\n\ndmsetup message tpool 0 \"reserve_metadata_snap\"\ndmsetup message tpool 0 \"release_metadata_snap\"\n\nthin_check v1.2.2 result:\n\nBad reference count for metadata block 6. Expected 1, but space map contains 2.\nBad reference count for metadata block 7. Expected 1, but space map contains 2.\n1 metadata blocks have leaked.\n\nFix by deferring the held_root update to commit time.\n\nAdditionally, move the existing-snapshot check in __reserve_metadata_snap\nbefore the shadow operation to avoid unnecessary work. In\n__release_metadata_snap, clear pmd-\u003eheld_root before btree deletion so\npartial failure leaks blocks rather than leaving a stale reference, and\nunlock the snapshot block before decrementing its refcount."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local Device Mapper ioctls (dmsetup/LVM dm messages on /dev/mapper/control); reserve_metadata_snap and release_metadata_snap have no network, adjacent-wireless, or physical-device receive path.\nAC:L - An attacker with CAP_SYS_ADMIN who controls thin-pool creation can reliably force commit failure by mapping part of the metadata device to the dm error target (per the fix reproducer), deterministically hitting the flush-then-abort race.\nPR:L - DM ioctls require CAP_SYS_ADMIN, which is obtainable inside an unprivileged user namespace per kernel CNA guidance; thin-pool administration is commonly available to container/host admins with namespace capabilities, not only init-namespace root.\nUI:N - Exploitation requires only the attacker sending reserve_metadata_snap or release_metadata_snap via dmsetup/LVM; no separate victim user action such as opening a file or mounting a filesystem is needed.\nS:U - Corruption is confined to on-disk thin-pool metadata under the same host kernel and storage-admin security authority; it is not a KVM/Xen guest-to-host escape or cross-hypervisor boundary break.\nC:H - Persistently inconsistent btree/spacemap reference counts can mis-map logical blocks to wrong physical sectors, exposing stale or other thin volumes\u0027 data on shared LVM thin pools\u2014storage-layer disclosure beyond the attacker\u0027s intended mapping.\nI:H - The same metadata inconsistency can double-allocate physical blocks or redirect writes to incorrect sectors, corrupting or overwriting other tenants\u0027 data on multi-volume thin pools until thin_repair is performed.\nA:H - Commit failure leaves durable metadata corruption (thin_check refcount errors, leaked blocks), triggers needs_check, forces the pool into read-only/fail modes, and can render the pool unusable until offline repair."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:40:21.561Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4af993468193cf4cd32ba5748786e7801945f7d2"
},
{
"url": "https://git.kernel.org/stable/c/abf2fae92cbe68945028987d498cc72f8f0e23a8"
},
{
"url": "https://git.kernel.org/stable/c/5efb1a7734ed4035fa4fdc3716bdb84621f27cf6"
},
{
"url": "https://git.kernel.org/stable/c/3dc9ae1029320d77472c44965e572f176949cd63"
},
{
"url": "https://git.kernel.org/stable/c/b5f9a31c51cbb374a1713c3494f8660ab070f035"
},
{
"url": "https://git.kernel.org/stable/c/7f76245960a332f39b08cc556e675d1765dc5bbb"
},
{
"url": "https://git.kernel.org/stable/c/9f1a0d27586ceab055e6b050e3731ce3c6b2c4f0"
},
{
"url": "https://git.kernel.org/stable/c/5bcd4d3058ebaf46ad2e163829d87dd4870c7a45"
}
],
"title": "dm thin metadata: fix metadata snapshot consistency on commit failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72108",
"datePublished": "2026-08-15T05:52:50.321Z",
"dateReserved": "2026-08-09T03:40:39.906Z",
"dateUpdated": "2026-10-19T21:19:28.563Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63881 (GCVE-0-2026-63881)
Vulnerability from cvelistv5
Published
2026-07-19 14:54
Modified
2026-10-19 20:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: fix a vulnerability of integer overflow in kfd debugger
get_queue_ids() computes array_size = num_queues * sizeof(uint32_t),
which could overflow on 32-bit size_t build. using array_size()
instead, it saturates to SIZE_MAX on overflow.
(cherry picked from commit 2d57a0475f085c08b49312dfd8edcb461845f285)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63881",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:32:47.297110Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-190",
"description": "CWE-190 Integer Overflow or Wraparound",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:17:54.018Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e5f808b454167cc58d7084a407a554d8ddc694d",
"status": "affected",
"version": "a70a93fa568b4f05aba548dadb673703eccf5480",
"versionType": "git"
},
{
"lessThan": "de70a80992396ee306ee3a2810ad28aa1608ba9b",
"status": "affected",
"version": "a70a93fa568b4f05aba548dadb673703eccf5480",
"versionType": "git"
},
{
"lessThan": "5cf4a41aa0d74e4c83f82d2ce233b5189ed4b43c",
"status": "affected",
"version": "a70a93fa568b4f05aba548dadb673703eccf5480",
"versionType": "git"
},
{
"lessThan": "4f9eeedc3d3151f8a226fd676c314a813edda5a1",
"status": "affected",
"version": "a70a93fa568b4f05aba548dadb673703eccf5480",
"versionType": "git"
},
{
"lessThan": "93f5534b35a05ef8a0109c1eefa800062fee810a",
"status": "affected",
"version": "a70a93fa568b4f05aba548dadb673703eccf5480",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.5"
},
{
"lessThan": "6.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: fix a vulnerability of integer overflow in kfd debugger\n\nget_queue_ids() computes array_size = num_queues * sizeof(uint32_t),\nwhich could overflow on 32-bit size_t build. using array_size()\ninstead, it saturates to SIZE_MAX on overflow.\n\n(cherry picked from commit 2d57a0475f085c08b49312dfd8edcb461845f285)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local `ioctl()` on `/dev/kfd` via `AMDKFD_IOC_DBG_TRAP` with `KFD_IOC_DBG_TRAP_SUSPEND_QUEUES` or `KFD_IOC_DBG_TRAP_RESUME_QUEUES`; there is no network, adjacent-radio, or physical-access path to the vulnerable code.\nAC:L - On affected 32-bit `size_t` kernel builds, an attacker fully controls `num_queues` in the ioctl and can reliably force the multiply overflow (e.g. `num_queues \u003e= 0x40000001`) to trigger undersized `memdup_user()` followed by unbounded kernel heap corruption.\nPR:L - A local unprivileged user with AMDGPU/KFD device access can open `/dev/kfd`, enable the debug runtime and debug trap on their own process (no ptrace or root required), then invoke suspend/resume with a malicious `num_queues` value.\nUI:N - Exploitation is achieved entirely through attacker-initiated ioctl calls in an established KFD debug session; no victim interaction is required.\nS:U - Impact is kernel heap corruption and potential local privilege escalation within the same kernel security boundary, not a cross-boundary escape such as VM guest-to-host or IOMMU bypass.\nC:H - The integer overflow causes a heap buffer far smaller than `num_queues`, and subsequent `q_array_get_index()`/`copy_to_user()` operations perform out-of-bounds kernel reads that can disclose adjacent heap memory and be leveraged for arbitrary read primitives.\nI:H - `q_array_invalidate()` and per-queue status updates write attacker-influenced values (`KFD_DBG_QUEUE_INVALID_MASK`/`KFD_DBG_QUEUE_ERROR_MASK`) far beyond the allocated buffer, constituting an out-of-bounds heap write exploitable for control-flow hijacking and arbitrary kernel modification.\nA:H - Writing billions of 32-bit values past a 4-byte kmalloc object corrupts adjacent kernel heap metadata and objects, readily causing kernel oops/panic and complete loss of availability even before full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:36:51.042Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e5f808b454167cc58d7084a407a554d8ddc694d"
},
{
"url": "https://git.kernel.org/stable/c/de70a80992396ee306ee3a2810ad28aa1608ba9b"
},
{
"url": "https://git.kernel.org/stable/c/5cf4a41aa0d74e4c83f82d2ce233b5189ed4b43c"
},
{
"url": "https://git.kernel.org/stable/c/4f9eeedc3d3151f8a226fd676c314a813edda5a1"
},
{
"url": "https://git.kernel.org/stable/c/93f5534b35a05ef8a0109c1eefa800062fee810a"
}
],
"title": "drm/amdkfd: fix a vulnerability of integer overflow in kfd debugger",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63881",
"datePublished": "2026-07-19T14:54:53.676Z",
"dateReserved": "2026-07-19T07:54:57.018Z",
"dateUpdated": "2026-10-19T20:17:54.018Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80779 (GCVE-0-2026-80779)
Vulnerability from cvelistv5
Published
2026-09-04 15:12
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/ionic: avoid OOB TX partner lookup for hwstamp RXQ
The dedicated hardware timestamp RX queue is allocated with q->index
equal to lif->ionic->nrxqs_per_lif. The normal txqcqs array only
contains the regular queue pairs, so using that index to set rxq->partner
can read one entry past txqcqs[] and then write through the derived
pointer.
Only link RX/TX partners for normal queue-pair indexes. Leave the hwstamp
RX queue unpaired, and make the XDP_TX path abort cleanly if an RX queue
has no TX partner.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/pensando/ionic/ionic_lif.c",
"drivers/net/ethernet/pensando/ionic/ionic_txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "881a805a8029ba48c0ce81c6674910f8d83f7afb",
"status": "affected",
"version": "8eeed8373e1cca836799bf8e4a05cffa8e444908",
"versionType": "git"
},
{
"lessThan": "39fc615e355b65b8d43be30da57aa95ae6eaf688",
"status": "affected",
"version": "8eeed8373e1cca836799bf8e4a05cffa8e444908",
"versionType": "git"
},
{
"lessThan": "f3868046e8e2e761d4d943a232bd109ff22a7d5b",
"status": "affected",
"version": "8eeed8373e1cca836799bf8e4a05cffa8e444908",
"versionType": "git"
},
{
"lessThan": "ea081b4435515ac7177eb598a3c0678d1b9e7911",
"status": "affected",
"version": "8eeed8373e1cca836799bf8e4a05cffa8e444908",
"versionType": "git"
},
{
"lessThan": "d92255b405fb6f5acca408239ccd742e0a42c9cb",
"status": "affected",
"version": "8eeed8373e1cca836799bf8e4a05cffa8e444908",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/pensando/ionic/ionic_lif.c",
"drivers/net/ethernet/pensando/ionic/ionic_txrx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/ionic: avoid OOB TX partner lookup for hwstamp RXQ\n\nThe dedicated hardware timestamp RX queue is allocated with q-\u003eindex\nequal to lif-\u003eionic-\u003enrxqs_per_lif. The normal txqcqs array only\ncontains the regular queue pairs, so using that index to set rxq-\u003epartner\ncan read one entry past txqcqs[] and then write through the derived\npointer.\nOnly link RX/TX partners for normal queue-pair indexes. Leave the hwstamp\nRX queue unpaired, and make the XDP_TX path abort cleanly if an RX queue\nhas no TX partner."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:34.624Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/881a805a8029ba48c0ce81c6674910f8d83f7afb"
},
{
"url": "https://git.kernel.org/stable/c/39fc615e355b65b8d43be30da57aa95ae6eaf688"
},
{
"url": "https://git.kernel.org/stable/c/f3868046e8e2e761d4d943a232bd109ff22a7d5b"
},
{
"url": "https://git.kernel.org/stable/c/ea081b4435515ac7177eb598a3c0678d1b9e7911"
},
{
"url": "https://git.kernel.org/stable/c/d92255b405fb6f5acca408239ccd742e0a42c9cb"
}
],
"title": "net/ionic: avoid OOB TX partner lookup for hwstamp RXQ",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80779",
"datePublished": "2026-09-04T15:12:51.103Z",
"dateReserved": "2026-08-26T14:34:25.792Z",
"dateUpdated": "2026-10-19T08:43:34.624Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74622 (GCVE-0-2026-74622)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-22 15:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: atlantic: free RX pages of consumed but not refilled buffers
aq_ring_rx_deinit() only walks [sw_head, sw_tail), the region posted to
hardware. Since the page reuse strategy was added, a cleaned RX buffer
keeps its page (and its DMA mapping) in the ring for reuse, and refill
is batched: aq_ring_rx_fill() returns early until AQ_CFG_RX_REFILL_THRES
slots are free. Slots that were consumed but not yet reposted therefore
sit in the complementary [sw_tail, sw_head) gap with a live page, and
the deinit walk never visits them: up to a refill batch worth of pages
and DMA mappings leak on every interface down.
Walk the whole ring instead and release whatever is still there. Also
bail out if the buffer ring is already gone: a partial
aq_ptp_ring_alloc() failure frees the ring but leaves aq_nic set, so
aq_ptp_ring_deinit() still gets here on the unwind path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Version: 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/aquantia/atlantic/aq_ring.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1e58b0bab40dcbdfc04acaba6a221d40801c3770",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "30c473ea097ef0c93b064281b3e295c97d17e28b",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "17c99dd86f169c7a3e73d6778e79ef5b1ed3ceac",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "ff451bc4290b79c04f1c5cfa928d448f9d47ecf5",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "64e1346bc66b947eb80b848e4c8d9828ba50e0fe",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "782cc40b7ade4614a8aec0b948b8cf95c69f8d4b",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "24d87dc28ddd3771dd0e88719209811809729439",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
},
{
"lessThan": "e8e7471ef686b6c002218fee9671cc61992ae01a",
"status": "affected",
"version": "46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/aquantia/atlantic/aq_ring.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: atlantic: free RX pages of consumed but not refilled buffers\n\naq_ring_rx_deinit() only walks [sw_head, sw_tail), the region posted to\nhardware. Since the page reuse strategy was added, a cleaned RX buffer\nkeeps its page (and its DMA mapping) in the ring for reuse, and refill\nis batched: aq_ring_rx_fill() returns early until AQ_CFG_RX_REFILL_THRES\nslots are free. Slots that were consumed but not yet reposted therefore\nsit in the complementary [sw_tail, sw_head) gap with a live page, and\nthe deinit walk never visits them: up to a refill batch worth of pages\nand DMA mappings leak on every interface down.\n\nWalk the whole ring instead and release whatever is still there. Also\nbail out if the buffer ring is already gone: a partial\naq_ptp_ring_alloc() failure frees the ring but leaves aq_nic set, so\naq_ptp_ring_deinit() still gets here on the unwind path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-22T15:32:05.719Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1e58b0bab40dcbdfc04acaba6a221d40801c3770"
},
{
"url": "https://git.kernel.org/stable/c/30c473ea097ef0c93b064281b3e295c97d17e28b"
},
{
"url": "https://git.kernel.org/stable/c/17c99dd86f169c7a3e73d6778e79ef5b1ed3ceac"
},
{
"url": "https://git.kernel.org/stable/c/ff451bc4290b79c04f1c5cfa928d448f9d47ecf5"
},
{
"url": "https://git.kernel.org/stable/c/64e1346bc66b947eb80b848e4c8d9828ba50e0fe"
},
{
"url": "https://git.kernel.org/stable/c/782cc40b7ade4614a8aec0b948b8cf95c69f8d4b"
},
{
"url": "https://git.kernel.org/stable/c/24d87dc28ddd3771dd0e88719209811809729439"
},
{
"url": "https://git.kernel.org/stable/c/e8e7471ef686b6c002218fee9671cc61992ae01a"
}
],
"title": "net: atlantic: free RX pages of consumed but not refilled buffers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74622",
"datePublished": "2026-08-22T15:32:05.719Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-08-22T15:32:05.719Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97557 (GCVE-0-2026-97557)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: avoid leaking refcount in cifs_queue_oplock_break()
cifs_queue_oplock_break() unconditionally takes a reference on the
target file before queueing cifs_oplock_break(). Only that work item
decreases the reference counter again.
If another oplock break arrives while that work is still queued,
queue_work() will return false and not queue this second work item. As a
result, we will never reach the point to drop the file reference again
and are leaking this reference. This can be triggered when interacting
with a slow-responding server.
As a result, later unmount operations for this file system will fail with
BUG: Dentry ... still in use (1) [unmount of cifs cifs]
VFS: Busy inodes after unmount of cifs (cifs)
kernel BUG at fs/super.c:777!
Fix this by only incrementing the reference count if the work has been
queued successfully. Taking it after queue_work() is safe because all
three callers hold tcon->open_file_lock across the call and
_cifsFileInfo_put() decrements under that same lock, so a worker that
starts the handler in the window cannot drop the reference before it has
been taken.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: b98749cac4a695f084a5ff076f4510b23e353ecd Version: 2429fcf06d3cb962693868ab0a927c9038f12a2d Version: 1ee4f2d7cdcd4508cc3cbe3b2622d7177b89da12 Version: 53fc31a4853e30d6e8f142b824f724da27ff3e40 Version: 8092ecc306d81186a64cda42411121f4d35aaff4 Version: ebac4d0adf68f8962bd82fcf483936edd6ec095b Version: 3.16.72 ≤ Version: 4.9.171 ≤ Version: 4.14.114 ≤ Version: 4.19.37 ≤ Version: 5.0.10 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "735a3a610136ae10f381d0909dff38e5b5c5f056",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"lessThan": "de2a6bcff2659bea40c7485115b57f0ae189fc01",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"lessThan": "af0193bbf1ac8c0f67f972998b0cc629d6116cf6",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"lessThan": "2ed2c29dd9593637cfa25ac1eb23241b20202778",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"lessThan": "dfe7b750c7e069873a8a57a11c816831a235618a",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"lessThan": "9f2e63f1b2d5fc5b5423424902c091123e220e7e",
"status": "affected",
"version": "b98749cac4a695f084a5ff076f4510b23e353ecd",
"versionType": "git"
},
{
"status": "affected",
"version": "2429fcf06d3cb962693868ab0a927c9038f12a2d",
"versionType": "git"
},
{
"status": "affected",
"version": "1ee4f2d7cdcd4508cc3cbe3b2622d7177b89da12",
"versionType": "git"
},
{
"status": "affected",
"version": "53fc31a4853e30d6e8f142b824f724da27ff3e40",
"versionType": "git"
},
{
"status": "affected",
"version": "8092ecc306d81186a64cda42411121f4d35aaff4",
"versionType": "git"
},
{
"status": "affected",
"version": "ebac4d0adf68f8962bd82fcf483936edd6ec095b",
"versionType": "git"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.72",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.171",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.114",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.37",
"versionType": "semver"
},
{
"lessThan": "5.1",
"status": "affected",
"version": "5.0.10",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.72",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.171",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.114",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.0.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: avoid leaking refcount in cifs_queue_oplock_break()\n\ncifs_queue_oplock_break() unconditionally takes a reference on the\ntarget file before queueing cifs_oplock_break(). Only that work item\ndecreases the reference counter again.\n\nIf another oplock break arrives while that work is still queued,\nqueue_work() will return false and not queue this second work item. As a\nresult, we will never reach the point to drop the file reference again\nand are leaking this reference. This can be triggered when interacting\nwith a slow-responding server.\n\nAs a result, later unmount operations for this file system will fail with\n\n BUG: Dentry ... still in use (1) [unmount of cifs cifs]\n VFS: Busy inodes after unmount of cifs (cifs)\n kernel BUG at fs/super.c:777!\n\nFix this by only incrementing the reference count if the work has been\nqueued successfully. Taking it after queue_work() is safe because all\nthree callers hold tcon-\u003eopen_file_lock across the call and\n_cifsFileInfo_put() decrements under that same lock, so a worker that\nstarts the handler in the window cannot drop the reference before it has\nbeen taken."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Unsolicited SMB2 OPLOCK_BREAK and StructureSize-44 lease-break PDUs (or SMB1 LOCKING_ANDX with LOCKING_ANDX_OPLOCK_RELEASE) arrive on the CIFS client TCP session; after smb2_find_mid()/cifs_find_mid() miss, cifs_demultiplex_thread() calls smb2_is_valid_oplock_break()/smb2_tcon_has_lease()/is_valid_oplock_break(), which invoke the patched cifs_queue_oplock_break() on the FID/lease-matched cifsFileInfo.\nAC:L - A malicious server that issued the PersistentFid/VolatileFid or lease key on CREATE sends a second matching break while cfile-\u003eoplock_break is still pending on cifsoplockd_wq, so queue_work() returns false after the extra cifsFileInfo_get(); two back-to-back unsolicited PDUs are processed on the same demux thread before the worker runs, which the attacker creates.\nPR:N - The attacker is the SMB server (or a MITM on an unsigned session) and holds no account or capability on the client; oplock/lease breaks are unsolicited notifications handled when find_mid() returns NULL, with no client-side session or share-ACL check on that PDU.\nUI:N - On an already-mounted CIFS/SMB3 share the server sends the extra SMB2_OPLOCK_BREAK/lease-break for an open FID it already granted, with no further victim mount or open at attack time; the later umount that hits the busy-dentry BUG is autofs idle expiry, container teardown, or shutdown.\nS:U - The leaked cifsFileInfo ref and the generic_shutdown_super() busy-inode BUG stay inside the client kernel\u0027s VFS/CIFS objects on the same host; this is not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:N - The defect only increments cifsFileInfo.count in cifs_queue_oplock_break() when queue_work() fails; the extra ref pins cfile-\u003edentry instead of freeing it, so there is no OOB read, UAF, or kernel data returned to the server or to userspace.\nI:N - cifs_oplock_break() still _cifsFileInfo_put()s once per successfully queued work item, and the leaked get is never a write through a freed object, double-free, or control-flow primitive; count is only incremented.\nA:H - Each leaked get keeps the dentry from cifs_new_fileinfo()\u0027s dget() alive, so later unmount hits umount_check()\u0027s \"Dentry still in use\" WARN and generic_shutdown_super()\u0027s CHECK_DATA_CORRUPTION(\"VFS: Busy inodes after unmount of cifs\"), which BUG()s under CONFIG_BUG_ON_DATA_CORRUPTION as the fix commit reports at fs/super.c."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:20.287Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/735a3a610136ae10f381d0909dff38e5b5c5f056"
},
{
"url": "https://git.kernel.org/stable/c/de2a6bcff2659bea40c7485115b57f0ae189fc01"
},
{
"url": "https://git.kernel.org/stable/c/af0193bbf1ac8c0f67f972998b0cc629d6116cf6"
},
{
"url": "https://git.kernel.org/stable/c/2ed2c29dd9593637cfa25ac1eb23241b20202778"
},
{
"url": "https://git.kernel.org/stable/c/dfe7b750c7e069873a8a57a11c816831a235618a"
},
{
"url": "https://git.kernel.org/stable/c/9f2e63f1b2d5fc5b5423424902c091123e220e7e"
}
],
"title": "smb: client: avoid leaking refcount in cifs_queue_oplock_break()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97557",
"datePublished": "2026-09-25T10:21:47.680Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-19T09:09:20.287Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64402 (GCVE-0-2026-64402)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-08-17 04:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()
When the SMB sink is used as a perf AUX sink, smb_update_buffer() calls
smb_sync_perf_buffer() to copy hardware trace data into the perf AUX ring
buffer pages. It derives pg_idx = head >> PAGE_SHIFT from @head, which is
handle->head, and indexes dst_pages[pg_idx]. The pg_idx %= nr_pages
normalization is only applied after the first loop iteration.
This leaves the initial page index underived from the buffer size, which
can result in an out-of-bounds write past dst_pages[] when head exceeds
the AUX buffer size.
Normalize head modulo the AUX buffer size before deriving the page index
and offset, mirroring tmc_etr_sync_perf_buffer().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwtracing/coresight/ultrasoc-smb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "38dbc8db8341ccdf8e1e1a067453d33ad751864b",
"status": "affected",
"version": "06f5c2926aaa0fba7f99678da6ef77cbbbda1441",
"versionType": "git"
},
{
"lessThan": "4c5a0a946373da99a80398289b28845b5ae40cd1",
"status": "affected",
"version": "06f5c2926aaa0fba7f99678da6ef77cbbbda1441",
"versionType": "git"
},
{
"lessThan": "661a019ac0413ecec9e5d1dfcc12fbca8e78d5fb",
"status": "affected",
"version": "06f5c2926aaa0fba7f99678da6ef77cbbbda1441",
"versionType": "git"
},
{
"lessThan": "daf6246ab988fc8bdc82ad7c8d0b1c182d11b15f",
"status": "affected",
"version": "06f5c2926aaa0fba7f99678da6ef77cbbbda1441",
"versionType": "git"
},
{
"lessThan": "98495b5a4d77dd22e106f462b76e1093a55b29a7",
"status": "affected",
"version": "06f5c2926aaa0fba7f99678da6ef77cbbbda1441",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwtracing/coresight/ultrasoc-smb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncoresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()\n\nWhen the SMB sink is used as a perf AUX sink, smb_update_buffer() calls\nsmb_sync_perf_buffer() to copy hardware trace data into the perf AUX ring\nbuffer pages. It derives pg_idx = head \u003e\u003e PAGE_SHIFT from @head, which is\nhandle-\u003ehead, and indexes dst_pages[pg_idx]. The pg_idx %= nr_pages\nnormalization is only applied after the first loop iteration.\n\nThis leaves the initial page index underived from the buffer size, which\ncan result in an out-of-bounds write past dst_pages[] when head exceeds\nthe AUX buffer size.\n\nNormalize head modulo the AUX buffer size before deriving the page index\nand offset, mirroring tmc_etr_sync_perf_buffer()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable path is reached locally through perf_event_open(), AUX-buffer mmap, and perf event scheduling or ioctls; it has no network or physical entry point.\nAC:L - An attacker can choose a small AUX buffer, advance aux_tail, and repeatedly stop and restart their own trace until the monotonically increasing head crosses the buffer size. No race or condition outside the attacker\u0027s control is required.\nPR:L - A self-targeted event with exclude_kernel=1 is available to an ordinary unprivileged user under the mainline default perf_event_paranoid setting, and selecting the SMB sink requires no privileged sysfs write.\nUI:N - The attacker creates, runs, consumes, and stops their own tracing event without any victim action.\nS:U - Exploitation compromises the host kernel within the same security authority and does not inherently cross a VM, IOMMU, or other separate security boundary.\nC:H - The out-of-range page-pointer lookup directs memcpy() through a pointer obtained from groomable adjacent kernel memory. Resulting kernel-memory corruption can plausibly enable control-flow hijacking and unrestricted disclosure.\nI:H - The attacker-influenced trace data is written through an invalid kernel pointer, providing exploitable memory corruption that can plausibly yield arbitrary kernel modification or code execution.\nA:H - An ungroomed invalid destination pointer can immediately cause a kernel oops or panic, and the attacker can trigger the path repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:00.113Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/38dbc8db8341ccdf8e1e1a067453d33ad751864b"
},
{
"url": "https://git.kernel.org/stable/c/4c5a0a946373da99a80398289b28845b5ae40cd1"
},
{
"url": "https://git.kernel.org/stable/c/661a019ac0413ecec9e5d1dfcc12fbca8e78d5fb"
},
{
"url": "https://git.kernel.org/stable/c/daf6246ab988fc8bdc82ad7c8d0b1c182d11b15f"
},
{
"url": "https://git.kernel.org/stable/c/98495b5a4d77dd22e106f462b76e1093a55b29a7"
}
],
"title": "coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64402",
"datePublished": "2026-07-25T08:50:45.075Z",
"dateReserved": "2026-07-19T15:36:31.785Z",
"dateUpdated": "2026-08-17T04:55:00.113Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74625 (GCVE-0-2026-74625)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: bridge: release template ct on non-IP path
A bridge nftables ct zone set rule can attach a conntrack template to
an skb before nf_ct_bridge_pre() sees it. For non-IPv4 and non-IPv6
EtherTypes, nf_ct_bridge_pre() currently overwrites skb->_nfct with
IP_CT_UNTRACKED without releasing the existing template reference.
That makes the per-cpu template, and any temporary templates allocated
for concurrent use, unreachable and leaks memory until the host runs out
of slab.
Reset the skb conntrack state before marking the frame untracked so the
existing template reference is dropped on the non-IP path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f Version: 3c171f496ef57774f8e5d509923372549734877f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74625",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:46.015893Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:03.037Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/nf_conntrack_bridge.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fc90df37540627d092af770215fb4b7befe9409b",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "daa6e070f8e1e7a4dddec8b64ca37663f8cda917",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "bd7b16494dacf87e9336a1dcfdada83b9e40edd6",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "6ea88401e10e04e0b3bb7a7adea54932fb60b93b",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "46d559f00b1ab1d114f92d2f16c5ef0093b3b9dd",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "c58d34fe8b7e47bb0b350a7625023b1261342be5",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "7cff440d702616022769f2643168d7f9820547a0",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
},
{
"lessThan": "d45cc8020d7c0a9f01dee42ff5c40bc14c9af72f",
"status": "affected",
"version": "3c171f496ef57774f8e5d509923372549734877f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/netfilter/nf_conntrack_bridge.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: bridge: release template ct on non-IP path\n\nA bridge nftables ct zone set rule can attach a conntrack template to\nan skb before nf_ct_bridge_pre() sees it. For non-IPv4 and non-IPv6\nEtherTypes, nf_ct_bridge_pre() currently overwrites skb-\u003e_nfct with\nIP_CT_UNTRACKED without releasing the existing template reference.\n\nThat makes the per-cpu template, and any temporary templates allocated\nfor concurrent use, unreachable and leaks memory until the host runs out\nof slab.\n\nReset the skb conntrack state before marking the frame untracked so the\nexisting template reference is dropped on the non-IP path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Non-IP L2 frames (ARP/LLDP) injected into a Linux bridge reach NF_BR_PRE_ROUTING via br_handle_frame\u2192nf_hook_bridge_pre; on overlay/container hosts (VXLAN/GRE bridges in Docker/k8s/OpenStack) remote peers can deliver those frames across routed networks to the victim bridge port.\nAC:L - Once a bridge nftables ct zone set rule runs before NF_IP_PRI_CONNTRACK (-200), every non-IPv4/IPv6 EtherType frame deterministically leaks template references; the attacker controls rule priority, zone value, and can flood ARP/LLDP to accelerate the leak without races.\nPR:N - On bridge firewalls/routers with deployed nftables ct zone marking, exploitation needs only unauthenticated L2 packet delivery\u2014no host UID, capability, or namespace privilege; CAP_NET_ADMIN (obtainable via user namespaces) is an alternate Low path for self-setup but not required on pre-configured appliances.\nUI:N - Bridge netfilter processes received frames automatically in softirq; no victim mount, click, or administrative action is required beyond normal bridge forwarding of attacker-supplied non-IP traffic.\nS:U - Impact is unbounded kernel slab consumption from leaked nf_conn template objects within the host kernel; it does not cross VM, container, IOMMU, or hypervisor security boundaries.\nC:N - The bug is a missing nf_conntrack_put()\u2014a reference-count leak\u2014not a use-after-free, out-of-bounds read, or disclosure primitive; orphaned templates are unreachable and their contents are never returned to the attacker.\nI:N - Only template reference counts are leaked via skb-\u003e_nfct overwrite; no heap corruption, type confusion, or attacker-controlled writes occur, so integrity cannot be compromised beyond availability loss from memory pressure.\nA:H - Each leaked per-CPU and temporary conntrack template is never freed; sustained non-IP frame flooding can exhaust kernel slab until OOM, causing severe host unavailability or panic on memory-allocation failure paths."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:48.341Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fc90df37540627d092af770215fb4b7befe9409b"
},
{
"url": "https://git.kernel.org/stable/c/daa6e070f8e1e7a4dddec8b64ca37663f8cda917"
},
{
"url": "https://git.kernel.org/stable/c/bd7b16494dacf87e9336a1dcfdada83b9e40edd6"
},
{
"url": "https://git.kernel.org/stable/c/6ea88401e10e04e0b3bb7a7adea54932fb60b93b"
},
{
"url": "https://git.kernel.org/stable/c/46d559f00b1ab1d114f92d2f16c5ef0093b3b9dd"
},
{
"url": "https://git.kernel.org/stable/c/c58d34fe8b7e47bb0b350a7625023b1261342be5"
},
{
"url": "https://git.kernel.org/stable/c/7cff440d702616022769f2643168d7f9820547a0"
},
{
"url": "https://git.kernel.org/stable/c/d45cc8020d7c0a9f01dee42ff5c40bc14c9af72f"
}
],
"title": "netfilter: bridge: release template ct on non-IP path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74625",
"datePublished": "2026-08-22T15:32:07.929Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-10-16T19:06:03.037Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68148 (GCVE-0-2026-68148)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fscrypt: Add missing superblock check in find_or_insert_direct_key()
The legacy 'fscrypt_direct_keys' table caches master keys that are used
by v1 encryption policies that have FSCRYPT_POLICY_FLAG_DIRECT_KEY.
It's just a global table for all filesystems (since the keys can be
provided by the legacy process-subscribed keyrings mechanism, which
makes it difficult to reuse super_block::s_master_keys).
The entries in it ('struct fscrypt_direct_key') do contain a super_block
pointer, though, for passing to fscrypt_destroy_inline_crypt_key() when
the last inode that references the key is evicted.
However, when finding the fscrypt_direct_key for an inode, we weren't
actually comparing the super_block pointer. As a result, inodes with
different super_blocks could point to the same fscrypt_direct_key. That
could extend the lifetime of a fscrypt_direct_key beyond the
super_block it points to, causing a use-after-free later.
Fix this by creating distinct fscrypt_direct_key structs for distinct
super_block structs.
Note that this problem doesn't exist in the v2 policy equivalent
("per-mode keys"), since the data structures there are per super_block.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 Version: 22e9947a4b2ba255888541bd0111cf00b9b16586 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68148",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:44:51.705940Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:54.031Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/crypto/keysetup_v1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "965b5bc8cf5031225e057979ce660fec2bd5fbfc",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
},
{
"lessThan": "330249609b70778094a7a36f5b6bcfa6362121d4",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
},
{
"lessThan": "deff41898a5ae3a47db5fa1896a494aa95efda5d",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
},
{
"lessThan": "95376fe9c145be35566991df99c53134943d992f",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
},
{
"lessThan": "466f187b501a5ac8e1ea2ccf3ccd5c46108d8830",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
},
{
"lessThan": "b5fa40226e71c17847b9ff2816c6ca4133d0d994",
"status": "affected",
"version": "22e9947a4b2ba255888541bd0111cf00b9b16586",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/crypto/keysetup_v1.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfscrypt: Add missing superblock check in find_or_insert_direct_key()\n\nThe legacy \u0027fscrypt_direct_keys\u0027 table caches master keys that are used\nby v1 encryption policies that have FSCRYPT_POLICY_FLAG_DIRECT_KEY.\nIt\u0027s just a global table for all filesystems (since the keys can be\nprovided by the legacy process-subscribed keyrings mechanism, which\nmakes it difficult to reuse super_block::s_master_keys).\n\nThe entries in it (\u0027struct fscrypt_direct_key\u0027) do contain a super_block\npointer, though, for passing to fscrypt_destroy_inline_crypt_key() when\nthe last inode that references the key is evicted.\n\nHowever, when finding the fscrypt_direct_key for an inode, we weren\u0027t\nactually comparing the super_block pointer. As a result, inodes with\ndifferent super_blocks could point to the same fscrypt_direct_key. That\ncould extend the lifetime of a fscrypt_direct_key beyond the\nsuper_block it points to, causing a use-after-free later.\n\nFix this by creating distinct fscrypt_direct_key structs for distinct\nsuper_block structs.\n\nNote that this problem doesn\u0027t exist in the v2 policy equivalent\n(\"per-mode keys\"), since the data structures there are per super_block."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only through local syscalls (mount/umount, FS_IOC_SET_ENCRYPTION_POLICY, and file I/O that calls fscrypt_get_encryption_info -\u003e find_or_insert_direct_key); fscrypt is not invoked from network-facing kernel services.\nAC:L - An attacker who can mount two encrypted filesystems with the same v1 DIRECT_KEY master key, share the global cache entry, then unmount the first superblock can deterministically trigger eviction-time cleanup on a freed super_block without races or victim-dependent timing.\nPR:L - Exploitation requires mounting/unmounting filesystems and setting v1 DIRECT_KEY policies (CAP_SYS_ADMIN in a user/mount namespace) or supplying keys via process keyrings; per kernel guidance, CAP_SYS_ADMIN obtainable in user namespaces maps to PR:L.\nUI:N - No separate victim action is required; the attacker sets v1 DIRECT_KEY policies, accesses encrypted inodes on two mounts, and controls unmount/eviction to hit the vulnerable refcount and cleanup path.\nS:U - The use-after-free corrupts kernel heap memory and enables local privilege escalation within the same kernel; it does not cross VM, hypervisor, or IOMMU security boundaries.\nC:H - Extending a fscrypt_direct_key past its super_block lifetime causes cleanup to dereference a freed super_block in fscrypt_destroy_inline_crypt_key(), a use-after-free that can leak kernel memory and support arbitrary-read exploitation primitives.\nI:H - Use-after-free during inline-crypto key destruction on a dangling super_block pointer can be leveraged for heap corruption and arbitrary kernel writes, enabling local privilege escalation rather than only a controlled crash.\nA:H - Evicting the last inode holding the mismatched fscrypt_direct_key dereferences a freed super_block during key teardown, which can cause kernel oops/panic and complete local denial of service on encrypted mobile/embedded and server systems using inline encryption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:30:13.417Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/965b5bc8cf5031225e057979ce660fec2bd5fbfc"
},
{
"url": "https://git.kernel.org/stable/c/330249609b70778094a7a36f5b6bcfa6362121d4"
},
{
"url": "https://git.kernel.org/stable/c/deff41898a5ae3a47db5fa1896a494aa95efda5d"
},
{
"url": "https://git.kernel.org/stable/c/95376fe9c145be35566991df99c53134943d992f"
},
{
"url": "https://git.kernel.org/stable/c/466f187b501a5ac8e1ea2ccf3ccd5c46108d8830"
},
{
"url": "https://git.kernel.org/stable/c/b5fa40226e71c17847b9ff2816c6ca4133d0d994"
}
],
"title": "fscrypt: Add missing superblock check in find_or_insert_direct_key()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68148",
"datePublished": "2026-08-10T11:59:13.413Z",
"dateReserved": "2026-07-30T09:28:09.371Z",
"dateUpdated": "2026-10-19T20:58:54.031Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46044 (GCVE-0-2026-46044)
Vulnerability from cvelistv5
Published
2026-05-27 12:56
Modified
2026-10-21 12:41
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipmi:ssif: Clean up kthread on errors
If an error occurs after the ssif kthread is created, but before the
main IPMI code starts the ssif interface, the ssif kthread will not
be stopped.
So make sure the kthread is stopped on an error condition if it is
running.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 Version: 259307074bfcf1ff88016e12c68f057aee6cb694 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:20:10.309Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/char/ipmi/ipmi_ssif.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "549607af66a0efdb41307ba6343eed31de8b133e",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "f2d0a3ede5ebf404d4c334a1f04ef439e0086857",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "e662be2d0d05253d0fd7deda9771aa036c23393e",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "d6855a3b15851061c817506492b6aa0b605cff1e",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "858bc8b9edb6eaf0522900128bb9053e2df6b0f6",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "800febc637d1c1974b1e899dea8a07e115d60766",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
},
{
"lessThan": "75c486cb1bcaa1a3ec3a6438498176a3a4998ae4",
"status": "affected",
"version": "259307074bfcf1ff88016e12c68f057aee6cb694",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/char/ipmi/ipmi_ssif.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.27",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.27",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.4",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipmi:ssif: Clean up kthread on errors\n\nIf an error occurs after the ssif kthread is created, but before the\nmain IPMI code starts the ssif interface, the ssif kthread will not\nbe stopped.\n\nSo make sure the kthread is stopped on an error condition if it is\nrunning."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:41:13.996Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/549607af66a0efdb41307ba6343eed31de8b133e"
},
{
"url": "https://git.kernel.org/stable/c/f2d0a3ede5ebf404d4c334a1f04ef439e0086857"
},
{
"url": "https://git.kernel.org/stable/c/e662be2d0d05253d0fd7deda9771aa036c23393e"
},
{
"url": "https://git.kernel.org/stable/c/d6855a3b15851061c817506492b6aa0b605cff1e"
},
{
"url": "https://git.kernel.org/stable/c/858bc8b9edb6eaf0522900128bb9053e2df6b0f6"
},
{
"url": "https://git.kernel.org/stable/c/800febc637d1c1974b1e899dea8a07e115d60766"
},
{
"url": "https://git.kernel.org/stable/c/75c486cb1bcaa1a3ec3a6438498176a3a4998ae4"
}
],
"title": "ipmi:ssif: Clean up kthread on errors",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46044",
"datePublished": "2026-05-27T12:56:59.663Z",
"dateReserved": "2026-05-13T15:03:33.094Z",
"dateUpdated": "2026-10-21T12:41:13.996Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89697 (GCVE-0-2026-89697)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: add fh_want_write() for early-verified SETATTR in nfsd_proc_setattr()
The BOTH_TIME_SET branch calls fh_verify() early so setattr_prepare()
can inspect the dentry. This causes nfsd_setattr() to skip
fh_want_write(), so notify_change() runs without a mount write
reference.
Add the missing fh_want_write() call after the early fh_verify().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: cc265089ce1b176dde963c74b53593446ee7f99a Version: 1cb57d81cf20fe24b9e2e1daf57bfbdc24b77cd8 Version: 3.18.46 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89697",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:07.202992Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:48.967Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsproc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3eec9d791968c177a4a8cda9af5c04f79dae09cb",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "9229d824b938f4fb0ea7a5dddade51735e6fe6f9",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "2150305134889fb2fc25228d35353bd2f6f29500",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "d823bf9285cdf4514873b85ab5a888878dd4e8f4",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "15ca3b64a69caa6194bed8f98a20ed90a11c11dd",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "533964d420d385e11b08dd4c56c66ef5dcccaf08",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "c4a409b86a92815181a8e9395c6bf1696ad19175",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"lessThan": "4e475be769aa9f7a2c1ce55a2b8592cfccacddcc",
"status": "affected",
"version": "cc265089ce1b176dde963c74b53593446ee7f99a",
"versionType": "git"
},
{
"status": "affected",
"version": "1cb57d81cf20fe24b9e2e1daf57bfbdc24b77cd8",
"versionType": "git"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.46",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfsproc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.46",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: add fh_want_write() for early-verified SETATTR in nfsd_proc_setattr()\n\nThe BOTH_TIME_SET branch calls fh_verify() early so setattr_prepare()\ncan inspect the dentry. This causes nfsd_setattr() to skip\nfh_want_write(), so notify_change() runs without a mount write\nreference.\n\nAdd the missing fh_want_write() call after the early fh_verify()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd_proc_setattr(), the in-kernel NFSv2 SETATTR handler. A remote client reaches it by sending an NFSv2 SETATTR RPC over TCP/UDP port 2049 with both atime and mtime set, so no local access to the server is required.\nAC:L - Crafting SETATTR with ATTR_ATIME_SET|ATTR_MTIME_SET and equal timestamps deterministically takes the early fh_verify() path so nfsd_setattr() skips fh_want_write(). The attacker fully controls the RPC; no race or uninfluenced memory layout is required.\nPR:N - Default nfsd exports accept AUTH_SYS and AUTH_NULL with no cryptographic authentication, so the client asserts uid/gid. Any host permitted by the export list can issue SETATTR; this matches prior nfsd CNA scoring as PR:N.\nUI:N - The attacking NFS client issues the SETATTR RPC itself. No administrator or end-user action on the server is required.\nS:U - notify_change() without a mount write reference affects only the exported filesystem in the same kernel security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:N - The defect is a missing mnt_want_write()/sb_start_write() around notify_change() and commit_metadata(). It does not leak kernel memory, pointers, or file contents beyond ordinary authorized NFS access.\nI:H - nfsd_permission\u0027s read-only check does not cover freeze state, so SETATTR including ATTR_SIZE truncate, mode, and ownership updates proceeds on a frozen export and in a remount-ro race, letting a client mutate files and corrupt snapshots when writes should be blocked.\nA:H - Skipping freeze protection lets setattr run during fsfreeze, which can deadlock (inode_lock versus sb_start_write ordering), trigger filesystem withdraw/asserts such as GFS2 adding buffers while frozen, and hang or crash the nfsd thread."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:10.455Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3eec9d791968c177a4a8cda9af5c04f79dae09cb"
},
{
"url": "https://git.kernel.org/stable/c/9229d824b938f4fb0ea7a5dddade51735e6fe6f9"
},
{
"url": "https://git.kernel.org/stable/c/2150305134889fb2fc25228d35353bd2f6f29500"
},
{
"url": "https://git.kernel.org/stable/c/d823bf9285cdf4514873b85ab5a888878dd4e8f4"
},
{
"url": "https://git.kernel.org/stable/c/15ca3b64a69caa6194bed8f98a20ed90a11c11dd"
},
{
"url": "https://git.kernel.org/stable/c/533964d420d385e11b08dd4c56c66ef5dcccaf08"
},
{
"url": "https://git.kernel.org/stable/c/c4a409b86a92815181a8e9395c6bf1696ad19175"
},
{
"url": "https://git.kernel.org/stable/c/4e475be769aa9f7a2c1ce55a2b8592cfccacddcc"
}
],
"title": "nfsd: add fh_want_write() for early-verified SETATTR in nfsd_proc_setattr()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89697",
"datePublished": "2026-09-11T19:46:15.772Z",
"dateReserved": "2026-09-11T19:38:34.750Z",
"dateUpdated": "2026-10-19T08:51:10.455Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98164 (GCVE-0-2026-98164)
Vulnerability from cvelistv5
Published
2026-09-29 12:02
Modified
2026-10-07 06:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: x86/mmu: Check write tracking in all address spaces
kvm_gfn_is_write_tracked() checks only the supplied memslot, but page
tracking is per-address-space and shadow pages are shared across all
address spaces. With SMM, a GFN can therefore be write-tracked in one
address space and appear untracked through the other.
Check the supplied slot first, then the slot for the other address space.
This ensures all callers honor write tracking regardless of the active
address space. In particular, it prevents mmu_try_to_unsync_pages() from
marking an upper-level shadow page unsync and eventually triggering the
BUG in pte_list_remove().
[invert direction of the conditional. - Paolo]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 699023e239658e62da6f42f47d31b54788521ec1 Version: 699023e239658e62da6f42f47d31b54788521ec1 Version: 699023e239658e62da6f42f47d31b54788521ec1 Version: 699023e239658e62da6f42f47d31b54788521ec1 Version: 699023e239658e62da6f42f47d31b54788521ec1 Version: 699023e239658e62da6f42f47d31b54788521ec1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/mmu/page_track.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "09aa68552d2542cc6c23edd1568ac265dc5d886f",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
},
{
"lessThan": "429b6f43b4d8c98988fdca99e02dc156134e3d77",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
},
{
"lessThan": "d8636c8f9f95d0fd1e2f6f1cad0d5757aa6f212a",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
},
{
"lessThan": "c0a9bd5fca0b5f2dea32b0fc31350e71e8648112",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
},
{
"lessThan": "ec8fcaf354c1cbb36755d48e9f5a00c9591349e5",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
},
{
"lessThan": "0f38453cdb2e17566ccb7c0f3dabd5bd21caca26",
"status": "affected",
"version": "699023e239658e62da6f42f47d31b54788521ec1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/mmu/page_track.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: x86/mmu: Check write tracking in all address spaces\n\nkvm_gfn_is_write_tracked() checks only the supplied memslot, but page\ntracking is per-address-space and shadow pages are shared across all\naddress spaces. With SMM, a GFN can therefore be write-tracked in one\naddress space and appear untracked through the other.\n\nCheck the supplied slot first, then the slot for the other address space.\nThis ensures all callers honor write tracking regardless of the active\naddress space. In particular, it prevents mmu_try_to_unsync_pages() from\nmarking an upper-level shadow page unsync and eventually triggering the\nBUG in pte_list_remove().\n\n[invert direction of the conditional. - Paolo]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The fix patches kvm_gfn_is_write_tracked(), called from mmu_try_to_unsync_pages() via make_spte() on a vCPU page fault. Reaching it needs a VM with an SMM address space (KVM_SET_USER_MEMORY_REGION with as_id 1) driven through KVM_RUN on /dev/kvm. No remote protocol carries the input.\nAC:L - The attacker builds every precondition: a gPT shadowed and tracked in the as_id 0 slot, then a write to that gfn while in SMM, which checks only the as_id 1 slot and unsyncs an upper-level SP. A later sync deterministically reaches pte_list_remove; no race or outside state is needed.\nPR:L - Needs only an fd on /dev/kvm (commonly 0666 or kvm group) to create the VM, its SMM memslots and its own SMM code. No init-namespace root or capability is checked on the KVM_CREATE_VM/KVM_SET_USER_MEMORY_REGION/KVM_RUN path.\nUI:N - The attacker\u0027s own process runs the VM and triggers the page fault and the later root sync (kvm_mmu_sync_roots/kvm_sync_page) on its own. No other user does anything.\nS:U - I score the local VMM-process attacker, who controls guest SMM code. A guest-only trigger would need firmware to write chosen bytes into a gPT while in SMM, which kernel code cannot demonstrate. So the impact stays within the host kernel\u0027s authority.\nC:H - Syncing an unsynced upper-level SP runs FNAME(sync_spte) on non-leaf SPTEs. shadowed_translation is uninitialised for those entries (no __GFP_ZERO), so a gfn match makes make_spte() build a huge leaf from spte_to_pfn() of the non-leaf SPTE. That maps KVM\u0027s child page-table page, and nearby host memory, readable into the guest.\nI:N - Non-leaf SPTEs from make_nonleaf_spte() lack shadow_host_writable_mask, so the bogus leaf built in sync_spte has ACC_WRITE stripped. I found no code path where this bug lets the guest write host memory.\nA:H - Otherwise sync_spte calls drop_spte() on the non-leaf SPTE with a mismatched gfn. rmap_remove() then hits KVM_BUG_ON_DATA_CORRUPTION in pte_list_remove(), a BUG_ON with mmu_lock held when CONFIG_BUG_ON_DATA_CORRUPTION=y (the BUG the fix cites), crashing the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-07T06:49:16.773Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/09aa68552d2542cc6c23edd1568ac265dc5d886f"
},
{
"url": "https://git.kernel.org/stable/c/429b6f43b4d8c98988fdca99e02dc156134e3d77"
},
{
"url": "https://git.kernel.org/stable/c/d8636c8f9f95d0fd1e2f6f1cad0d5757aa6f212a"
},
{
"url": "https://git.kernel.org/stable/c/c0a9bd5fca0b5f2dea32b0fc31350e71e8648112"
},
{
"url": "https://git.kernel.org/stable/c/ec8fcaf354c1cbb36755d48e9f5a00c9591349e5"
},
{
"url": "https://git.kernel.org/stable/c/0f38453cdb2e17566ccb7c0f3dabd5bd21caca26"
}
],
"title": "KVM: x86/mmu: Check write tracking in all address spaces",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98164",
"datePublished": "2026-09-29T12:02:12.574Z",
"dateReserved": "2026-09-25T10:25:14.321Z",
"dateUpdated": "2026-10-07T06:49:16.773Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89530 (GCVE-0-2026-89530)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Reject inline replies that overflow the pull-up buffer
An RPC-over-RDMA client can request a reply, such as an NFS READ
payload, without providing a Write list or a Reply chunk to carry
it. When such a reply needs more scatter/gather entries than the
device's Send Queue supports, svc_rdma_pull_up_needed() selects
pull-up and svc_rdma_pull_up_reply_msg() linearizes the whole
reply into sctxt->sc_xprt_buf. That buffer is only sc_max_req_size
bytes, while the reply on this path is bounded only by the client's
request, so svc_rdma_xb_linearize() copies past the end of the
buffer and corrupts adjacent slab memory. The oversized length is
then stored in sc_sges[0].length and posted, so the device also
reads beyond the mapped region.
The SGE-exhaustion branch is the only pull-up path that can exceed
the buffer: the threshold branch pulls up only replies smaller
than RPCRDMA_PULLUP_THRESH, and replies that fit the device's SGE
budget are sent directly without linearization. Make
svc_rdma_pull_up_needed() report -E2BIG when the reply it would
pull up cannot fit sc_max_req_size, and fail the request with
ERR_CHUNK as RFC 8166 Section 4.5.3 directs rather than dropping
the connection.
The helper no longer answers a simple yes/no question: it now
reports pull-up, no pull-up, or -E2BIG for a reply too large to
linearize. Rename svc_rdma_pull_up_needed() to
svc_rdma_check_pull_up() so its name no longer implies a boolean
predicate.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e248aa7be86e8179f20ac0931774ecd746f3f5bf Version: e248aa7be86e8179f20ac0931774ecd746f3f5bf Version: e248aa7be86e8179f20ac0931774ecd746f3f5bf Version: e248aa7be86e8179f20ac0931774ecd746f3f5bf Version: e248aa7be86e8179f20ac0931774ecd746f3f5bf Version: 9b65b18f817d9ada2bf67351f24bdcce6789a0bb Version: d564356e1919d1178568c19af410cfc1a9076663 Version: 4.19.22 ≤ Version: 4.20.9 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89530",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:07.762867Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:41.231Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_sendto.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8068358f445a11296328ffa7c524701596814a17",
"status": "affected",
"version": "e248aa7be86e8179f20ac0931774ecd746f3f5bf",
"versionType": "git"
},
{
"lessThan": "fcd91b9957462d398792201c239dffaeff1cc8b2",
"status": "affected",
"version": "e248aa7be86e8179f20ac0931774ecd746f3f5bf",
"versionType": "git"
},
{
"lessThan": "1949dd1576f7a8aa161b1330c6125df9d53046d5",
"status": "affected",
"version": "e248aa7be86e8179f20ac0931774ecd746f3f5bf",
"versionType": "git"
},
{
"lessThan": "8ec60eb51fae37cd3d334ff26e4a7d6fb21ff7cf",
"status": "affected",
"version": "e248aa7be86e8179f20ac0931774ecd746f3f5bf",
"versionType": "git"
},
{
"lessThan": "0fbe20dfe74b783d255bf389a6ea77aa25dc7860",
"status": "affected",
"version": "e248aa7be86e8179f20ac0931774ecd746f3f5bf",
"versionType": "git"
},
{
"status": "affected",
"version": "9b65b18f817d9ada2bf67351f24bdcce6789a0bb",
"versionType": "git"
},
{
"status": "affected",
"version": "d564356e1919d1178568c19af410cfc1a9076663",
"versionType": "git"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.22",
"versionType": "semver"
},
{
"lessThan": "4.21",
"status": "affected",
"version": "4.20.9",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_sendto.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.20.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Reject inline replies that overflow the pull-up buffer\n\nAn RPC-over-RDMA client can request a reply, such as an NFS READ\npayload, without providing a Write list or a Reply chunk to carry\nit. When such a reply needs more scatter/gather entries than the\ndevice\u0027s Send Queue supports, svc_rdma_pull_up_needed() selects\npull-up and svc_rdma_pull_up_reply_msg() linearizes the whole\nreply into sctxt-\u003esc_xprt_buf. That buffer is only sc_max_req_size\nbytes, while the reply on this path is bounded only by the client\u0027s\nrequest, so svc_rdma_xb_linearize() copies past the end of the\nbuffer and corrupts adjacent slab memory. The oversized length is\nthen stored in sc_sges[0].length and posted, so the device also\nreads beyond the mapped region.\n\nThe SGE-exhaustion branch is the only pull-up path that can exceed\nthe buffer: the threshold branch pulls up only replies smaller\nthan RPCRDMA_PULLUP_THRESH, and replies that fit the device\u0027s SGE\nbudget are sent directly without linearization. Make\nsvc_rdma_pull_up_needed() report -E2BIG when the reply it would\npull up cannot fit sc_max_req_size, and fail the request with\nERR_CHUNK as RFC 8166 Section 4.5.3 directs rather than dropping\nthe connection.\n\nThe helper no longer answers a simple yes/no question: it now\nreports pull-up, no pull-up, or -E2BIG for a reply too large to\nlinearize. Rename svc_rdma_pull_up_needed() to\nsvc_rdma_check_pull_up() so its name no longer implies a boolean\npredicate."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcrdma is nfsd\u0027s RPC-over-RDMA server transport; a remote NFS/RDMA client reaches svc_rdma_sendto over InfiniBand, RoCE, or iWARP, including IP-routable RoCEv2/iWARP and Soft-RoCE, so this is a network attack.\nAC:L - The attacker fully controls omitting the Write list and Reply chunk and the NFS READ size; with the default 4096-byte pull-up buffer and ~5 Send SGEs, a multi-page inline READ deterministically takes the SGE-exhaustion pull-up path and overflows, with no race or uncontrollable layout.\nPR:N - RDMA-CM accept has no credential check, and AUTH_NULL/AUTH_UNIX need no real account; default NFS exports accept those flavors, so a fabric peer can drive a large READ reply without local or init-namespace privileges.\nUI:N - Exploitation requires only attacker-sent RPC-over-RDMA Calls that elicit a large inline reply; no victim mount, click, or other user action is needed beyond nfsd already listening on RDMA.\nS:U - The kmalloc overflow and oversized RDMA Send stay inside the host kernel\u0027s security authority; this is not a VM, IOMMU, or sandbox escape.\nC:H - svc_rdma_xb_linearize() copies past kmalloc sc_xprt_buf, then the inflated sc_sges[0].length is posted with the PD local DMA lkey, so the device reads adjacent kernel memory onto the wire; the heap smash is also leveragable for disclosure.\nI:H - The unbounded memcpy is a heap out-of-bounds write of attacker-influenced NFS READ payload into adjacent slab objects, enabling corruption of neighboring kernel state and control-flow hijacking.\nA:H - Overflowing a 4KB send buffer by up to the NFS/RDMA max payload smashes adjacent slab and can oops or panic, and posting an SGE longer than the DMA mapping can also fault the device or kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:42.592Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8068358f445a11296328ffa7c524701596814a17"
},
{
"url": "https://git.kernel.org/stable/c/fcd91b9957462d398792201c239dffaeff1cc8b2"
},
{
"url": "https://git.kernel.org/stable/c/1949dd1576f7a8aa161b1330c6125df9d53046d5"
},
{
"url": "https://git.kernel.org/stable/c/8ec60eb51fae37cd3d334ff26e4a7d6fb21ff7cf"
},
{
"url": "https://git.kernel.org/stable/c/0fbe20dfe74b783d255bf389a6ea77aa25dc7860"
}
],
"title": "svcrdma: Reject inline replies that overflow the pull-up buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89530",
"datePublished": "2026-09-11T19:44:10.024Z",
"dateReserved": "2026-09-11T19:38:34.719Z",
"dateUpdated": "2026-10-21T12:47:42.592Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72128 (GCVE-0-2026-72128)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-17 05:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet: fix refcount leak in nvmet_sq_create()
In nvmet_sq_create(), a reference on the ctrl is taken
via kref_get_unless_zero() before calling nvmet_check_sqid().
If nvmet_check_sqid() fails, the function returns the error
directly without releasing the reference, leading to a leak.
Fix this by jumping to the "ctrl_put" label, which already
performs the necessary nvmet_ctrl_put(ctrl). This ensures the
reference is properly released on this error path.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "26355295ce21cb046546085c3a81abe68160a784",
"status": "affected",
"version": "1eb380caf5275bba1d3d6182dde1fd740f331743",
"versionType": "git"
},
{
"lessThan": "fcef60ed5f714a24104eb021d6397a67955ebeff",
"status": "affected",
"version": "1eb380caf5275bba1d3d6182dde1fd740f331743",
"versionType": "git"
},
{
"lessThan": "34b9a83c50660148bde01cde16451dbe78369749",
"status": "affected",
"version": "1eb380caf5275bba1d3d6182dde1fd740f331743",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.14"
},
{
"lessThan": "6.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: fix refcount leak in nvmet_sq_create()\n\nIn nvmet_sq_create(), a reference on the ctrl is taken\nvia kref_get_unless_zero() before calling nvmet_check_sqid().\nIf nvmet_check_sqid() fails, the function returns the error\ndirectly without releasing the reference, leading to a leak.\n\nFix this by jumping to the \"ctrl_put\" label, which already\nperforms the necessary nvmet_ctrl_put(ctrl). This ensures the\nreference is properly released on this error path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:08:44.496Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/26355295ce21cb046546085c3a81abe68160a784"
},
{
"url": "https://git.kernel.org/stable/c/fcef60ed5f714a24104eb021d6397a67955ebeff"
},
{
"url": "https://git.kernel.org/stable/c/34b9a83c50660148bde01cde16451dbe78369749"
}
],
"title": "nvmet: fix refcount leak in nvmet_sq_create()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72128",
"datePublished": "2026-08-15T05:53:05.141Z",
"dateReserved": "2026-08-09T03:40:39.907Z",
"dateUpdated": "2026-08-17T05:08:44.496Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74493 (GCVE-0-2026-74493)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix socket use-after-free during link group termination
__smc_lgr_terminate() drops conns_lock after finding a connection in
lgr->conns_all, but before taking a reference on its socket. The connection
is embedded in the socket, and its registration reference protects it only
while the connection remains in the tree.
A concurrent close can unregister the connection and drop that reference,
freeing the socket before the termination worker reaches sock_hold().
The race is reachable when close overlaps link group termination.
Local stress testing reproduced the use-after-free and KASAN reported:
BUG: KASAN: slab-use-after-free in __smc_lgr_terminate.part.0 [smc]
Write of size 4 by task kworker/3:3
Workqueue: events smc_lgr_terminate_work [smc]
__smc_lgr_terminate.part.0 [smc]
The socket was allocated by smc_create(), freed through
slab_free_after_rcu_debug(), and was followed by:
refcount_t: addition on 0; use-after-free.
__smc_lgr_terminate.part.0 [smc]
Take the socket reference while conns_lock still protects the tree entry.
The unregister path then cannot drop the last reference until termination
has finished using the socket.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 Version: 69318b5215f2dc32c345a3d65b98b4b1bf29c007 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74493",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:58:11.763137Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:50.062Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ff44f2df57fb5560bdc75eb977867643e764a262",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "9fb17c95b8f0683570fca1fb2792264147af937a",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "bea8dc14de2d56aca749d368563e6888217710a5",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "5a42f162b857019a4c10ff687dc3bcdf51831865",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "281c103a8eaed59001ce952f231df1b07674215a",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "f807a63d0d95680c34f677700da9148a07d7c78f",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "f0541a775d04c88e90ba448e35ce0d743512822a",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
},
{
"lessThan": "f621d6ebeebb6374342571e4ddf45fdbc420f6cd",
"status": "affected",
"version": "69318b5215f2dc32c345a3d65b98b4b1bf29c007",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"lessThan": "5.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix socket use-after-free during link group termination\n\n__smc_lgr_terminate() drops conns_lock after finding a connection in\nlgr-\u003econns_all, but before taking a reference on its socket. The connection\nis embedded in the socket, and its registration reference protects it only\nwhile the connection remains in the tree.\n\nA concurrent close can unregister the connection and drop that reference,\nfreeing the socket before the termination worker reaches sock_hold().\n\nThe race is reachable when close overlaps link group termination.\nLocal stress testing reproduced the use-after-free and KASAN reported:\n\n BUG: KASAN: slab-use-after-free in __smc_lgr_terminate.part.0 [smc]\n Write of size 4 by task kworker/3:3\n Workqueue: events smc_lgr_terminate_work [smc]\n __smc_lgr_terminate.part.0 [smc]\n\nThe socket was allocated by smc_create(), freed through\nslab_free_after_rcu_debug(), and was followed by:\n\n refcount_t: addition on 0; use-after-free.\n __smc_lgr_terminate.part.0 [smc]\n\nTake the socket reference while conns_lock still protects the tree entry.\nThe unregister path then cannot drop the last reference until termination\nhas finished using the socket."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is hit in __smc_lgr_terminate() when a link group shuts down; that path is driven by SMC LLC control messages from a remote peer over RoCE/RDMA (smc_llc_rx_handler), including DELETE_LINK_ALL and protocol-violation termination, not only local syscalls.\nAC:L - An SMC peer can overlap link-group termination with connection teardown by sending DELETE_LINK_ALL (or a terminating LLC event) while aborting/closing the same session; the fix report shows reliable stress reproduction, and the attacker controls both sides of the terminate/close race.\nPR:N - Exploitation needs only completing an SMC handshake as a network peer to the victim; no local account, capabilities, or namespace admin rights on the victim host are required beyond normal remote connectivity to the SMC service.\nUI:N - No victim user action is needed; a remote peer can trigger termination and concurrent connection teardown purely through kernel protocol handling, without the user mounting filesystems, opening files, or performing other interactive steps.\nS:U - The impact stays within the host kernel boundary (memory corruption and potential local privilege escalation) and does not cross VM, container, or IOMMU security authorities into another trust domain.\nC:H - KASAN reported slab-use-after-free in __smc_lgr_terminate with refcount_t addition on 0 during sock_hold() on a freed smc_sock; UAF on kernel heap objects can be turned into arbitrary kernel memory disclosure via heap grooming.\nI:H - The UAF is a write of size 4 to freed socket memory during sock_hold(), giving a kernel heap corruption primitive that can be developed into arbitrary write or control-flow hijack for kernel code execution.\nA:H - The reported UAF occurs in the smc_lgr_terminate workqueue and can crash the kernel (oops/panic); repeated remote triggering against SMC/RoCE services can also cause sustained denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:50.842Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ff44f2df57fb5560bdc75eb977867643e764a262"
},
{
"url": "https://git.kernel.org/stable/c/9fb17c95b8f0683570fca1fb2792264147af937a"
},
{
"url": "https://git.kernel.org/stable/c/bea8dc14de2d56aca749d368563e6888217710a5"
},
{
"url": "https://git.kernel.org/stable/c/5a42f162b857019a4c10ff687dc3bcdf51831865"
},
{
"url": "https://git.kernel.org/stable/c/281c103a8eaed59001ce952f231df1b07674215a"
},
{
"url": "https://git.kernel.org/stable/c/f807a63d0d95680c34f677700da9148a07d7c78f"
},
{
"url": "https://git.kernel.org/stable/c/f0541a775d04c88e90ba448e35ce0d743512822a"
},
{
"url": "https://git.kernel.org/stable/c/f621d6ebeebb6374342571e4ddf45fdbc420f6cd"
}
],
"title": "net/smc: fix socket use-after-free during link group termination",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74493",
"datePublished": "2026-08-15T12:27:21.980Z",
"dateReserved": "2026-08-15T05:44:03.906Z",
"dateUpdated": "2026-10-16T19:05:50.062Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89538 (GCVE-0-2026-89538)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field
gss_krb5_unwrap_v2() sets buf->len to a logical
length, which can be much smaller than head[0].iov_len
(the allocated receive-page capacity). It then calls
xdr_buf_trim() with a trim length derived from the 16-bit
"extra count" (ec) field in the Kerberos v2 token header.
The ec field is authenticated by the post-decrypt memcmp()
against the encrypted header copy, so a randomly-mutated
value is rejected. However, any peer holding a valid GSS
context can legitimately encrypt a token whose ec exceeds
the plaintext length. Per RFC 4121, such a token is
structurally malformed.
Although xdr_buf_trim() now clamps the buf->len subtraction
to avoid unsigned underflow, the buffer is still left in a
semantically invalid state (zero length, inconsistent iov
lengths) when ec is oversized.
Reject these tokens before calling xdr_buf_trim(), giving
callers a well-defined GSS_S_DEFECTIVE_TOKEN error and
keeping the xdr_buf internally consistent. The wrapped blob
begins at a nonzero offset -- both callers pass len as
offset + opaque_len -- so buf->len still counts the offset
bytes that precede the blob. Compare the trim length
against the remaining wrapped segment, buf->len - offset,
rather than the whole buffer; comparing against buf->len
alone leaves an offset-wide window in which an oversized ec
passes the test and xdr_buf_trim() cuts into the bytes ahead
of the blob.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 Version: cf4c024b908353fcc48309374d39e3399d67dfd1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89538",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:19.852732Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:41.901Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_krb5_wrap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ac9efc29346b6942e71f0e24a3178a9121330fab",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "b5746095b59f4d11f39f08751d36bbdfd1e5deac",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "9fc6d6e6db49ab55208d5dd1c424c1d0d9aa7296",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "4abb44a29bb515df6f49123848765c70fc9b5021",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "dfcd81ab45613d45996fbf483d4ef54b0ec90ab9",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "1f9856af065b6158271687e9788407b9573fd16f",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "880effc943ed82d6811f272ed3307c222b40f4d6",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
},
{
"lessThan": "ad484748eec0a66eac0f13ab53b3fbedb7333c91",
"status": "affected",
"version": "cf4c024b908353fcc48309374d39e3399d67dfd1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_krb5_wrap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.13"
},
{
"lessThan": "3.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: Reject krb5 v2 wrap tokens with oversized ec field\n\ngss_krb5_unwrap_v2() sets buf-\u003elen to a logical\nlength, which can be much smaller than head[0].iov_len\n(the allocated receive-page capacity). It then calls\nxdr_buf_trim() with a trim length derived from the 16-bit\n\"extra count\" (ec) field in the Kerberos v2 token header.\n\nThe ec field is authenticated by the post-decrypt memcmp()\nagainst the encrypted header copy, so a randomly-mutated\nvalue is rejected. However, any peer holding a valid GSS\ncontext can legitimately encrypt a token whose ec exceeds\nthe plaintext length. Per RFC 4121, such a token is\nstructurally malformed.\n\nAlthough xdr_buf_trim() now clamps the buf-\u003elen subtraction\nto avoid unsigned underflow, the buffer is still left in a\nsemantically invalid state (zero length, inconsistent iov\nlengths) when ec is oversized.\n\nReject these tokens before calling xdr_buf_trim(), giving\ncallers a well-defined GSS_S_DEFECTIVE_TOKEN error and\nkeeping the xdr_buf internally consistent. The wrapped blob\nbegins at a nonzero offset -- both callers pass len as\noffset + opaque_len -- so buf-\u003elen still counts the offset\nbytes that precede the blob. Compare the trim length\nagainst the remaining wrapped segment, buf-\u003elen - offset,\nrather than the whole buffer; comparing against buf-\u003elen\nalone leaves an offset-wide window in which an oversized ec\npasses the test and xdr_buf_trim() cuts into the bytes ahead\nof the blob."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - gss_krb5_unwrap_v2() is reached from nfsd RPCSEC_GSS privacy unwrap on TCP/2049 and from the NFS client\u0027s gss_unwrap_resp_priv() on every krb5p reply, so a remote NFS peer delivers the oversized-ec wrap token over the network.\nAC:L - A peer holding the GSS session keys can encrypt a RFC 4121 wrap token whose authenticated ec exceeds the plaintext; decrypt and the header memcmp succeed, then xdr_buf_trim() runs with that chosen length and no race or layout outside attacker control.\nPR:N - A malicious or compromised NFS server that already shares a krb5p GSS context needs no account or capability on the victim client; ordinary krb5p replies and NFSv4.0 GSS callbacks are processed without local privileges on that host.\nUI:N - Once a krb5p NFS mount exists, the client unwraps every privacy-protected reply and NFSv4.0 GSS callback with no further mount, click, or open; idle revalidations and server-driven callbacks are sufficient.\nS:U - The corrupted xdr_buf and subsequent XDR decode and shift run in the host kernel that processed the RPC and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - An oversized ec makes xdr_buf_trim() underflow buf-\u003elen toward UINT_MAX, so later xdr_read_pages/xdr_shrink_bufhead use that length as a copy bound and read far past the receive buffer into adjacent kernel memory.\nI:H - xdr_shrink_bufhead() then calls xdr_buf_head_shift_right() with a near-UINT_MAX length derived from the wrapped buf-\u003elen, an out-of-bounds write into kernel memory that can be used for control-flow hijacking.\nA:H - Those unbounded XDR copies and the inconsistent xdr_buf (wrapped or zero length versus iov_lens) oops or panic nfsd or the NFS client, and the peer can repeat the request at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:29.976Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ac9efc29346b6942e71f0e24a3178a9121330fab"
},
{
"url": "https://git.kernel.org/stable/c/b5746095b59f4d11f39f08751d36bbdfd1e5deac"
},
{
"url": "https://git.kernel.org/stable/c/9fc6d6e6db49ab55208d5dd1c424c1d0d9aa7296"
},
{
"url": "https://git.kernel.org/stable/c/4abb44a29bb515df6f49123848765c70fc9b5021"
},
{
"url": "https://git.kernel.org/stable/c/dfcd81ab45613d45996fbf483d4ef54b0ec90ab9"
},
{
"url": "https://git.kernel.org/stable/c/1f9856af065b6158271687e9788407b9573fd16f"
},
{
"url": "https://git.kernel.org/stable/c/880effc943ed82d6811f272ed3307c222b40f4d6"
},
{
"url": "https://git.kernel.org/stable/c/ad484748eec0a66eac0f13ab53b3fbedb7333c91"
}
],
"title": "SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89538",
"datePublished": "2026-09-11T19:44:15.953Z",
"dateReserved": "2026-09-11T19:38:34.721Z",
"dateUpdated": "2026-10-19T08:48:29.976Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74602 (GCVE-0-2026-74602)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-08-23 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Initialise reader page order in rb_allocate_cpu_buffer()
In rb_allocate_cpu_buffer(), bpage->order was omitted, leaving it as 0.
This is an issue for a ring-buffer with subbufs bigger than PAGE_SIZE if
when freed: free_buffer_page() relies on this value. Align the value
with the actual allocation size (buffer::subbuf_order).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7c620d89bae1a926ab7d626600285d3516c9f3c4",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "2e37f2bf111429fbfa4d985b12df3ba496ca70aa",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "3b3e0a6ee5bb3ac000f135beef26b2b7ed1a771a",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
},
{
"lessThan": "6d014e44b68ddd43f71288d2a4dbb1a259869149",
"status": "affected",
"version": "f9b94daa542a8d2532f0930f01cd9aec2d19621b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Initialise reader page order in rb_allocate_cpu_buffer()\n\nIn rb_allocate_cpu_buffer(), bpage-\u003eorder was omitted, leaving it as 0.\nThis is an issue for a ring-buffer with subbufs bigger than PAGE_SIZE if\nwhen freed: free_buffer_page() relies on this value. Align the value\nwith the actual allocation size (buffer::subbuf_order)."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:43.108Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7c620d89bae1a926ab7d626600285d3516c9f3c4"
},
{
"url": "https://git.kernel.org/stable/c/2e37f2bf111429fbfa4d985b12df3ba496ca70aa"
},
{
"url": "https://git.kernel.org/stable/c/3b3e0a6ee5bb3ac000f135beef26b2b7ed1a771a"
},
{
"url": "https://git.kernel.org/stable/c/6d014e44b68ddd43f71288d2a4dbb1a259869149"
}
],
"title": "ring-buffer: Initialise reader page order in rb_allocate_cpu_buffer()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74602",
"datePublished": "2026-08-22T15:31:50.811Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-08-23T12:47:43.108Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74513 (GCVE-0-2026-74513)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dibs: fix use-after-free of dmb_node in loopback attach/detach/unregister
dibs_lo_attach_dmb(), dibs_lo_detach_dmb() and dibs_lo_unregister_dmb()
look up the dmb_node under dmb_ht_lock, drop the lock and only then
operate on the node's refcount. Nothing keeps the node alive across
that window: __dibs_lo_unregister_dmb() removes the node from the hash
table under the write lock and immediately frees it.
A concurrent final put can therefore free the node between the lookup
and the refcount operation:
CPU0 (attach) CPU1 (owner unregisters)
read_lock_bh(&dmb_ht_lock)
find dmb_node (refcnt == 1)
read_unlock_bh(&dmb_ht_lock)
refcount_dec_and_test() 1 -> 0
write_lock_bh(&dmb_ht_lock)
hash_del(&dmb_node->list)
write_unlock_bh(&dmb_ht_lock)
kfree(dmb_node)
refcount_inc_not_zero(&dmb_node->refcnt) <-- use-after-free
The same window exists for the refcount_dec_and_test() calls in the
detach and unregister paths.
Close the race structurally by making hash table membership and the
refcount transitions atomic with respect to each other:
- Perform the final refcount_dec_and_test() and hash_del() in a single
dmb_ht_lock write-side critical section, in both the unregister and
the detach path. Freeing the node still happens after the lock is
dropped, which is safe because a node whose refcount reached zero has
left the hash table and can no longer be found.
- This establishes the invariant that any node found in the hash table
holds at least one reference, and that the final reference can only
be dropped under the write lock. dibs_lo_attach_dmb() can thus take
its reference with a plain refcount_inc() while still holding the
read lock; refcount_inc_not_zero() is no longer needed.
__dibs_lo_unregister_dmb() no longer touches the hash table and is
renamed to dibs_lo_free_dmb() accordingly.
Note: commit cc21191b584c ("dibs: Move data path to dibs layer") moved
the code to its current location; the race was introduced earlier by
commit c3a910f2380f ("net/smc: implement DMB-merged operations of
loopback-ism").
Tested SMC-D via ISM and dibs loopback.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dibs/dibs_loopback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "90b2166605a7476007f7c013521d30b0be557cac",
"status": "affected",
"version": "c3a910f2380fe294d14e42af66af3d3eed8fecbf",
"versionType": "git"
},
{
"lessThan": "c0837aeace96152d14b17fdd19d70102b6631a7d",
"status": "affected",
"version": "c3a910f2380fe294d14e42af66af3d3eed8fecbf",
"versionType": "git"
},
{
"lessThan": "48c073f88c93707089a4214f21cb4c3de5aea6e4",
"status": "affected",
"version": "c3a910f2380fe294d14e42af66af3d3eed8fecbf",
"versionType": "git"
},
{
"lessThan": "a10ea943356b9d70c5616a0a06f6fa97cfdaccb1",
"status": "affected",
"version": "c3a910f2380fe294d14e42af66af3d3eed8fecbf",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dibs/dibs_loopback.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndibs: fix use-after-free of dmb_node in loopback attach/detach/unregister\n\ndibs_lo_attach_dmb(), dibs_lo_detach_dmb() and dibs_lo_unregister_dmb()\nlook up the dmb_node under dmb_ht_lock, drop the lock and only then\noperate on the node\u0027s refcount. Nothing keeps the node alive across\nthat window: __dibs_lo_unregister_dmb() removes the node from the hash\ntable under the write lock and immediately frees it.\n\nA concurrent final put can therefore free the node between the lookup\nand the refcount operation:\n\nCPU0 (attach) CPU1 (owner unregisters)\n\nread_lock_bh(\u0026dmb_ht_lock)\nfind dmb_node (refcnt == 1)\nread_unlock_bh(\u0026dmb_ht_lock)\n refcount_dec_and_test() 1 -\u003e 0\n write_lock_bh(\u0026dmb_ht_lock)\n hash_del(\u0026dmb_node-\u003elist)\n write_unlock_bh(\u0026dmb_ht_lock)\n kfree(dmb_node)\nrefcount_inc_not_zero(\u0026dmb_node-\u003erefcnt) \u003c-- use-after-free\n\nThe same window exists for the refcount_dec_and_test() calls in the\ndetach and unregister paths.\n\nClose the race structurally by making hash table membership and the\nrefcount transitions atomic with respect to each other:\n\n- Perform the final refcount_dec_and_test() and hash_del() in a single\n dmb_ht_lock write-side critical section, in both the unregister and\n the detach path. Freeing the node still happens after the lock is\n dropped, which is safe because a node whose refcount reached zero has\n left the hash table and can no longer be found.\n\n- This establishes the invariant that any node found in the hash table\n holds at least one reference, and that the final reference can only\n be dropped under the write lock. dibs_lo_attach_dmb() can thus take\n its reference with a plain refcount_inc() while still holding the\n read lock; refcount_inc_not_zero() is no longer needed.\n\n__dibs_lo_unregister_dmb() no longer touches the hash table and is\nrenamed to dibs_lo_free_dmb() accordingly.\n\nNote: commit cc21191b584c (\"dibs: Move data path to dibs layer\") moved\nthe code to its current location; the race was introduced earlier by\ncommit c3a910f2380f (\"net/smc: implement DMB-merged operations of\nloopback-ism\").\n\nTested SMC-D via ISM and dibs loopback."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is only in the DIBS loopback driver used for same-host SMC-D DMB merge; reachable via AF_SMC connect/accept/close syscalls, not from remote packet handling, and loopback-ism cannot be used across machines.\nAC:L - This is a refcount/hash-table race where an attacker can open multiple SMC loopback connections and concurrently trigger attach, detach, and unregister to control both sides of the window without external timing dependencies.\nPR:L - No capability checks gate AF_SMC socket create/connect/close; any unprivileged local user (including in a user/network namespace with SMC/DIBS loopback enabled) can drive the vulnerable dibs_lo_attach/detach/unregister paths.\nUI:N - Exploitation requires only attacker-controlled SMC socket operations; no victim interaction such as opening files, mounting filesystems, or approving prompts is needed beyond normal daemon availability.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same kernel security boundary; this is not a VM escape, IOMMU bypass, or cross-authority sandbox breakout.\nC:H - Use-after-free on dibs_lo_dmb_node allows operating on freed slab memory; attach then returns cpu_addr/len from the freed node, enabling arbitrary kernel memory disclosure via heap reuse.\nI:H - The UAF permits corrupting refcount and adjacent heap metadata and returning a dangling buffer pointer used as a merged SMC send buffer, enabling arbitrary kernel writes and potential code execution.\nA:H - Concurrent refcount operations on a freed dmb_node can cause kernel oops/panic from invalid refcount access or use of freed folio-backed memory during SMC-D buffer attach/detach teardown."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:43.905Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/90b2166605a7476007f7c013521d30b0be557cac"
},
{
"url": "https://git.kernel.org/stable/c/c0837aeace96152d14b17fdd19d70102b6631a7d"
},
{
"url": "https://git.kernel.org/stable/c/48c073f88c93707089a4214f21cb4c3de5aea6e4"
},
{
"url": "https://git.kernel.org/stable/c/a10ea943356b9d70c5616a0a06f6fa97cfdaccb1"
}
],
"title": "dibs: fix use-after-free of dmb_node in loopback attach/detach/unregister",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74513",
"datePublished": "2026-08-15T12:27:34.329Z",
"dateReserved": "2026-08-15T05:44:03.909Z",
"dateUpdated": "2026-10-21T12:45:43.905Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74268 (GCVE-0-2026-74268)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tcp: clear sock_ops cb flags before force-closing a child socket
A child socket inherits the listener's bpf_sock_ops_cb_flags via
sk_clone_lock(). If its setup fails in tcp_v4_syn_recv_sock() /
tcp_v6_syn_recv_sock(), the child is freed through put_and_exit, where
inet_csk_prepare_forced_close() drops the socket lock and tcp_done() runs
without it.
If BPF_SOCK_OPS_STATE_CB_FLAG was inherited, tcp_done() -> tcp_set_state()
calls tcp_call_bpf(), which expects the lock and trips sock_owned_by_me():
WARNING: include/net/sock.h:1799 at tcp_set_state+0x433/0x550
RIP: 0010:tcp_set_state+0x433/0x550 include/net/sock.h:1799
Call Trace:
<IRQ>
tcp_done+0xba/0x250 net/ipv4/tcp.c:5095
tcp_v4_syn_recv_sock+0x850/0xa50 net/ipv4/tcp_ipv4.c:1787
tcp_check_req+0xf30/0x1360 net/ipv4/tcp_minisocks.c:926
tcp_v4_rcv+0x1047/0x1b50 net/ipv4/tcp_ipv4.c:2164
</IRQ>
The child is freed before it is ever established, so it should run no
sock_ops callback. Clear its cb flags in inet_csk_prepare_for_destroy_sock(),
the common point for the IPv4, IPv6 and chtls forced-close paths and for the
MPTCP ->syn_recv_sock() failure path (dispose_child), which reaches tcp_done()
on a child that was never established too.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 Version: d44874910a26f3a8f81edf873a2473363f07f660 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74268",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:48.226503Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:28.993Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/tcp.h",
"net/ipv4/inet_connection_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5d5389b2c37ca00da61d1407618ebe15abae0c8b",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "9f30ba9aa0270a18fdd1e6cd426c480c35f7de9d",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "71e9c53220abd7f5a45aa4d5e5b420d3479f3a4f",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "9fffa6465851a1910a6e9cb7272787dd615b26b1",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "fe23d56e9266d58ba5c380f1970118eedeee0b68",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "ce311bd2e36596f0aa2c92ca86fb3e019ac57eae",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "8874dafc9099bc49c2e5ebba030f85d276421f92",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
},
{
"lessThan": "990348e5bb457697c2f1f7f7b65154a3334d9d2b",
"status": "affected",
"version": "d44874910a26f3a8f81edf873a2473363f07f660",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/tcp.h",
"net/ipv4/inet_connection_sock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.16"
},
{
"lessThan": "4.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntcp: clear sock_ops cb flags before force-closing a child socket\n\nA child socket inherits the listener\u0027s bpf_sock_ops_cb_flags via\nsk_clone_lock(). If its setup fails in tcp_v4_syn_recv_sock() /\ntcp_v6_syn_recv_sock(), the child is freed through put_and_exit, where\ninet_csk_prepare_forced_close() drops the socket lock and tcp_done() runs\nwithout it.\n\nIf BPF_SOCK_OPS_STATE_CB_FLAG was inherited, tcp_done() -\u003e tcp_set_state()\ncalls tcp_call_bpf(), which expects the lock and trips sock_owned_by_me():\n\n WARNING: include/net/sock.h:1799 at tcp_set_state+0x433/0x550\n RIP: 0010:tcp_set_state+0x433/0x550 include/net/sock.h:1799\n Call Trace:\n \u003cIRQ\u003e\n tcp_done+0xba/0x250 net/ipv4/tcp.c:5095\n tcp_v4_syn_recv_sock+0x850/0xa50 net/ipv4/tcp_ipv4.c:1787\n tcp_check_req+0xf30/0x1360 net/ipv4/tcp_minisocks.c:926\n tcp_v4_rcv+0x1047/0x1b50 net/ipv4/tcp_ipv4.c:2164\n \u003c/IRQ\u003e\n\nThe child is freed before it is ever established, so it should run no\nsock_ops callback. Clear its cb flags in inet_csk_prepare_for_destroy_sock(),\nthe common point for the IPv4, IPv6 and chtls forced-close paths and for the\nMPTCP -\u003esyn_recv_sock() failure path (dispose_child), which reaches tcp_done()\non a child that was never established too."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote attackers reach inet_csk_prepare_for_forced_close() via the standard TCP input path (tcp_v4_rcv/tcp_v6_rcv \u2192 tcp_check_req \u2192 tcp_v4/v6_syn_recv_sock put_and_exit) while processing attacker-sent handshake packets in softirq, with no local access required.\nAC:L - Attackers control handshake completion and can repeatedly force child setup failures\u2014e.g., MPTCP JOIN/sport-mismatch dispose_child paths, ENOMEM under connection pressure in __inet_inherit_port or MD5/AO copy, or chtls setup failure\u2014making put_and_exit reachable without conditions outside their influence.\nPR:N - The receive path is pre-authentication TCP/MPTCP processing; no victim credentials or capabilities are required. Exploitation only needs network reachability to a listener whose admin already attached cgroup BPF sock_ops setting BPF_SOCK_OPS_STATE_CB_FLAG (common on Kubernetes/Cilium/cloud nodes).\nUI:N - No victim interaction is needed beyond normal exposure of a TCP listener; the attacker triggers the bug entirely by sending network packets that complete then fail child socket creation.\nS:U - Vulnerability impact stays within the kernel on the host receiving the traffic; it does not cross VM, container runtime, or IOMMU security boundaries and represents standard in-kernel memory/lock safety impact.\nC:H - Inherited BPF_SOCK_OPS_STATE_CB_FLAG causes tcp_call_bpf() to run on an unlocked, partially torn-down child socket; BPF helpers can read tcp_sock fields without proper locking, enabling unsynchronized kernel memory reads that could disclose sensitive data.\nI:H - tcp_call_bpf() marks is_locked_tcp_sock while the socket lock was dropped, allowing cgroup BPF sock_ops programs to call bpf_setsockopt and modify tcp_sock/kernel state during forced close, creating plausible memory corruption and control-flow compromise primitives.\nA:H - sock_owned_by_me() WARN fires on this path and concurrent BPF access during tcp_done()/inet_csk_destroy_sock() can cause kernel oops or panic; remote attackers can repeatedly trigger the softirq failure path for denial of service on internet-facing BPF-enabled servers."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T11:58:42.864Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5d5389b2c37ca00da61d1407618ebe15abae0c8b"
},
{
"url": "https://git.kernel.org/stable/c/9f30ba9aa0270a18fdd1e6cd426c480c35f7de9d"
},
{
"url": "https://git.kernel.org/stable/c/71e9c53220abd7f5a45aa4d5e5b420d3479f3a4f"
},
{
"url": "https://git.kernel.org/stable/c/9fffa6465851a1910a6e9cb7272787dd615b26b1"
},
{
"url": "https://git.kernel.org/stable/c/fe23d56e9266d58ba5c380f1970118eedeee0b68"
},
{
"url": "https://git.kernel.org/stable/c/ce311bd2e36596f0aa2c92ca86fb3e019ac57eae"
},
{
"url": "https://git.kernel.org/stable/c/8874dafc9099bc49c2e5ebba030f85d276421f92"
},
{
"url": "https://git.kernel.org/stable/c/990348e5bb457697c2f1f7f7b65154a3334d9d2b"
}
],
"title": "tcp: clear sock_ops cb flags before force-closing a child socket",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74268",
"datePublished": "2026-08-15T05:57:42.920Z",
"dateReserved": "2026-08-15T05:44:03.878Z",
"dateUpdated": "2026-10-16T18:55:28.993Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63987 (GCVE-0-2026-63987)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-10-19 20:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ethtool: coalesce: cap profile updates at NET_DIM_PARAMS_NUM_PROFILES
ethnl_update_profile() walks the ETHTOOL_A_PROFILE_IRQ_MODERATION
nest list with an index 'i' and writes new_profile[i++] without
bounding i. The destination is kmemdup()'d at NET_DIM_PARAMS_NUM_PROFILES
entries (5), but the Netlink nest count is entirely user-controlled.
Netlink policies do not have support for constraining the number
of nested entries (or number of multi-attr entries).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63987",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:34:43.913131Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:18:01.044Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ethtool/coalesce.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d4c9cc7c47781c6f4fa29d80a1193a8bcd1525bc",
"status": "affected",
"version": "f750dfe825b904164688adeb147950e0e0c4d262",
"versionType": "git"
},
{
"lessThan": "0c02c190bcd9822477038ff2cee10ea584ac1b1d",
"status": "affected",
"version": "f750dfe825b904164688adeb147950e0e0c4d262",
"versionType": "git"
},
{
"lessThan": "6205f7166d2dd14a017a5802c81e5bd1421a8635",
"status": "affected",
"version": "f750dfe825b904164688adeb147950e0e0c4d262",
"versionType": "git"
},
{
"lessThan": "7281b096b072f6c6e30420e3467d738f2e4c4b57",
"status": "affected",
"version": "f750dfe825b904164688adeb147950e0e0c4d262",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ethtool/coalesce.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nethtool: coalesce: cap profile updates at NET_DIM_PARAMS_NUM_PROFILES\n\nethnl_update_profile() walks the ETHTOOL_A_PROFILE_IRQ_MODERATION\nnest list with an index \u0027i\u0027 and writes new_profile[i++] without\nbounding i. The destination is kmemdup()\u0027d at NET_DIM_PARAMS_NUM_PROFILES\nentries (5), but the Netlink nest count is entirely user-controlled.\nNetlink policies do not have support for constraining the number\nof nested entries (or number of multi-attr entries)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through the ETHTOOL_MSG_COALESCE_SET generic-netlink ioctl path (ethnl_default_set_doit \u2192 ethnl_set_coalesce \u2192 ethnl_update_profile), not via remote network packets or physical bus access.\nAC:L - An attacker with CAP_NET_ADMIN can send a crafted netlink message with more than five nested ETHTOOL_A_PROFILE_IRQ_MODERATION attributes and deterministically trigger a heap buffer overflow past the five-entry kmemdup buffer.\nPR:L - ETHTOOL_MSG_COALESCE_SET is gated by GENL_UNS_ADMIN_PERM, which requires CAP_NET_ADMIN in the socket\u0027s network namespace user namespace; this capability is obtainable by an unprivileged user via user namespaces (unshare -Urn) or containers granted NET_ADMIN (e.g., hostNetwork pods).\nUI:N - Exploitation requires only the attacker\u0027s own ethtool netlink SET_COALESCE request with a malformed profile nest; no action by another user or victim is needed.\nS:U - The vulnerability corrupts kernel heap memory within the same kernel security domain; it does not by itself cross a VM, container, or IOMMU boundary to affect a separate security authority.\nC:H - The out-of-bounds writes past the 120-byte (5 \u00d7 24-byte dim_cq_moder) kmalloc allocation can corrupt adjacent slab objects, providing a standard heap-corruption primitive that can be leveraged for arbitrary kernel memory disclosure.\nI:H - The attacker fully controls the overflowed u16 profile fields (usec, pkts, comps) written beyond the allocation boundary, enabling heap metadata or adjacent-object corruption that can be developed into arbitrary kernel write or code execution.\nA:H - Heap corruption from unbounded profile indexing can cause immediate kernel oops/panic during the write or when the corrupted profile is subsequently used by DIM/virtio-net interrupt moderation paths."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:37:54.593Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d4c9cc7c47781c6f4fa29d80a1193a8bcd1525bc"
},
{
"url": "https://git.kernel.org/stable/c/0c02c190bcd9822477038ff2cee10ea584ac1b1d"
},
{
"url": "https://git.kernel.org/stable/c/6205f7166d2dd14a017a5802c81e5bd1421a8635"
},
{
"url": "https://git.kernel.org/stable/c/7281b096b072f6c6e30420e3467d738f2e4c4b57"
}
],
"title": "ethtool: coalesce: cap profile updates at NET_DIM_PARAMS_NUM_PROFILES",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63987",
"datePublished": "2026-07-19T14:56:08.940Z",
"dateReserved": "2026-07-19T07:54:57.025Z",
"dateUpdated": "2026-10-19T20:18:01.044Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80686 (GCVE-0-2026-80686)
Vulnerability from cvelistv5
Published
2026-08-28 06:52
Modified
2026-08-28 06:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm: migrate_device: fix pte_pfn/pte_dirty called on non-present PTE
pte_pfn() and pte_dirty() have undefined behaviour when called on a
non-present PTE. In migrate_vma_collect_pmd(), these functions may be
invoked on non-present entries (e.g., device-private entries), leading
to potential crashes from pte_pfn() or incorrect dirty folio accounting
from pte_dirty(). Fix both by guarding with pte_present() checks.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6c287605fd56466e645693eff3ae7c08fba56e0a Version: 6c287605fd56466e645693eff3ae7c08fba56e0a Version: 6c287605fd56466e645693eff3ae7c08fba56e0a Version: 6c287605fd56466e645693eff3ae7c08fba56e0a Version: 6c287605fd56466e645693eff3ae7c08fba56e0a Version: 6c287605fd56466e645693eff3ae7c08fba56e0a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/migrate_device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "26f9ca8ed42cba25d2c75daff13561cce6019395",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
},
{
"lessThan": "5b948706f11a950bc73c5304630d0a7eafc40daf",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
},
{
"lessThan": "86d55447de3738620b9a8272ff167ce97e7f7203",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
},
{
"lessThan": "2be94d6b20789b8865b1864dae5fe458ca85e019",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
},
{
"lessThan": "42f30fa5481a1f90571ccdfbb20d2e25e47ae76e",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
},
{
"lessThan": "63867c82d0c0c2d182016a32b1cc0103116b0ea5",
"status": "affected",
"version": "6c287605fd56466e645693eff3ae7c08fba56e0a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/migrate_device.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm: migrate_device: fix pte_pfn/pte_dirty called on non-present PTE\n\npte_pfn() and pte_dirty() have undefined behaviour when called on a\nnon-present PTE. In migrate_vma_collect_pmd(), these functions may be\ninvoked on non-present entries (e.g., device-private entries), leading\nto potential crashes from pte_pfn() or incorrect dirty folio accounting\nfrom pte_dirty(). Fix both by guarding with pte_present() checks."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:52:51.924Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/26f9ca8ed42cba25d2c75daff13561cce6019395"
},
{
"url": "https://git.kernel.org/stable/c/5b948706f11a950bc73c5304630d0a7eafc40daf"
},
{
"url": "https://git.kernel.org/stable/c/86d55447de3738620b9a8272ff167ce97e7f7203"
},
{
"url": "https://git.kernel.org/stable/c/2be94d6b20789b8865b1864dae5fe458ca85e019"
},
{
"url": "https://git.kernel.org/stable/c/42f30fa5481a1f90571ccdfbb20d2e25e47ae76e"
},
{
"url": "https://git.kernel.org/stable/c/63867c82d0c0c2d182016a32b1cc0103116b0ea5"
}
],
"title": "mm: migrate_device: fix pte_pfn/pte_dirty called on non-present PTE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80686",
"datePublished": "2026-08-28T06:52:51.924Z",
"dateReserved": "2026-08-26T14:34:25.784Z",
"dateUpdated": "2026-08-28T06:52:51.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92509 (GCVE-0-2026-92509)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in counter_release()
When accessing a counter via the netlink path the only synchronization
mechanism for the said counter is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
counter_release(), which is too late, since by that point
vendor-specific resources associated with the counter might already be
freed. This can leave a short window where the counter remains
accessible through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_del() call to be before the
freeing of the vendor-specific resources, ensuring that the counter is
removed from restrack before its internal resources are released.
This guarantees that no new users hold references to a counter that is
in the process of destruction.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac Version: 99fa331dc8629be55ac7a0cca0dc56492070ddac |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/counters.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5eb0c57a8b568eb08f464861d84d518a2af939ac",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
},
{
"lessThan": "d5cc211e8c39e46f357d30a092d683e84d560de9",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
},
{
"lessThan": "2f0c6705e26ba92c0c6b0b0908a2d3f35a039d5b",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
},
{
"lessThan": "8c013e3a8d8273da4d47bf1c27f016a3551996f5",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
},
{
"lessThan": "64c72390d8407ea86de712a477c796b07d37abc4",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
},
{
"lessThan": "235ef2d0e750885c29340b0fc40620a7a4f52e12",
"status": "affected",
"version": "99fa331dc8629be55ac7a0cca0dc56492070ddac",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/counters.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in counter_release()\n\nWhen accessing a counter via the netlink path the only synchronization\nmechanism for the said counter is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\ncounter_release(), which is too late, since by that point\nvendor-specific resources associated with the counter might already be\nfreed. This can leave a short window where the counter remains\naccessible through restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_del() call to be before the\nfreeing of the vendor-specific resources, ensuring that the counter is\nremoved from restrack before its internal resources are released.\nThis guarantees that no new users hold references to a counter that is\nin the process of destruction."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:15.303Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5eb0c57a8b568eb08f464861d84d518a2af939ac"
},
{
"url": "https://git.kernel.org/stable/c/d5cc211e8c39e46f357d30a092d683e84d560de9"
},
{
"url": "https://git.kernel.org/stable/c/2f0c6705e26ba92c0c6b0b0908a2d3f35a039d5b"
},
{
"url": "https://git.kernel.org/stable/c/8c013e3a8d8273da4d47bf1c27f016a3551996f5"
},
{
"url": "https://git.kernel.org/stable/c/64c72390d8407ea86de712a477c796b07d37abc4"
},
{
"url": "https://git.kernel.org/stable/c/235ef2d0e750885c29340b0fc40620a7a4f52e12"
}
],
"title": "RDMA/core: Fix potential use after free in counter_release()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92509",
"datePublished": "2026-09-17T16:10:20.100Z",
"dateReserved": "2026-09-16T12:21:13.872Z",
"dateUpdated": "2026-10-19T09:04:15.303Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72098 (GCVE-0-2026-72098)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm-verity: fix buffer overflow in FEC calculation
There's a buffer overflow in dm-verity-fec:
if (neras && *neras <= v->fec->roots)
fio->erasures[(*neras)++] = i;
This allows *neras to reach roots + 1 (the post-increment pushes it past
roots). This value is then passed as no_eras to decode_rs8(). Inside the
RS decoder (lib/reed_solomon/decode_rs.c:113-121), the erasure locator
polynomial loop writes lambda[j] where j can reach nroots + 1 — one
element past the end of lambda[] (which is sized nroots + 1, valid
indices 0..nroots). The out-of-bounds write lands on syn[0], corrupting
the syndrome buffer.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72098",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:51:49.534768Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-787",
"description": "CWE-787 Out-of-bounds Write",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:27.528Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-verity-fec.c",
"drivers/md/dm-verity-fec.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "374775626c327aec2425c16b4d36706e5f8718b8",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "dc662eed1c432cc2fd4e9314f58d30b3a8cca7cc",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "5488d3a69d205e28f74f18857b853aa12e778e66",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "f7990c2b0f08b8841fcd2652d1d7002f5994a7a7",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "31d6e6c0ba8d5a7bd59660035a089307100c5e8e",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-verity-fec.c",
"drivers/md/dm-verity-fec.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.5"
},
{
"lessThan": "4.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm-verity: fix buffer overflow in FEC calculation\n\nThere\u0027s a buffer overflow in dm-verity-fec:\n\nif (neras \u0026\u0026 *neras \u003c= v-\u003efec-\u003eroots)\n\tfio-\u003eerasures[(*neras)++] = i;\n\nThis allows *neras to reach roots + 1 (the post-increment pushes it past\nroots). This value is then passed as no_eras to decode_rs8(). Inside the\nRS decoder (lib/reed_solomon/decode_rs.c:113-121), the erasure locator\npolynomial loop writes lambda[j] where j can reach nroots + 1 \u2014 one\nelement past the end of lambda[] (which is sized nroots + 1, valid\nindices 0..nroots). The out-of-bounds write lands on syn[0], corrupting\nthe syndrome buffer."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - In cloud/network-boot deployments where dm-verity data, hash, or FEC backing devices are served over NBD/iSCSI/TCP, a remote block provider can supply crafted blocks that drive the FEC erasure-correction path during ordinary read I/O through verity_map without local code execution.\nAC:L - A crafted backing image or malicious network-block responses can deterministically produce at least fec_roots+1 hash-mismatched or failed message blocks in one RS group, reliably reaching the off-by-one no_eras path on the second FEC decode attempt after verification failure.\nPR:N - Triggering requires only read I/O against an active dm-verity+FEC mapping; a remote NBD/iSCSI peer needs no account or privileges on the victim host, and unprivileged local processes with read access to the mapped device or filesystem can also reach the vulnerable FEC path.\nUI:N - Exploitation is driven by automatic boot-time reads, udev probing, or ordinary filesystem I/O on the dm-verity device; no specific victim action beyond normal system operation is required once corruption is present.\nS:U - The overflow corrupts kernel heap Reed-Solomon scratch buffers during dm-verity verification within the same kernel security authority; it does not by itself cross VM, IOMMU, or sandbox boundaries.\nC:H - The inflated no_eras value causes decode_rs8 to XOR-write one uint16 past lambda[] into syn[0], corrupting adjacent kernel decoder state; such heap out-of-bounds writes can be leveraged for arbitrary memory disclosure.\nI:H - The same out-of-bounds write in the erasure-locator loop corrupts syndrome buffers later used to modify decoded message bytes, providing a heap memory-corruption primitive that can enable arbitrary kernel writes or control-flow hijacking.\nA:H - Corrupting Reed-Solomon decoder state during dm-verity verification can cause kernel oops, panics, or hung I/O on critical read-only partitions (notably Android/embedded systems with FEC enabled), denying availability of the device or entire system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:22.026Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/374775626c327aec2425c16b4d36706e5f8718b8"
},
{
"url": "https://git.kernel.org/stable/c/dc662eed1c432cc2fd4e9314f58d30b3a8cca7cc"
},
{
"url": "https://git.kernel.org/stable/c/5488d3a69d205e28f74f18857b853aa12e778e66"
},
{
"url": "https://git.kernel.org/stable/c/f7990c2b0f08b8841fcd2652d1d7002f5994a7a7"
},
{
"url": "https://git.kernel.org/stable/c/31d6e6c0ba8d5a7bd59660035a089307100c5e8e"
}
],
"title": "dm-verity: fix buffer overflow in FEC calculation",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72098",
"datePublished": "2026-08-15T05:52:43.666Z",
"dateReserved": "2026-08-09T03:40:39.905Z",
"dateUpdated": "2026-10-21T12:44:22.026Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72055 (GCVE-0-2026-72055)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ip6_vti: require CAP_NET_ADMIN in the device netns for changelink
vti6_changelink() operates on at most two netns, dev_net(dev) and the
tunnel link netns t->net. They differ once the device is created in or
moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Gate vti6_changelink() on rtnl_dev_link_net_capable() at its top,
before any attribute is parsed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 Version: 61220ab349485d911083d0b7990ccd3db6c63297 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72055",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:51:02.327568Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:25.382Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_vti.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f5254e7766b4ac02b66b2ccef896cd278503cb11",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "ef897249dc957089e6f7f11ceea699e093ad51bd",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "f6e8b52a2cb3bbd72ddc2d44e474b907b9dcf5ba",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "c64b9ae7eb97e81d54b792910a3aeafd92566c79",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "b2b61c540571b3cc2f461e2a579ba2cc8c2a52cf",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "0b2f9c908f930ec4be17d389723f9a202d6a883c",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "f97e93ebf2f9b8ef3b87f7a9371255e84d151587",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
},
{
"lessThan": "e2ac3b242c37dff323a964962e43854f4b1a2b79",
"status": "affected",
"version": "61220ab349485d911083d0b7990ccd3db6c63297",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_vti.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.15"
},
{
"lessThan": "3.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ip6_vti: require CAP_NET_ADMIN in the device netns for changelink\n\nvti6_changelink() operates on at most two netns, dev_net(dev) and the\ntunnel link netns t-\u003enet. They differ once the device is created in or\nmoved to a netns other than the one the request runs in. The rtnl\nchangelink path checks CAP_NET_ADMIN only against dev_net(dev), so a\ncaller privileged there but not in t-\u003enet can rewrite a tunnel that\nlives in t-\u003enet.\n\nGate vti6_changelink() on rtnl_dev_link_net_capable() at its top,\nbefore any attribute is parsed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is only reachable through rtnetlink configuration (RTM_NEWLINK changelink via netlink socket), not from remote IPv6/IPsec packets processed by vti6_rcv; kernel guidance classifies netlink/tc paths as Local.\nAC:L - Exploitation is a deterministic attacker-controlled sequence (create vti6, move netns so dev_net(dev) != t-\u003enet, issue changelink) with no races, timing dependencies, or uncontrollable victim state once the cross-namespace device exists.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN in dev_net(dev), obtainable by an unprivileged local user inside a user+network namespace (unshare --user --map-root-user --net) without init-namespace root or CAP_NET_ADMIN in t-\u003enet.\nUI:N - Exploitation is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - vti6_changelink mutates live tunnel state and hash tables in t-\u003enet while authorization is checked only against dev_net(dev), crossing from the attacker\u0027s net/user namespace into another tenant\u0027s or the host\u0027s network namespace IPsec tunnel configuration.\nC:H - Unauthorized changelink can rewrite IFLA_VTI_LOCAL/REMOTE, IKEY/OKEY, and FWMARK to redirect IPv6 IPsec VTI traffic through attacker-controlled endpoints, exposing decrypted tunneled payloads on the receive path.\nI:H - The attacker can arbitrarily reconfigure live vti6 tunnel endpoints, keys, link binding, and routing metadata in t-\u003enet without authorization, enabling traffic redirection and injection across the victim namespace\u0027s IPsec VPN paths.\nA:H - Rewriting or invalidating vti6 tunnel endpoints, keys, or link configuration can break production IPsec VPN overlays and dependent services, causing sustained loss of connectivity for workloads in the victim network namespace."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:39:52.104Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f5254e7766b4ac02b66b2ccef896cd278503cb11"
},
{
"url": "https://git.kernel.org/stable/c/ef897249dc957089e6f7f11ceea699e093ad51bd"
},
{
"url": "https://git.kernel.org/stable/c/f6e8b52a2cb3bbd72ddc2d44e474b907b9dcf5ba"
},
{
"url": "https://git.kernel.org/stable/c/c64b9ae7eb97e81d54b792910a3aeafd92566c79"
},
{
"url": "https://git.kernel.org/stable/c/b2b61c540571b3cc2f461e2a579ba2cc8c2a52cf"
},
{
"url": "https://git.kernel.org/stable/c/0b2f9c908f930ec4be17d389723f9a202d6a883c"
},
{
"url": "https://git.kernel.org/stable/c/f97e93ebf2f9b8ef3b87f7a9371255e84d151587"
},
{
"url": "https://git.kernel.org/stable/c/e2ac3b242c37dff323a964962e43854f4b1a2b79"
}
],
"title": "net: ip6_vti: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72055",
"datePublished": "2026-08-15T05:52:11.413Z",
"dateReserved": "2026-08-09T03:40:39.903Z",
"dateUpdated": "2026-10-19T21:19:25.382Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90218 (GCVE-0-2026-90218)
Vulnerability from cvelistv5
Published
2026-09-17 16:07
Modified
2026-10-19 08:59
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/cma: Fix WARNING in res_to_rt
syzbot reported a WARN_ON(!res->dev) in res_to_rt() triggered via
addr_handler() during asynchronous address resolution:
"
WARNING: drivers/infiniband/core/restrack.c:138 at res_to_rt+0x1c4/0x230
CPU#1: kworker/u8:4/59
Modules linked in:
CPU: 1 UID: 0 PID: 59 Comm: kworker/u8:4 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Compute Engine, BIOS Google 07/24/2026
Workqueue: ib_addr process_one_req
RIP: 0010:res_to_rt+0x1c4/0x230 drivers/infiniband/core/restrack.c:138
RSP: 0018:ffffc9000201f850 EFLAGS: 00010293
RAX: ffffffff88d00ce5 RBX: ffff88807f0fd4f8 RCX: ffff88801e6e0000
RDX: 0000000000000000 RSI: ffffffff8fd996f0 RDI: 0000000000000003
RBP: 0000000000000000 R08: ffff88801e6e0000 R09: 000000000000000a
R10: 0000000000000009 R11: 0000000000000000 R12: dffffc0000000000
R13: 1ffff1100fe1fa9f R14: 0000000000000000 R15: 0000000000000003
FS: 0000000000000000(0000) GS:ffff888125012000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00001d559c3d2000 CR3: 0000000077c4c000 CR4: 00000000003526f0
Call Trace:
<TASK>
rdma_restrack_add+0x5a/0x8a0 drivers/infiniband/core/restrack.c:236
addr_handler+0x41a/0x5a0 drivers/infiniband/core/cma.c:3534
process_one_req+0x2eb/0x540 drivers/infiniband/core/addr.c:624
process_one_work kernel/workqueue.c:3375 [inline]
process_scheduled_works+0xc4e/0x1630 kernel/workqueue.c:3458
worker_thread+0xa47/0xfb0 kernel/workqueue.c:3539
kthread+0x388/0x470 kernel/kthread.c:436
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
"
In addr_handler(), cma_acquire_dev_by_src_ip() is called to populate
id_priv->cma_dev and bind the associated ib_device to id_priv->id.device.
If cma_acquire_dev_by_src_ip() returns an error (non-zero status), the ID
remains unassociated with any RDMA device.
Previously, rdma_restrack_add(&id_priv->res) was invoked unconditionally
even when cma_acquire_dev_by_src_ip() failed, passing a resource with a
NULL dev pointer and triggering the WARN_ON assertion in res_to_rt().
Fix this by only adding the resource to restrack when acquiring the device
succeeds.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c5ebaca402f5c5bd61ac8316feb2aa3a0be4d4a8 Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa Version: 073fdf539d4c022162db3d77a5afca1710f0de2d Version: fa37a461bd6d9ee86e891ba3e4074a450e44c881 Version: 5.10.37 ≤ Version: 5.11.21 ≤ Version: 5.12.4 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/cma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1d7e55ea64dd15769318ba2e0fe0956db82ba3c3",
"status": "affected",
"version": "c5ebaca402f5c5bd61ac8316feb2aa3a0be4d4a8",
"versionType": "git"
},
{
"lessThan": "39e83bb77fc92344cd62a373b311f096d812e548",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "9c80273d663959504957606b9a24fe901ee2a4a1",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "2a63cb9ea862ac7d947952b497eef6520853538c",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "f72957e0b31f2962f4c1089a9223f1206aa26983",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "544e40805dbb6cfe64916bd4c8b238fec585ac2a",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "64a2bd4cfc16c24f0a0e6321a2fd00ffde3e0a5b",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"lessThan": "c6d1ec4fbe56492bb88987d577f04a5fb6955f26",
"status": "affected",
"version": "cb5cd0ea4eb3ce338a593a5331ddb4986ae20faa",
"versionType": "git"
},
{
"status": "affected",
"version": "073fdf539d4c022162db3d77a5afca1710f0de2d",
"versionType": "git"
},
{
"status": "affected",
"version": "fa37a461bd6d9ee86e891ba3e4074a450e44c881",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "5.10.37",
"versionType": "semver"
},
{
"lessThan": "5.12",
"status": "affected",
"version": "5.11.21",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.4",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/cma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.21",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/cma: Fix WARNING in res_to_rt\n\nsyzbot reported a WARN_ON(!res-\u003edev) in res_to_rt() triggered via\naddr_handler() during asynchronous address resolution:\n\n\"\nWARNING: drivers/infiniband/core/restrack.c:138 at res_to_rt+0x1c4/0x230\nCPU#1: kworker/u8:4/59\nModules linked in:\nCPU: 1 UID: 0 PID: 59 Comm: kworker/u8:4 Not tainted syzkaller #0 PREEMPT(full)\nHardware name: Google Compute Engine, BIOS Google 07/24/2026\nWorkqueue: ib_addr process_one_req\nRIP: 0010:res_to_rt+0x1c4/0x230 drivers/infiniband/core/restrack.c:138\nRSP: 0018:ffffc9000201f850 EFLAGS: 00010293\nRAX: ffffffff88d00ce5 RBX: ffff88807f0fd4f8 RCX: ffff88801e6e0000\nRDX: 0000000000000000 RSI: ffffffff8fd996f0 RDI: 0000000000000003\nRBP: 0000000000000000 R08: ffff88801e6e0000 R09: 000000000000000a\nR10: 0000000000000009 R11: 0000000000000000 R12: dffffc0000000000\nR13: 1ffff1100fe1fa9f R14: 0000000000000000 R15: 0000000000000003\nFS: 0000000000000000(0000) GS:ffff888125012000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00001d559c3d2000 CR3: 0000000077c4c000 CR4: 00000000003526f0\nCall Trace:\n \u003cTASK\u003e\n rdma_restrack_add+0x5a/0x8a0 drivers/infiniband/core/restrack.c:236\n addr_handler+0x41a/0x5a0 drivers/infiniband/core/cma.c:3534\n process_one_req+0x2eb/0x540 drivers/infiniband/core/addr.c:624\n process_one_work kernel/workqueue.c:3375 [inline]\n process_scheduled_works+0xc4e/0x1630 kernel/workqueue.c:3458\n worker_thread+0xa47/0xfb0 kernel/workqueue.c:3539\n kthread+0x388/0x470 kernel/kthread.c:436\n ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158\n ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n \u003c/TASK\u003e\n\"\n\nIn addr_handler(), cma_acquire_dev_by_src_ip() is called to populate\nid_priv-\u003ecma_dev and bind the associated ib_device to id_priv-\u003eid.device.\nIf cma_acquire_dev_by_src_ip() returns an error (non-zero status), the ID\nremains unassociated with any RDMA device.\n\nPreviously, rdma_restrack_add(\u0026id_priv-\u003eres) was invoked unconditionally\neven when cma_acquire_dev_by_src_ip() failed, passing a resource with a\nNULL dev pointer and triggering the WARN_ON assertion in res_to_rt().\n\nFix this by only adding the resource to restrack when acquiring the device\nsucceeds."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:59:54.084Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1d7e55ea64dd15769318ba2e0fe0956db82ba3c3"
},
{
"url": "https://git.kernel.org/stable/c/39e83bb77fc92344cd62a373b311f096d812e548"
},
{
"url": "https://git.kernel.org/stable/c/9c80273d663959504957606b9a24fe901ee2a4a1"
},
{
"url": "https://git.kernel.org/stable/c/2a63cb9ea862ac7d947952b497eef6520853538c"
},
{
"url": "https://git.kernel.org/stable/c/f72957e0b31f2962f4c1089a9223f1206aa26983"
},
{
"url": "https://git.kernel.org/stable/c/544e40805dbb6cfe64916bd4c8b238fec585ac2a"
},
{
"url": "https://git.kernel.org/stable/c/64a2bd4cfc16c24f0a0e6321a2fd00ffde3e0a5b"
},
{
"url": "https://git.kernel.org/stable/c/c6d1ec4fbe56492bb88987d577f04a5fb6955f26"
}
],
"title": "RDMA/cma: Fix WARNING in res_to_rt",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90218",
"datePublished": "2026-09-17T16:07:30.076Z",
"dateReserved": "2026-09-11T19:38:34.793Z",
"dateUpdated": "2026-10-19T08:59:54.084Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64299 (GCVE-0-2026-64299)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Prevent out-of-bounds read in glob matching
String event fields are not necessarily NUL-terminated, so the filter
predicate functions (filter_pred_string(), filter_pred_strloc() and
filter_pred_strrelloc()) pass the field length to the regex match
callbacks, and the length-aware matchers honour it.
regex_match_glob() was the exception: it ignored the length and called
glob_match(), which scans the string until it hits a NUL byte. Some
string fields are not NUL-terminated. One example is the dynamic char
array of the xfs_* namespace tracepoints, which is copied without a
trailing NUL. For such a field, glob matching reads past the end of
the event field, causing a KASAN slab-out-of-bounds read in
glob_match(), reached via regex_match_glob() and filter_match_preds()
from the xfs_lookup tracepoint.
Add a length-bounded glob_match_len() and use it from regex_match_glob()
so glob matching always stops at the field boundary. The matching loop
is factored into a shared helper so glob_match() keeps its behaviour.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 Version: 60f1d5e3bac44b598f67d36062da96c095d2b700 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64299",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:38:40.585671Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:22.703Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/glob.h",
"kernel/trace/trace_events_filter.c",
"lib/glob.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "265f3a690f6c7d69ef7d2ca50b04b4853a211df3",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "ee5b8888d3248618251fb69a2fad92afcb81557e",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "56d4c9ab84714eebb285a2fee68aaedf81e3ef15",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "35ae19764eabfe9c29029d3b5713c86e6855acdf",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "ebb55902856973906c8bb339a3a34824ed4a5086",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "2dad64a97e1df47f5d9ccb17fa319aa348617226",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "e5d5f3bd053a5f14787526c9f0f55ef900d43ac6",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
},
{
"lessThan": "0a6070839b1ef276d5b05bedfb787743e140fb17",
"status": "affected",
"version": "60f1d5e3bac44b598f67d36062da96c095d2b700",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/glob.h",
"kernel/trace/trace_events_filter.c",
"lib/glob.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Prevent out-of-bounds read in glob matching\n\nString event fields are not necessarily NUL-terminated, so the filter\npredicate functions (filter_pred_string(), filter_pred_strloc() and\nfilter_pred_strrelloc()) pass the field length to the regex match\ncallbacks, and the length-aware matchers honour it.\n\nregex_match_glob() was the exception: it ignored the length and called\nglob_match(), which scans the string until it hits a NUL byte. Some\nstring fields are not NUL-terminated. One example is the dynamic char\narray of the xfs_* namespace tracepoints, which is copied without a\ntrailing NUL. For such a field, glob matching reads past the end of\nthe event field, causing a KASAN slab-out-of-bounds read in\nglob_match(), reached via regex_match_glob() and filter_match_preds()\nfrom the xfs_lookup tracepoint.\n\nAdd a length-bounded glob_match_len() and use it from regex_match_glob()\nso glob matching always stops at the field boundary. The matching loop\nis factored into a shared helper so glob_match() keeps its behaviour."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker installs a glob filter through tracefs or perf_event_open and triggers it using a local pathname syscall on an affected filesystem such as XFS. Network clients cannot normally install or observe the required tracing filter.\nAC:L - No race or uncontrollable timing is required; the attacker selects a full-glob pattern and triggers a non-NUL-terminated event field repeatedly. Reused per-CPU trace buffers can also be groomed by attacker-controlled events.\nPR:L - Although user namespaces alone cannot bypass tracefs or initial-namespace perf capability checks, ordinary users can install filters when tracefs access is delegated to a tracing group or perf_event_paranoid permits kernel events. These are supported and reasonable deployments requiring only basic user privileges.\nUI:N - The attacker can install the filter and trigger pathname lookups directly without another user\u0027s action.\nS:U - The out-of-bounds read affects the host kernel within the same security authority and does not cross a guest-host, hypervisor, or IOMMU boundary.\nC:H - glob_match() ignores the supplied field length and scans until an incidental NUL, allowing filter results to act as an oracle over adjacent or reused kernel trace-buffer data. The read is not strictly bounded to a few bytes.\nI:N - The vulnerable code only reads memory and changes the Boolean filter result; it provides no out-of-bounds write or other memory-modification primitive.\nA:H - The repeatable unbounded scan can cross the event allocation or page boundary, producing the reported KASAN invalid access and potentially an oops or panic on inaccessible or poisoned memory. Panic-on-warning configurations make total availability loss directly achievable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:52:57.094Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/265f3a690f6c7d69ef7d2ca50b04b4853a211df3"
},
{
"url": "https://git.kernel.org/stable/c/ee5b8888d3248618251fb69a2fad92afcb81557e"
},
{
"url": "https://git.kernel.org/stable/c/56d4c9ab84714eebb285a2fee68aaedf81e3ef15"
},
{
"url": "https://git.kernel.org/stable/c/35ae19764eabfe9c29029d3b5713c86e6855acdf"
},
{
"url": "https://git.kernel.org/stable/c/ebb55902856973906c8bb339a3a34824ed4a5086"
},
{
"url": "https://git.kernel.org/stable/c/2dad64a97e1df47f5d9ccb17fa319aa348617226"
},
{
"url": "https://git.kernel.org/stable/c/e5d5f3bd053a5f14787526c9f0f55ef900d43ac6"
},
{
"url": "https://git.kernel.org/stable/c/0a6070839b1ef276d5b05bedfb787743e140fb17"
}
],
"title": "tracing: Prevent out-of-bounds read in glob matching",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64299",
"datePublished": "2026-07-25T08:49:35.742Z",
"dateReserved": "2026-07-19T15:36:31.778Z",
"dateUpdated": "2026-10-19T20:38:22.703Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72436 (GCVE-0-2026-72436)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: Don't use test_bit() in lockless RCU readers in hash types
Sashiko pointed out that there are a few lockless RCU readers
using test_bit() which is a relaxed atomic operation and
provides no memory barrier guarantees. Use test_bit_acquire()
instead where the operation may run parallel with add/del/gc,
i.e. is not one from the next cases
- protected by region lock
- in a set destroy phase
- in a new/temporary set creation phase
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Version: 18f84d41d34fa35d0d64bbaea01fe664553ecc06 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72436",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:57.755944Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.058Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c107233d2ff4fd7cef5d02f9124b99194957a710",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
},
{
"lessThan": "6329d3a9afe715fddda0460cfa46b496d61c2fe0",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
},
{
"lessThan": "7445fe965b7d8756070a40e80f8b73348ccda1d7",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
},
{
"lessThan": "c4d257734e91bfcdc71d41843392dd6400b5bb1b",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
},
{
"lessThan": "3219d74e4536658c937fd878a327257b86ce80dd",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
},
{
"lessThan": "e4b4984e28c16406ecb318444dea4a8bf47def3e",
"status": "affected",
"version": "18f84d41d34fa35d0d64bbaea01fe664553ecc06",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipset/ip_set_hash_gen.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: Don\u0027t use test_bit() in lockless RCU readers in hash types\n\nSashiko pointed out that there are a few lockless RCU readers\nusing test_bit() which is a relaxed atomic operation and\nprovides no memory barrier guarantees. Use test_bit_acquire()\ninstead where the operation may run parallel with add/del/gc,\ni.e. is not one from the next cases\n\n- protected by region lock\n- in a set destroy phase\n- in a new/temporary set creation phase"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable mtype_test() runs on every packet matched by iptables/nftables xt_set rules in PREROUTING/INPUT/FORWARD, so a remote attacker reaches the bug by sending network traffic to internet-facing servers using ipset-based firewall blocklists.\nAC:L - The attacker controls both sides of the race by flooding packets that trigger lockless RCU readers while concurrently driving hash add/del via SET target rules or timeout GC on the same ipset, making the memory-ordering race reliably winnable.\nPR:N - No credentials or local access are required on the target; exploitation needs only unauthenticated network packets to a host running ipset netfilter rules, a standard deployment on firewalls, mail servers, and CDN edge nodes.\nUI:N - No victim interaction is needed; the attack is fully automated by sending network traffic and does not require mounting filesystems, opening files, or any other user action.\nS:U - The vulnerability corrupts or leaks kernel heap data within the same host security boundary; it does not cross VM, container, or IOMMU isolation boundaries.\nC:H - Without acquire semantics, test_bit() can observe a slot as used before element writes are visible or after deletion, causing reads of uninitialized, stale, or freed hbucket element and extension memory\u2014a UAF-class kernel information disclosure.\nI:H - Stale or torn reads of hash bucket elements during concurrent add/del/gc constitute kernel heap memory safety violations that can corrupt netfilter matching decisions and be further leveraged for control-flow or data manipulation attacks.\nA:H - Reading partially initialized or post-destroy hash element memory during softirq packet processing on loaded firewall datapaths can trigger kernel oopses, panics, or hangs, causing complete loss of availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:12.018Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c107233d2ff4fd7cef5d02f9124b99194957a710"
},
{
"url": "https://git.kernel.org/stable/c/6329d3a9afe715fddda0460cfa46b496d61c2fe0"
},
{
"url": "https://git.kernel.org/stable/c/7445fe965b7d8756070a40e80f8b73348ccda1d7"
},
{
"url": "https://git.kernel.org/stable/c/c4d257734e91bfcdc71d41843392dd6400b5bb1b"
},
{
"url": "https://git.kernel.org/stable/c/3219d74e4536658c937fd878a327257b86ce80dd"
},
{
"url": "https://git.kernel.org/stable/c/e4b4984e28c16406ecb318444dea4a8bf47def3e"
}
],
"title": "netfilter: ipset: Don\u0027t use test_bit() in lockless RCU readers in hash types",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72436",
"datePublished": "2026-08-15T05:56:50.051Z",
"dateReserved": "2026-08-09T03:40:39.929Z",
"dateUpdated": "2026-10-16T18:55:24.058Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90434 (GCVE-0-2026-90434)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
isofs: release zisofs block pointer buffer head
zisofs_fill_pages() reads the compressed block pointer table. The error
paths release the current buffer_head, the loop also releases the old
buffer_head when it advances. However, the success path leaves the last
buffer_head referenced. Release it before returning success.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 Version: 59bc055211b8d266ab6089158058bf8268e02006 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/isofs/compress.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "dbcc7d1b818162aeab2e97fd217d86546d9fde15",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "ec33e6b7a1de20d7e623b12633191a855445657d",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "0c2c54a7d174edc845f7bae24179fe72a926d10f",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "5677737c2cedf417c0fcf61540b9cef0e62273d4",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "f2a1611065c700a374b31c5cc8a7587f5e3bfe73",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "106e1a3b2b3454fbda63a59e9290cb9a253f81aa",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "3371d30a97a257b7b5f2c8009612e9d452180f0a",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "2f7dd9b86fe4076059e6a4a2a2c5d565afd76b9e",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/isofs/compress.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nisofs: release zisofs block pointer buffer head\n\nzisofs_fill_pages() reads the compressed block pointer table. The error\npaths release the current buffer_head, the loop also releases the old\nbuffer_head when it advances. However, the success path leaves the last\nbuffer_head referenced. Release it before returning success."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:39.223Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/dbcc7d1b818162aeab2e97fd217d86546d9fde15"
},
{
"url": "https://git.kernel.org/stable/c/ec33e6b7a1de20d7e623b12633191a855445657d"
},
{
"url": "https://git.kernel.org/stable/c/0c2c54a7d174edc845f7bae24179fe72a926d10f"
},
{
"url": "https://git.kernel.org/stable/c/5677737c2cedf417c0fcf61540b9cef0e62273d4"
},
{
"url": "https://git.kernel.org/stable/c/f2a1611065c700a374b31c5cc8a7587f5e3bfe73"
},
{
"url": "https://git.kernel.org/stable/c/106e1a3b2b3454fbda63a59e9290cb9a253f81aa"
},
{
"url": "https://git.kernel.org/stable/c/3371d30a97a257b7b5f2c8009612e9d452180f0a"
},
{
"url": "https://git.kernel.org/stable/c/2f7dd9b86fe4076059e6a4a2a2c5d565afd76b9e"
}
],
"title": "isofs: release zisofs block pointer buffer head",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90434",
"datePublished": "2026-09-17T16:09:53.716Z",
"dateReserved": "2026-09-11T19:38:34.815Z",
"dateUpdated": "2026-10-19T09:03:39.223Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72163 (GCVE-0-2026-72163)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-17 05:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: fix NULL h_transaction deref in ocfs2_assure_trans_credits
[BUG]
A direct write over unwritten extents can panic the kernel in
ocfs2_assure_trans_credits() when the journal aborts during DIO
completion. The crash is a general protection fault from a NULL pointer
dereference.
[CAUSE]
ocfs2_dio_end_io_write() loops over a direct write's unwritten extents,
marking each written under a single journal handle. If the journal
aborts (for example after an I/O error) while the extent tree is being
updated, the handle is left aborted with its transaction pointer
cleared. The extent merge treats that failure as not critical and
reports success, so the loop keeps using the handle.
ocfs2_assure_trans_credits() reads the handle's remaining credits
without first checking whether the handle is aborted, and that read
dereferences the cleared transaction pointer.
[FIX]
A journal abort is recorded in the handle itself, so callers are
expected to test the handle rather than rely on a returned error.
Make ocfs2_assure_trans_credits() do that, as the other ocfs2 journal
helpers already do, and return -EROFS when the handle is aborted.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a68b896aa56e435506453ec8835bc991ec3ae687 Version: 320273b5649bbcee87f9e65343077189699d2a7a Version: 9ea2d1c6789722d58ec191f14f9a02518d55b6b4 Version: c05ffb693bfb42a48ef3ee88a55b57392984e111 Version: be346c1a6eeb49d8fda827d2a9522124c2f72f36 Version: be346c1a6eeb49d8fda827d2a9522124c2f72f36 Version: be346c1a6eeb49d8fda827d2a9522124c2f72f36 Version: be346c1a6eeb49d8fda827d2a9522124c2f72f36 Version: 331d1079d58206ff7dc5518185f800b412f89bc6 Version: 5.10.221 ≤ Version: 5.15.162 ≤ Version: 6.1.97 ≤ Version: 6.6.37 ≤ Version: 6.9.8 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/journal.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d80e9c56718435a9c9f5f24dbc954989aead579",
"status": "affected",
"version": "a68b896aa56e435506453ec8835bc991ec3ae687",
"versionType": "git"
},
{
"lessThan": "942b818b396c24c452681803ff291552317d2ef1",
"status": "affected",
"version": "320273b5649bbcee87f9e65343077189699d2a7a",
"versionType": "git"
},
{
"lessThan": "7146d191dae3a8efdb957993fb61a55713186266",
"status": "affected",
"version": "9ea2d1c6789722d58ec191f14f9a02518d55b6b4",
"versionType": "git"
},
{
"lessThan": "f14aaaa130356ee4adb44de947c098637c70df8f",
"status": "affected",
"version": "c05ffb693bfb42a48ef3ee88a55b57392984e111",
"versionType": "git"
},
{
"lessThan": "6ad7532a23bc94076efe9f1486dd7f7493c090ff",
"status": "affected",
"version": "be346c1a6eeb49d8fda827d2a9522124c2f72f36",
"versionType": "git"
},
{
"lessThan": "bd73971fad89d5ee4ea0ba9b92d2ea08733c4a64",
"status": "affected",
"version": "be346c1a6eeb49d8fda827d2a9522124c2f72f36",
"versionType": "git"
},
{
"lessThan": "253ed993e0b36997ec7b04c1ff76103b38241de2",
"status": "affected",
"version": "be346c1a6eeb49d8fda827d2a9522124c2f72f36",
"versionType": "git"
},
{
"lessThan": "f9ab30c96b0f00c20c6dac93681bdae3a033d229",
"status": "affected",
"version": "be346c1a6eeb49d8fda827d2a9522124c2f72f36",
"versionType": "git"
},
{
"status": "affected",
"version": "331d1079d58206ff7dc5518185f800b412f89bc6",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.221",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.162",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.97",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.37",
"versionType": "semver"
},
{
"lessThan": "6.10",
"status": "affected",
"version": "6.9.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/journal.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.221",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.162",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.97",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.9.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix NULL h_transaction deref in ocfs2_assure_trans_credits\n\n[BUG]\nA direct write over unwritten extents can panic the kernel in\nocfs2_assure_trans_credits() when the journal aborts during DIO\ncompletion. The crash is a general protection fault from a NULL pointer\ndereference.\n\n[CAUSE]\nocfs2_dio_end_io_write() loops over a direct write\u0027s unwritten extents,\nmarking each written under a single journal handle. If the journal\naborts (for example after an I/O error) while the extent tree is being\nupdated, the handle is left aborted with its transaction pointer\ncleared. The extent merge treats that failure as not critical and\nreports success, so the loop keeps using the handle.\nocfs2_assure_trans_credits() reads the handle\u0027s remaining credits\nwithout first checking whether the handle is aborted, and that read\ndereferences the cleared transaction pointer.\n\n[FIX]\nA journal abort is recorded in the handle itself, so callers are\nexpected to test the handle rather than rely on a returned error.\nMake ocfs2_assure_trans_credits() do that, as the other ocfs2 journal\nhelpers already do, and return -EROFS when the handle is aborted."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:09:24.274Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2d80e9c56718435a9c9f5f24dbc954989aead579"
},
{
"url": "https://git.kernel.org/stable/c/942b818b396c24c452681803ff291552317d2ef1"
},
{
"url": "https://git.kernel.org/stable/c/7146d191dae3a8efdb957993fb61a55713186266"
},
{
"url": "https://git.kernel.org/stable/c/f14aaaa130356ee4adb44de947c098637c70df8f"
},
{
"url": "https://git.kernel.org/stable/c/6ad7532a23bc94076efe9f1486dd7f7493c090ff"
},
{
"url": "https://git.kernel.org/stable/c/bd73971fad89d5ee4ea0ba9b92d2ea08733c4a64"
},
{
"url": "https://git.kernel.org/stable/c/253ed993e0b36997ec7b04c1ff76103b38241de2"
},
{
"url": "https://git.kernel.org/stable/c/f9ab30c96b0f00c20c6dac93681bdae3a033d229"
}
],
"title": "ocfs2: fix NULL h_transaction deref in ocfs2_assure_trans_credits",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72163",
"datePublished": "2026-08-15T05:53:31.157Z",
"dateReserved": "2026-08-09T03:40:39.909Z",
"dateUpdated": "2026-08-17T05:09:24.274Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64324 (GCVE-0-2026-64324)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
udf: validate free block extents against the partition length
udf_free_blocks() checks the logical block number and count against the
partition length, but drops the extent offset from that final bound. A
crafted extent can pass the guard while logicalBlockNum + offset + count
points past the partition, which later indexes past the space bitmap
array.
A single ftruncate(2) on a file backed by such an extent reliably
panics the kernel. This is a local availability issue. On desktop
systems where UDisks/polkit allows the active user to mount removable
UDF media without CAP_SYS_ADMIN, an unprivileged local user can supply
the crafted filesystem and trigger the panic by truncating a writable
file on it. Systems that require root or CAP_SYS_ADMIN to mount the
image have a higher prerequisite.
No confidentiality or integrity impact is claimed: the reproduced
primitive is an out-of-bounds read of a bitmap pointer slot followed by
a kernel panic.
Use the already computed logicalBlockNum + offset + count value for the
partition length check. Also make load_block_bitmap() reject an
out-of-range block group before indexing s_block_bitmap[], so corrupted
callers cannot walk past the flexible array.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 934f815345c09c290a9b9a9cfdddc203ec2117e8 Version: 22cc7323f090646c8cfb5939e6f15bdc2ed3fd27 Version: 7c4fa9ebfce69619d132fe703dc2e2cf62a13723 Version: 5cc9745e2ea11aef7d5c9a42bc36f6cd3e1b4cc3 Version: 56e69e59751d20993f243fb7dd6991c4e522424c Version: 56e69e59751d20993f243fb7dd6991c4e522424c Version: 56e69e59751d20993f243fb7dd6991c4e522424c Version: 56e69e59751d20993f243fb7dd6991c4e522424c Version: 097420e48e30f51e8f4f650b5c946f5af63ec1a3 Version: 5def895b42ef16a2da6402818cba8d7ec8ede1ef Version: 05fb2bf477d3fe5421bd4cb699574737f52bd88b Version: 5.10.224 ≤ Version: 5.15.165 ≤ Version: 6.1.105 ≤ Version: 6.6.46 ≤ Version: 4.19.320 ≤ Version: 5.4.282 ≤ Version: 6.10.5 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64324",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:39:12.321827Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:24.164Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/udf/balloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fdd6229d2ae9914c1f25d1041db0f4f312a4fa76",
"status": "affected",
"version": "934f815345c09c290a9b9a9cfdddc203ec2117e8",
"versionType": "git"
},
{
"lessThan": "b54aee5652fcd7c23a0904a4623ec462c3edc70c",
"status": "affected",
"version": "22cc7323f090646c8cfb5939e6f15bdc2ed3fd27",
"versionType": "git"
},
{
"lessThan": "12af328d2ee8d68e81ba612246d0b54b22d23e1f",
"status": "affected",
"version": "7c4fa9ebfce69619d132fe703dc2e2cf62a13723",
"versionType": "git"
},
{
"lessThan": "fb49099206c5c57af28a157249fa7bcb5518f99e",
"status": "affected",
"version": "5cc9745e2ea11aef7d5c9a42bc36f6cd3e1b4cc3",
"versionType": "git"
},
{
"lessThan": "9442d75429b0c556292a7454fe888d54259f5240",
"status": "affected",
"version": "56e69e59751d20993f243fb7dd6991c4e522424c",
"versionType": "git"
},
{
"lessThan": "335202ab25b01fdd45889ff25eab70864686dea3",
"status": "affected",
"version": "56e69e59751d20993f243fb7dd6991c4e522424c",
"versionType": "git"
},
{
"lessThan": "be87de7789a82a030a4896bc7683415ec9fa6f2b",
"status": "affected",
"version": "56e69e59751d20993f243fb7dd6991c4e522424c",
"versionType": "git"
},
{
"lessThan": "5f0419457f89dce1a3f1c8e62a3adf2f39ab8168",
"status": "affected",
"version": "56e69e59751d20993f243fb7dd6991c4e522424c",
"versionType": "git"
},
{
"status": "affected",
"version": "097420e48e30f51e8f4f650b5c946f5af63ec1a3",
"versionType": "git"
},
{
"status": "affected",
"version": "5def895b42ef16a2da6402818cba8d7ec8ede1ef",
"versionType": "git"
},
{
"status": "affected",
"version": "05fb2bf477d3fe5421bd4cb699574737f52bd88b",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.224",
"versionType": "semver"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.165",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.105",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.46",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.320",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.282",
"versionType": "semver"
},
{
"lessThan": "6.11",
"status": "affected",
"version": "6.10.5",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/udf/balloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.224",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.165",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.105",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.46",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.320",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.282",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.10.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nudf: validate free block extents against the partition length\n\nudf_free_blocks() checks the logical block number and count against the\npartition length, but drops the extent offset from that final bound. A\ncrafted extent can pass the guard while logicalBlockNum + offset + count\npoints past the partition, which later indexes past the space bitmap\narray.\n\nA single ftruncate(2) on a file backed by such an extent reliably\npanics the kernel. This is a local availability issue. On desktop\nsystems where UDisks/polkit allows the active user to mount removable\nUDF media without CAP_SYS_ADMIN, an unprivileged local user can supply\nthe crafted filesystem and trigger the panic by truncating a writable\nfile on it. Systems that require root or CAP_SYS_ADMIN to mount the\nimage have a higher prerequisite.\n\nNo confidentiality or integrity impact is claimed: the reproduced\nprimitive is an out-of-bounds read of a bitmap pointer slot followed by\na kernel panic.\n\nUse the already computed logicalBlockNum + offset + count value for the\npartition length check. Also make load_block_bitmap() reject an\nout-of-range block group before indexing s_block_bitmap[], so corrupted\ncallers cannot walk past the flexible array."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached through a local ftruncate(2) on a crafted, mounted UDF filesystem; no network protocol reaches this path.\nAC:L - The attacker controls the malicious extent and truncation offset, and a single ftruncate(2) reliably triggers the fault without a race or uncontrollable condition.\nPR:L - UDF cannot be mounted through an unprivileged user namespace, but default [UDisks policy](https://storaged.org/doc/udisks2-api/latest/udisks-polkit-ac tions.html) permits an active unprivileged user to mount removable media without administrator authentication.\nUI:N - The attacking local user can mount the supplied removable filesystem and truncate its writable file directly; no separate victim action is required.\nS:U - The vulnerable UDF code and the affected kernel resources remain within the host kernel\u0027s security authority; ordinary kernel privilege escalation does not change scope.\nC:H - Although the reproduced path is an out-of-bounds pointer-slot read followed by panic, a zero-valued out-of-range slot causes read_block_bitmap() to write a buffer_head pointer through that attacker-selected slot. Under the required higher-severity rule, this exploitable kernel heap corruption can enable code execution and unrestricted disclosure.\nI:H - The conditional out-of-bounds buffer_head pointer store corrupts kernel heap memory at an attacker-selected array index and can potentially alter control-relevant objects. This supports control-flow hijacking or arbitrary modification under the required higher-severity assumption.\nA:H - The [upstream report](https://lkml.iu.edu/2605.1/15216.html) confirms that one ftruncate(2) reliably panics the kernel, causing complete system unavailability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:53:26.109Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fdd6229d2ae9914c1f25d1041db0f4f312a4fa76"
},
{
"url": "https://git.kernel.org/stable/c/b54aee5652fcd7c23a0904a4623ec462c3edc70c"
},
{
"url": "https://git.kernel.org/stable/c/12af328d2ee8d68e81ba612246d0b54b22d23e1f"
},
{
"url": "https://git.kernel.org/stable/c/fb49099206c5c57af28a157249fa7bcb5518f99e"
},
{
"url": "https://git.kernel.org/stable/c/9442d75429b0c556292a7454fe888d54259f5240"
},
{
"url": "https://git.kernel.org/stable/c/335202ab25b01fdd45889ff25eab70864686dea3"
},
{
"url": "https://git.kernel.org/stable/c/be87de7789a82a030a4896bc7683415ec9fa6f2b"
},
{
"url": "https://git.kernel.org/stable/c/5f0419457f89dce1a3f1c8e62a3adf2f39ab8168"
}
],
"title": "udf: validate free block extents against the partition length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64324",
"datePublished": "2026-07-25T08:49:52.063Z",
"dateReserved": "2026-07-19T15:36:31.780Z",
"dateUpdated": "2026-10-19T20:38:24.164Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68294 (GCVE-0-2026-68294)
Vulnerability from cvelistv5
Published
2026-08-10 12:02
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: qrtr: restrict socket creation to the initial network namespace
QRTR keeps its entire port and node state in module-global variables
that are not partitioned per network namespace: qrtr_local_nid is a
single global node id (always 1) and qrtr_ports is a single global
xarray. qrtr_port_lookup() and qrtr_local_enqueue() operate on that
global state with no network-namespace check, and qrtr_create() places
no restriction on the namespace a socket is created in.
As a result an unprivileged process that creates an AF_QIPCRTR socket
in a separate network namespace, e.g. via
unshare(CLONE_NEWUSER | CLONE_NEWNET), can send QRTR datagrams -
including control-plane messages such as QRTR_TYPE_NEW_SERVER - to QRTR
sockets owned by another namespace, and vice versa. The receiving
socket sees such a message as coming from node id 1, indistinguishable
from a legitimate local client, breaking the isolation that network
namespaces are expected to provide.
QRTR is a transport to global hardware endpoints (the modem and other
remote processors) and has no per-namespace semantics; its in-kernel
name service already creates its socket in init_net only. Confine the
socket family to the initial network namespace, as other
non-namespace-aware socket families do (see llc_ui_create() and the
ieee802154 socket code).
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 Version: bdabad3e363d825ddf9679dd431cca0b2c30f881 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68294",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:44.239269Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862 Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:03.595Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/qrtr/af_qrtr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7814f6a3415cad38aa8d6dfc573df778260d66aa",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "2d22b94a154ccb9755dddfff802fe3e2b1adbab5",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "8d351fe0654a20c9f95a61b05d24ebe6d4be3fbb",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "4b95e1f0d6e6342c427cb341ee18a894b146b789",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "f488116df769bdaf89c93371350e49e12133e70f",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "8150c48fb978e01689f94ed80148f8a7499ae571",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "659b9b4f194bb56b9903cc95e786ef1d438baa7d",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
},
{
"lessThan": "3b536db8fb32da9e9c62f2bb45e2e319331f0426",
"status": "affected",
"version": "bdabad3e363d825ddf9679dd431cca0b2c30f881",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/qrtr/af_qrtr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: restrict socket creation to the initial network namespace\n\nQRTR keeps its entire port and node state in module-global variables\nthat are not partitioned per network namespace: qrtr_local_nid is a\nsingle global node id (always 1) and qrtr_ports is a single global\nxarray. qrtr_port_lookup() and qrtr_local_enqueue() operate on that\nglobal state with no network-namespace check, and qrtr_create() places\nno restriction on the namespace a socket is created in.\n\nAs a result an unprivileged process that creates an AF_QIPCRTR socket\nin a separate network namespace, e.g. via\nunshare(CLONE_NEWUSER | CLONE_NEWNET), can send QRTR datagrams -\nincluding control-plane messages such as QRTR_TYPE_NEW_SERVER - to QRTR\nsockets owned by another namespace, and vice versa. The receiving\nsocket sees such a message as coming from node id 1, indistinguishable\nfrom a legitimate local client, breaking the isolation that network\nnamespaces are expected to provide.\n\nQRTR is a transport to global hardware endpoints (the modem and other\nremote processors) and has no per-namespace semantics; its in-kernel\nname service already creates its socket in init_net only. Confine the\nsocket family to the initial network namespace, as other\nnon-namespace-aware socket families do (see llc_ui_create() and the\nieee802154 socket code)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local access to issue socket()/sendmsg() syscalls on an AF_QIPCRTR socket from within a network namespace on the target system; there is no remote packet path into qrtr_create().\nAC:L - The attack is fully deterministic: unshare(CLONE_NEWUSER|CLONE_NEWNET), create an AF_QIPCRTR socket (module autoloads via net-pf-42), and sendmsg() to node 1. No race, no memory-layout dependency, no victim state required.\nPR:L - Any unprivileged local user can create the required network namespace via unshare(CLONE_NEWUSER|CLONE_NEWNET), and a containerized process is already in one; the CAP_NET_ADMIN check at qrtr_port_assign() only gates low/control ports and is not needed for this attack.\nUI:N - The attacker performs all steps itself; no action by any other user or administrator is required to trigger the cross-namespace delivery.\nS:C - The flaw defeats the network-namespace confinement boundary itself: a process sandboxed in its own netns reaches the init_net global QRTR control plane, the in-kernel name service, and host-owned sockets, impacting resources under a different security authority than the attacker\u0027s container.\nC:H - By spoofing QRTR_TYPE_NEW_SERVER to the name service, a confined attacker registers itself as a well-known service so legitimate host clients direct their QMI traffic to it, and it can address modem/remote-processor endpoints directly, exposing sensitive telephony data it was isolated from.\nI:H - The attacker can inject arbitrary control-plane messages (NEW_SERVER, DEL_SERVER, BYE, DEL_CLIENT) that the receiver cannot distinguish from a legitimate node-1 client, corrupting the global service registry and allowing forged replies to host clients and commands to the modem.\nA:H - A single spoofed QRTR_TYPE_BYE makes ctrl_cmd_bye() delete every server registered on the local node and broadcast their removal, and the QRTR_NS_MAX_SERVERS/MAX_LOOKUPS limits can be exhausted, causing complete and repeatable loss of QRTR/modem IPC service for the whole system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:32:43.629Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7814f6a3415cad38aa8d6dfc573df778260d66aa"
},
{
"url": "https://git.kernel.org/stable/c/2d22b94a154ccb9755dddfff802fe3e2b1adbab5"
},
{
"url": "https://git.kernel.org/stable/c/8d351fe0654a20c9f95a61b05d24ebe6d4be3fbb"
},
{
"url": "https://git.kernel.org/stable/c/4b95e1f0d6e6342c427cb341ee18a894b146b789"
},
{
"url": "https://git.kernel.org/stable/c/f488116df769bdaf89c93371350e49e12133e70f"
},
{
"url": "https://git.kernel.org/stable/c/8150c48fb978e01689f94ed80148f8a7499ae571"
},
{
"url": "https://git.kernel.org/stable/c/659b9b4f194bb56b9903cc95e786ef1d438baa7d"
},
{
"url": "https://git.kernel.org/stable/c/3b536db8fb32da9e9c62f2bb45e2e319331f0426"
}
],
"title": "net: qrtr: restrict socket creation to the initial network namespace",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68294",
"datePublished": "2026-08-10T12:02:27.423Z",
"dateReserved": "2026-07-30T09:28:09.380Z",
"dateUpdated": "2026-10-19T21:09:03.595Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74665 (GCVE-0-2026-74665)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-25 05:41
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: fix skb length accounting after generic XDP frag adjustment
Generic XDP exposes non-linear skb fragments through an xdp_buff. If an
XDP program adjusts the fragment area, bpf_prog_run_generic_xdp() copies
xdp_frags_size back to skb->data_len but leaves skb->len containing the
old fragment contribution.
After a fragment shrink, this makes skb_headlen() larger than the actual
linear area. In the reproduced UDP receive path, __skb_datagram_iter()
copied 1024 bytes past the actual linear tail to userspace, starting at
struct skb_shared_info. The copied bytes included the affected skb's
nr_frags, xdp_frags_size and a kernel pointer from
skb_shinfo(skb)->frags[0]. Real packet data was displaced by the same
amount and truncated at the end.
Subtract the old data_len before replacing it and add the new data_len
afterwards, keeping skb->len and skb->data_len synchronized.
A 60000-byte UDP datagram on a veth pair with MTU 64000 was shortened by
1024 bytes from its fragment area. Before the fix, all 10 runs produced
corrupted payloads. After the fix, all 10 runs matched the expected
payload exactly.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "72468efcc089782fa047afddd10856b11a14ef5b",
"status": "affected",
"version": "e6d5dbdd20aa6a86974af51deb9414cd2e7794cb",
"versionType": "git"
},
{
"lessThan": "5f30f9c302cea1f2ebf97abe574c1826544223d7",
"status": "affected",
"version": "e6d5dbdd20aa6a86974af51deb9414cd2e7794cb",
"versionType": "git"
},
{
"lessThan": "ea1ccd6d1c6370868e3b032a3fc575b9c397f2e1",
"status": "affected",
"version": "e6d5dbdd20aa6a86974af51deb9414cd2e7794cb",
"versionType": "git"
},
{
"lessThan": "33f2b2eb33d666ecac68031e0f31424fb70528db",
"status": "affected",
"version": "e6d5dbdd20aa6a86974af51deb9414cd2e7794cb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fix skb length accounting after generic XDP frag adjustment\n\nGeneric XDP exposes non-linear skb fragments through an xdp_buff. If an\nXDP program adjusts the fragment area, bpf_prog_run_generic_xdp() copies\nxdp_frags_size back to skb-\u003edata_len but leaves skb-\u003elen containing the\nold fragment contribution.\n\nAfter a fragment shrink, this makes skb_headlen() larger than the actual\nlinear area. In the reproduced UDP receive path, __skb_datagram_iter()\ncopied 1024 bytes past the actual linear tail to userspace, starting at\nstruct skb_shared_info. The copied bytes included the affected skb\u0027s\nnr_frags, xdp_frags_size and a kernel pointer from\nskb_shinfo(skb)-\u003efrags[0]. Real packet data was displaced by the same\namount and truncated at the end.\n\nSubtract the old data_len before replacing it and add the new data_len\nafterwards, keeping skb-\u003elen and skb-\u003edata_len synchronized.\n\nA 60000-byte UDP datagram on a veth pair with MTU 64000 was shortened by\n1024 bytes from its fragment area. Before the fix, all 10 runs produced\ncorrupted payloads. After the fix, all 10 runs matched the expected\npayload exactly."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is hit when remotely delivered packets traverse __netif_receive_skb_core(), netif_receive_generic_xdp(), and bpf_prog_run_generic_xdp() on any netdev with generic XDP (SKB mode) attached, matching the reproduced UDP receive path on a veth pair.\nAC:L - An attacker can reliably send large fragmented datagrams (reproducer used a 60000-byte UDP payload) to create a nonlinear skb and drive bpf_xdp_adjust_tail() fragment shrink before XDP_PASS, with no race or conditions outside attacker packet control.\nPR:N - Exploitation only requires generic XDP using bpf_xdp_adjust_tail to already be attached on a reachable interface; the remote packet sender needs no local account, capabilities, or authentication to trigger the bad skb length accounting.\nUI:N - No victim interaction is needed beyond normal always-on packet reception and socket delivery; corrupted/leaked data is produced automatically when a userspace process reads the affected datagram.\nS:U - Impact stays within the same kernel/host security authority by leaking kernel memory into a local userspace receive buffer and does not by itself cross VM, container, or IOMMU isolation boundaries.\nC:H - Inflated skb_headlen() makes __skb_datagram_iter() copy up to 1024 bytes past the real linear tail into userspace, exposing skb_shared_info metadata and a kernel pointer from skb_shinfo(skb)-\u003efrags[0].\nI:H - The same length mismatch displaces and truncates real packet bytes in the delivered datagram, corrupting application-visible data beyond intended bounds and compounding misuse of leaked kernel metadata.\nA:N - The demonstrated failure is out-of-bounds kernel-to-userspace copy and datagram corruption without a reported kernel panic, oops, hang, or other availability loss in the fix commit or reproduction."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:19.196Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/72468efcc089782fa047afddd10856b11a14ef5b"
},
{
"url": "https://git.kernel.org/stable/c/5f30f9c302cea1f2ebf97abe574c1826544223d7"
},
{
"url": "https://git.kernel.org/stable/c/ea1ccd6d1c6370868e3b032a3fc575b9c397f2e1"
},
{
"url": "https://git.kernel.org/stable/c/33f2b2eb33d666ecac68031e0f31424fb70528db"
}
],
"title": "net: fix skb length accounting after generic XDP frag adjustment",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74665",
"datePublished": "2026-08-22T15:32:37.346Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-08-25T05:41:19.196Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90097 (GCVE-0-2026-90097)
Vulnerability from cvelistv5
Published
2026-09-17 16:06
Modified
2026-10-21 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Drivers: hv: vmbus: Skip VMBus module cleanup for non-nested root partition
The VMBus module initialization function, hv_acpi_init(), currently
does nothing when running in the root partition and root is not nested
in another VM. But the initialization function reports success, so the
VMBus module is indeed loaded. VMBus functionality is not actually
needed, but the VMBus module must be loaded so that hv_vmbus_exists()
can answer correctly. Furthermore, the mshv_root dependency on the
VMBus module is needed as described in the commit message for
840b740a35bf ("mshv: Add conditional VMBus dependency").
Loading the VMBus module without actually initializing it causes
failures if the module should later be unloaded. The module unload code
tries to clean up things that were never initialized, resulting in
memory faults and a panic.
Fix this by having VMBus module exit function perform the same
check for non-nested root partition, and do nothing in such a
case, just like hv_acpi_init().
In the long run, the code that manages the Hyper-V provided SynIC
should be refactored to better coordinate the requirements of
root partition scenarios and normal VM scenarios, and to hopefully
remove the hv_vmbus_exists() dependnecy between mshv_root and
VMBus modules. Preventing the current unload failure scenario is
an expediency until such a refactoring is done.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hv/vmbus_drv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4cc1ba2b31065a48fde14e9d53ad399a3ca32e35",
"status": "affected",
"version": "7e279d78664aa91107ebff4b03eca367967f5908",
"versionType": "git"
},
{
"lessThan": "ca1f4a926d08035c52c735a42200e4e5ea548f32",
"status": "affected",
"version": "7e279d78664aa91107ebff4b03eca367967f5908",
"versionType": "git"
},
{
"lessThan": "aa17842bbccaeaba7d05c166019d1c96a41bca54",
"status": "affected",
"version": "7e279d78664aa91107ebff4b03eca367967f5908",
"versionType": "git"
},
{
"lessThan": "4c19c302cc577bd6b466f6d8e97971777392c2fa",
"status": "affected",
"version": "7e279d78664aa91107ebff4b03eca367967f5908",
"versionType": "git"
},
{
"lessThan": "cee0d90bceae1dee3bcc70f8d6b2ceb5b87deb42",
"status": "affected",
"version": "7e279d78664aa91107ebff4b03eca367967f5908",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hv/vmbus_drv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.12"
},
{
"lessThan": "5.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nDrivers: hv: vmbus: Skip VMBus module cleanup for non-nested root partition\n\nThe VMBus module initialization function, hv_acpi_init(), currently\ndoes nothing when running in the root partition and root is not nested\nin another VM. But the initialization function reports success, so the\nVMBus module is indeed loaded. VMBus functionality is not actually\nneeded, but the VMBus module must be loaded so that hv_vmbus_exists()\ncan answer correctly. Furthermore, the mshv_root dependency on the\nVMBus module is needed as described in the commit message for\n840b740a35bf (\"mshv: Add conditional VMBus dependency\").\n\nLoading the VMBus module without actually initializing it causes\nfailures if the module should later be unloaded. The module unload code\ntries to clean up things that were never initialized, resulting in\nmemory faults and a panic.\n\nFix this by having VMBus module exit function perform the same\ncheck for non-nested root partition, and do nothing in such a\ncase, just like hv_acpi_init().\n\nIn the long run, the code that manages the Hyper-V provided SynIC\nshould be refactored to better coordinate the requirements of\nroot partition scenarios and normal VM scenarios, and to hopefully\nremove the hv_vmbus_exists() dependnecy between mshv_root and\nVMBus modules. Preventing the current unload failure scenario is\nan expediency until such a refactoring is done."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:49:49.144Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4cc1ba2b31065a48fde14e9d53ad399a3ca32e35"
},
{
"url": "https://git.kernel.org/stable/c/ca1f4a926d08035c52c735a42200e4e5ea548f32"
},
{
"url": "https://git.kernel.org/stable/c/aa17842bbccaeaba7d05c166019d1c96a41bca54"
},
{
"url": "https://git.kernel.org/stable/c/4c19c302cc577bd6b466f6d8e97971777392c2fa"
},
{
"url": "https://git.kernel.org/stable/c/cee0d90bceae1dee3bcc70f8d6b2ceb5b87deb42"
}
],
"title": "Drivers: hv: vmbus: Skip VMBus module cleanup for non-nested root partition",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90097",
"datePublished": "2026-09-17T16:06:09.529Z",
"dateReserved": "2026-09-11T19:38:34.786Z",
"dateUpdated": "2026-10-21T12:49:49.144Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72383 (GCVE-0-2026-72383)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix addr_wq_timer race in sctp_free_addr_wq()
sctp_free_addr_wq() previously removed addr_wq_timer using timer_delete()
while holding addr_wq_lock. However, timer_delete() does not guarantee that
a currently running timer handler has completed.
This allows a race with sctp_addr_wq_timeout_handler(), where the handler
may still run after addr_waitq has been freed, acquire addr_wq_lock, and
access freed memory, leading to a use-after-free.
Fix this by calling timer_shutdown_sync() before taking addr_wq_lock. This
guarantees that any in-flight timer handler has finished and prevents the
timer from being re-armed during teardown, making subsequent cleanup safe.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72383",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:48:17.297535Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:20.967Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/protocol.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5098308ad72f83f3b1a48c247dddab1695114bae",
"status": "affected",
"version": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
"versionType": "git"
},
{
"lessThan": "d49eff15261dd62e4fa3a316c26cb1f537a60464",
"status": "affected",
"version": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
"versionType": "git"
},
{
"lessThan": "a8323fb2ab6cd6978f359daeed6688e0cadf32ba",
"status": "affected",
"version": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
"versionType": "git"
},
{
"lessThan": "c3e5cac47519d77ad36b9c03a1df1536aaa0c4a1",
"status": "affected",
"version": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
"versionType": "git"
},
{
"lessThan": "976c19de0f22a857ba0112f39635f8fd7a257568",
"status": "affected",
"version": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/protocol.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.7"
},
{
"lessThan": "3.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix addr_wq_timer race in sctp_free_addr_wq()\n\nsctp_free_addr_wq() previously removed addr_wq_timer using timer_delete()\nwhile holding addr_wq_lock. However, timer_delete() does not guarantee that\na currently running timer handler has completed.\n\nThis allows a race with sctp_addr_wq_timeout_handler(), where the handler\nmay still run after addr_waitq has been freed, acquire addr_wq_lock, and\naccess freed memory, leading to a use-after-free.\n\nFix this by calling timer_shutdown_sync() before taking addr_wq_lock. This\nguarantees that any in-flight timer handler has finished and prevents the\ntimer from being re-armed during teardown, making subsequent cleanup safe."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is in sctp_free_addr_wq() during per-network-namespace SCTP teardown when a net namespace is destroyed; reaching it requires local syscalls (unshare/exit, SCTP socket/bind/setsockopt, rtnetlink address changes), not remote SCTP packet receive paths.\nAC:L - The attacker controls both sides of the race by creating a netns with SCTP AUTO_ASCONF sockets, queueing address events that arm addr_wq_timer (~500ms), and concurrently destroying that namespace; timer_delete() does not wait for sctp_addr_wq_timeout_handler(), so the UAF is reliably winnable.\nPR:L - An unprivileged local user can obtain CAP_NET_ADMIN in a new user+network namespace via unshare, bind an SCTP socket to INADDR_ANY, enable SCTP_AUTO_ASCONF, churn interface addresses to populate addr_waitq, and destroy the namespace; container tenants can trigger the same netns teardown without init-namespace root.\nUI:N - Exploitation is fully attacker-driven through scripted namespace create/configure/destroy and concurrent threads; no victim must mount filesystems, open files, or take any discretionary action beyond the attacker\u0027s own setup.\nS:U - The bug is kernel heap use-after-free of sctp_sockaddr_entry during netns teardown; impact is host kernel memory corruption and privilege escalation within the same kernel security authority, not a VM/hypervisor or IOMMU boundary crossing.\nC:H - sctp_addr_wq_timeout_handler() may walk addr_waitq and dereference sctp_sockaddr_entry fields after sctp_free_addr_wq() kfree()\u0027s those entries; UAF on freed heap objects enables kernel memory disclosure and supports further exploitation primitives.\nI:H - The timer handler calls sctp_asconf_mgmt() on corrupted addrw pointers (address family, sockaddr, state), driving ASCONF add/delete processing on freed memory; UAF heap corruption is exploitable for arbitrary kernel write and potential code execution.\nA:H - Use-after-free in sctp_addr_wq_timeout_handler() during list iteration, socket locking, and sctp_asconf_mgmt() can cause kernel oops or panic from accesses to freed sctp_sockaddr_entry memory, even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:46.181Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5098308ad72f83f3b1a48c247dddab1695114bae"
},
{
"url": "https://git.kernel.org/stable/c/d49eff15261dd62e4fa3a316c26cb1f537a60464"
},
{
"url": "https://git.kernel.org/stable/c/a8323fb2ab6cd6978f359daeed6688e0cadf32ba"
},
{
"url": "https://git.kernel.org/stable/c/c3e5cac47519d77ad36b9c03a1df1536aaa0c4a1"
},
{
"url": "https://git.kernel.org/stable/c/976c19de0f22a857ba0112f39635f8fd7a257568"
}
],
"title": "sctp: fix addr_wq_timer race in sctp_free_addr_wq()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72383",
"datePublished": "2026-08-15T05:56:14.755Z",
"dateReserved": "2026-08-09T03:40:39.923Z",
"dateUpdated": "2026-10-21T12:44:46.181Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46149 (GCVE-0-2026-46149)
Vulnerability from cvelistv5
Published
2026-05-28 09:36
Modified
2026-10-19 19:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show()
target_tg_pt_gp_members_show() formats LUN paths with snprintf() into a
256-byte stack buffer, then will memcpy() cur_len bytes from that
buffer. snprintf() returns the length the output would have had, which
can exceed the buffer size when the fabric WWN is long because iSCSI IQN
names can be up to 223 bytes. The check at the memcpy() site only
guards the destination page write, not the source read, so memcpy() will
read past the stack buffer and copy adjacent stack contents to the sysfs
reader, which when CONFIG_FORTIFY_SOURCE is enabled, fortify_panic()
will be triggered.
Commit 27e06650a5ea ("scsi: target: target_core_configfs: Add length
check to avoid buffer overflow") added the same bound to the
target_lu_gp_members_show() but the tg_pt_gp variant was missed so
resolve that here.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 Version: c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:20:49.126Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-46149",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:20:25.998388Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-126",
"description": "CWE-126 Buffer Over-read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T19:36:52.452Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/target/target_core_configfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d3cc9d490c207d57a289054397349f6f8c90354e",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "db0a4759d62cad4ff891e2d81ae4be73bb57f4a4",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "12f2201a56957ba020392223a7393a5eba080c1b",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "1f678d13e939f91840cb1ebe9b88544923539d3c",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "72cc5ea7ef32bb5fa38bf0dd2e56fcd73aa8c89e",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "00d91bfdce5033f5d9b4915638ae9b0553848b5d",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "e501154f9d82c95d2719bcbbaf679d8fd3226ef7",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
},
{
"lessThan": "772a896a56e0e3ef9424a025cec9176f9d8f4552",
"status": "affected",
"version": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/target/target_core_configfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.38"
},
{
"lessThan": "2.6.38",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.140",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.88",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.30",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.140",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.88",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.30",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.7",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.38",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show()\n\ntarget_tg_pt_gp_members_show() formats LUN paths with snprintf() into a\n256-byte stack buffer, then will memcpy() cur_len bytes from that\nbuffer. snprintf() returns the length the output would have had, which\ncan exceed the buffer size when the fabric WWN is long because iSCSI IQN\nnames can be up to 223 bytes. The check at the memcpy() site only\nguards the destination page write, not the source read, so memcpy() will\nread past the stack buffer and copy adjacent stack contents to the sysfs\nreader, which when CONFIG_FORTIFY_SOURCE is enabled, fortify_panic()\nwill be triggered.\n\nCommit 27e06650a5ea (\"scsi: target: target_core_configfs: Add length\ncheck to avoid buffer overflow\") added the same bound to the\ntarget_lu_gp_members_show() but the tg_pt_gp variant was missed so\nresolve that here."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerability is triggered by reading a configfs/sysfs attribute file (target/.../alua/tg_pt_gps/\u003cgrp\u003e/members); there is no network-reachable path and the formatted IQN comes from local admin config, so it requires local system access.\nAC:L - Given a target configured with a sufficiently long iSCSI IQN (the vulnerable configuration), simply reading the file deterministically triggers the out-of-bounds read/fortify_panic with no race or memory-layout dependency.\nPR:L - The members attribute is CONFIGFS_ATTR_RO (mode 0444, world-readable) with no capability check in the show path, so any unprivileged local user who can read the globally-mounted configfs file triggers it.\nUI:N - Exploitation is a single read() of the file with no victim/user interaction required.\nS:U - The impact (stack info leak / panic) stays within the kernel\u0027s own security authority with no crossing of a trust boundary such as a VM or IOMMU.\nC:H - The memcpy reads past the 256-byte stack buffer and copies adjacent kernel stack contents (potential pointers/canary) into the userspace-readable sysfs page, an out-of-bounds read disclosing kernel memory.\nI:N - The destination page write is bounded by the PAGE_SIZE check, so no kernel memory is modified; the bug is a read-only overflow providing no write primitive.\nA:H - With CONFIG_FORTIFY_SOURCE enabled, the over-read memcpy triggers fortify_panic(), causing a kernel panic (denial of service)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:30:02.477Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d3cc9d490c207d57a289054397349f6f8c90354e"
},
{
"url": "https://git.kernel.org/stable/c/db0a4759d62cad4ff891e2d81ae4be73bb57f4a4"
},
{
"url": "https://git.kernel.org/stable/c/12f2201a56957ba020392223a7393a5eba080c1b"
},
{
"url": "https://git.kernel.org/stable/c/1f678d13e939f91840cb1ebe9b88544923539d3c"
},
{
"url": "https://git.kernel.org/stable/c/72cc5ea7ef32bb5fa38bf0dd2e56fcd73aa8c89e"
},
{
"url": "https://git.kernel.org/stable/c/00d91bfdce5033f5d9b4915638ae9b0553848b5d"
},
{
"url": "https://git.kernel.org/stable/c/e501154f9d82c95d2719bcbbaf679d8fd3226ef7"
},
{
"url": "https://git.kernel.org/stable/c/772a896a56e0e3ef9424a025cec9176f9d8f4552"
}
],
"title": "scsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46149",
"datePublished": "2026-05-28T09:36:05.706Z",
"dateReserved": "2026-05-13T15:03:33.101Z",
"dateUpdated": "2026-10-19T19:36:52.452Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89931 (GCVE-0-2026-89931)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-19 08:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit
Always check and clear KVM_REQ_GET_NESTED_STATE_PAGES when emulating a
nested VM-Exit to ensure the request is cleared, even when KVM was built
with CONFIG_KVM_HYPERV=n, as KVM subtly relies on the "check" to clear
the flag and thus avoid double-mapping the vmcs12 pages, e.g. if KVM
manages to bail from VM-Enter without processing the request, and then
emulates VMLAUNCH or VMRESUME.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ae190f2439ca30067927077bf570d4c5edf07a0f",
"status": "affected",
"version": "b4f69df0f65e97fec439130a0d0a8b9c7cc02df2",
"versionType": "git"
},
{
"lessThan": "674a3244f07f323f21a106a7bdcaebb6db6a5058",
"status": "affected",
"version": "b4f69df0f65e97fec439130a0d0a8b9c7cc02df2",
"versionType": "git"
},
{
"lessThan": "bbec4adc2f340d85f4a77a9ddcddaa6b1f4639c5",
"status": "affected",
"version": "b4f69df0f65e97fec439130a0d0a8b9c7cc02df2",
"versionType": "git"
},
{
"lessThan": "11722439fb206c88e6f31be54173efa9880b4ccb",
"status": "affected",
"version": "b4f69df0f65e97fec439130a0d0a8b9c7cc02df2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit\n\nAlways check and clear KVM_REQ_GET_NESTED_STATE_PAGES when emulating a\nnested VM-Exit to ensure the request is cleared, even when KVM was built\nwith CONFIG_KVM_HYPERV=n, as KVM subtly relies on the \"check\" to clear\nthe flag and thus avoid double-mapping the vmcs12 pages, e.g. if KVM\nmanages to bail from VM-Enter without processing the request, and then\nemulates VMLAUNCH or VMRESUME."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:55:05.944Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ae190f2439ca30067927077bf570d4c5edf07a0f"
},
{
"url": "https://git.kernel.org/stable/c/674a3244f07f323f21a106a7bdcaebb6db6a5058"
},
{
"url": "https://git.kernel.org/stable/c/bbec4adc2f340d85f4a77a9ddcddaa6b1f4639c5"
},
{
"url": "https://git.kernel.org/stable/c/11722439fb206c88e6f31be54173efa9880b4ccb"
}
],
"title": "KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89931",
"datePublished": "2026-09-16T10:32:22.202Z",
"dateReserved": "2026-09-11T19:38:34.776Z",
"dateUpdated": "2026-10-19T08:55:05.944Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97573 (GCVE-0-2026-97573)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()
bnxt_rx_ring_reset() frees the ring buffers and then reallocates them,
ignoring the result.
bnxt_alloc_one_rx_ring() can fail in bnxt_alloc_one_tpa_info_data(), which
returns -ENOMEM on the first failed allocation and leaves the remaining
rxr->rx_tpa[] entries zeroed.
The error isn't propagated up, so the loop in bnxt_rx_ring_reset
continues and at the end the code re-enables TPA with partially
unallocated rx_tpa array.
This means that when the agg_id from hardware is mapped to a SW index in
rxr->rx_tpa[], an uninitialized slot can be chosen which would hand a
zero DMA address to the device.
Fix this by falling back to a global reset, which is what the existing
code already does when other functions fail, but unlike the other
failure cases this particular failure has to return because TPA can't
be re-enabled since the allocation failed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 Version: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52fc97cbc3ba118aad84e7c001bf02ebe8496f70",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "40b4a7bb6b0b872b45f017dbf211268de098b75c",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "1a3670b6a6b5679fe56c5890157b344f091e64f8",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "4a17c73c83798c2fa9c7920ad5a98803adce3e01",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "8b2fd5c0aeda935294159206af9d6179282d425a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "961e2a17c5e3559b3f8654d2daabdd25a42e770a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()\n\nbnxt_rx_ring_reset() frees the ring buffers and then reallocates them,\nignoring the result.\n\nbnxt_alloc_one_rx_ring() can fail in bnxt_alloc_one_tpa_info_data(), which\nreturns -ENOMEM on the first failed allocation and leaves the remaining\nrxr-\u003erx_tpa[] entries zeroed.\n\nThe error isn\u0027t propagated up, so the loop in bnxt_rx_ring_reset\ncontinues and at the end the code re-enables TPA with partially\nunallocated rx_tpa array.\n\nThis means that when the agg_id from hardware is mapped to a SW index in\nrxr-\u003erx_tpa[], an uninitialized slot can be chosen which would hand a\nzero DMA address to the device.\n\nFix this by falling back to a global reset, which is what the existing\ncode already does when other functions fail, but unlike the other\nfailure cases this particular failure has to return because TPA can\u0027t\nbe re-enabled since the allocation failed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The fixed function bnxt_rx_ring_reset() is a driver error path with no malformed input. What it damages is received data: bnxt_tpa_start() hands the NIC a stale rx_tpa[] mapping, and the NIC DMAs packet bytes sent by a remote host into that freed buffer. The remote peer supplies the data that gets written, so the vector is Network.\nAC:H - Two things must happen together. A pre-P5 chip must hit an RX buffer error, cons mismatch or ring-monitor event that schedules the per-ring reset, and the GFP_KERNEL refill in bnxt_alloc_one_tpa_info_data() must fail under memory pressure. A remote sender cannot force that allocation failure.\nPR:N - No authentication is involved. Any host that can send TCP traffic that the NIC aggregates with TPA (hardware GRO/LRO) fills the stale buffers and can also generate the traffic that leads to RX buffer errors.\nUI:N - No user action is needed. The reset runs from the bnxt sp_task workqueue, and the bad TPA slot is used as soon as TPA_START completions arrive.\nS:U - The corruption hits kernel memory on the host that owns the NIC, which is the same authority as the driver. No VM or other security boundary is crossed.\nC:H - bnxt_free_one_tpa_info_data() clears tpa_info-\u003edata but leaves tpa_info-\u003emapping stale. The NIC then writes into a page returned to page_pool that can be reused, and a reused buffer carrying other data can end up delivered as the next RX packet.\nI:H - The device DMA-writes TCP payload bytes chosen by the remote sender into freed memory (bnxt_tpa_start() puts the stale mapping into rx_bd_haddr). That is a write into memory the kernel may have reused, with attacker-chosen contents.\nA:H - The NULL tpa_info-\u003edata is moved into rx_buf_ring by bnxt_tpa_start(). When that buffer is consumed, the RX path dereferences NULL, and on top of that the stray DMA corrupts memory, so the kernel crashes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:35.902Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52fc97cbc3ba118aad84e7c001bf02ebe8496f70"
},
{
"url": "https://git.kernel.org/stable/c/40b4a7bb6b0b872b45f017dbf211268de098b75c"
},
{
"url": "https://git.kernel.org/stable/c/af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a"
},
{
"url": "https://git.kernel.org/stable/c/cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb"
},
{
"url": "https://git.kernel.org/stable/c/1a3670b6a6b5679fe56c5890157b344f091e64f8"
},
{
"url": "https://git.kernel.org/stable/c/4a17c73c83798c2fa9c7920ad5a98803adce3e01"
},
{
"url": "https://git.kernel.org/stable/c/8b2fd5c0aeda935294159206af9d6179282d425a"
},
{
"url": "https://git.kernel.org/stable/c/961e2a17c5e3559b3f8654d2daabdd25a42e770a"
}
],
"title": "bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97573",
"datePublished": "2026-09-25T10:21:57.443Z",
"dateReserved": "2026-09-24T16:01:01.156Z",
"dateUpdated": "2026-10-19T09:09:35.902Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89533 (GCVE-0-2026-89533)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Fix offset arithmetic in read_chunk_range
svc_rdma_read_chunk_range() walks a Read chunk's segment list to
build a sub-range starting at byte offset and spanning length bytes
for a Position-Zero or Call chunk. Two arithmetic defects in the
per-segment loop produce wrong DMA lengths and a u32 underflow:
pcl_for_each_segment(segment, chunk) {
if (offset > segment->rs_length) {
offset -= segment->rs_length;
continue;
}
dummy.rs_handle = segment->rs_handle;
dummy.rs_length = min_t(u32, length,
segment->rs_length) - offset;
dummy.rs_offset = segment->rs_offset + offset;
First, the skip predicate uses '>' instead of '>='. When offset
equals the segment's full rs_length, the segment is fully consumed
and should be skipped, but the loop falls through into the body.
The resulting dummy.rs_length is min_t(u32, length, rs_length) -
rs_length, which underflows to a near-UINT_MAX u32 when length is
smaller than rs_length, or is zero otherwise.
Second, the length formula subtracts offset from the min_t() result
rather than from segment->rs_length before the cap. For offset > 0
the segment's residual is rs_length - offset, not rs_length, so the
cap must be applied to the residual. With the current bracketing,
whenever length is smaller than rs_length - offset the per-segment
length becomes length - offset instead of length, silently dropping
offset bytes from the rebuilt chunk. Combined with the boundary
case above it also enables the u32 underflow path, which propagates
a huge nr_bvec into svc_rdma_build_read_segment() and a multi-MiB
kmalloc_array_node() in svc_rdma_get_rw_ctxt().
Additionally, svc_rdma_read_call_chunk() can invoke this function
with length == 0 when the last Read chunk ends exactly at the end
of the Call chunk. With the corrected >= predicate, every segment
is skipped and the function returns the initial -EINVAL, rejecting
a valid request. Return success immediately when length is zero.
Also break out of the loop once length is fully consumed to avoid
passing zero-length segments to svc_rdma_build_read_segment().
Fix by using '>=' so a fully-consumed segment is skipped, by
moving '- offset' inside min_t() so the cap is applied to the
segment's residual length, by returning success for zero-length
requests, and by stopping iteration when the requested range has
been consumed.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 Version: d7cc73972661be4a02a1b09f1d9b3283c6c05154 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89533",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:13.656876Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:41.551Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "10873311f91db9454e2fadbf9866bc819e0646d9",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "cba8543c18cf42fd80fd63effb6df6ff4f7e73ce",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "6ee4dc7476b3abc92ec1d444533a559f33f59561",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "a46b35f213c2426f5d6a0458a8f7e873fc59cdfd",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "4493c96bbd0068fadf69cbae8d13426202e34cdc",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
},
{
"lessThan": "4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e",
"status": "affected",
"version": "d7cc73972661be4a02a1b09f1d9b3283c6c05154",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.11"
},
{
"lessThan": "5.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsvcrdma: Fix offset arithmetic in read_chunk_range\n\nsvc_rdma_read_chunk_range() walks a Read chunk\u0027s segment list to\nbuild a sub-range starting at byte offset and spanning length bytes\nfor a Position-Zero or Call chunk. Two arithmetic defects in the\nper-segment loop produce wrong DMA lengths and a u32 underflow:\n\n pcl_for_each_segment(segment, chunk) {\n if (offset \u003e segment-\u003ers_length) {\n offset -= segment-\u003ers_length;\n continue;\n }\n\n dummy.rs_handle = segment-\u003ers_handle;\n dummy.rs_length = min_t(u32, length,\n segment-\u003ers_length) - offset;\n dummy.rs_offset = segment-\u003ers_offset + offset;\n\nFirst, the skip predicate uses \u0027\u003e\u0027 instead of \u0027\u003e=\u0027. When offset\nequals the segment\u0027s full rs_length, the segment is fully consumed\nand should be skipped, but the loop falls through into the body.\nThe resulting dummy.rs_length is min_t(u32, length, rs_length) -\nrs_length, which underflows to a near-UINT_MAX u32 when length is\nsmaller than rs_length, or is zero otherwise.\n\nSecond, the length formula subtracts offset from the min_t() result\nrather than from segment-\u003ers_length before the cap. For offset \u003e 0\nthe segment\u0027s residual is rs_length - offset, not rs_length, so the\ncap must be applied to the residual. With the current bracketing,\nwhenever length is smaller than rs_length - offset the per-segment\nlength becomes length - offset instead of length, silently dropping\noffset bytes from the rebuilt chunk. Combined with the boundary\ncase above it also enables the u32 underflow path, which propagates\na huge nr_bvec into svc_rdma_build_read_segment() and a multi-MiB\nkmalloc_array_node() in svc_rdma_get_rw_ctxt().\n\nAdditionally, svc_rdma_read_call_chunk() can invoke this function\nwith length == 0 when the last Read chunk ends exactly at the end\nof the Call chunk. With the corrected \u003e= predicate, every segment\nis skipped and the function returns the initial -EINVAL, rejecting\na valid request. Return success immediately when length is zero.\nAlso break out of the loop once length is fully consumed to avoid\npassing zero-length segments to svc_rdma_build_read_segment().\n\nFix by using \u0027\u003e=\u0027 so a fully-consumed segment is skipped, by\nmoving \u0027- offset\u0027 inside min_t() so the cap is applied to the\nsegment\u0027s residual length, by returning success for zero-length\nrequests, and by stopping iteration when the requested range has\nbeen consumed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - svcrdma is nfsd\u0027s RPC-over-RDMA server transport; a remote peer reaches svc_rdma_read_chunk_range() by sending a Call with a Position-Zero/Call chunk and Read list over routable iWARP or RoCEv2, matching prior kernel CNA scores for this subsystem.\nAC:L - The attacker fully controls Call-chunk segment lengths and Read-chunk positions and can place a Read chunk on a segment boundary with a smaller remaining range so dummy.rs_length underflows a u32 deterministically, with no race or uncontrollable layout.\nPR:N - svc_rdma_process_read_list() runs in svc_rdma_recvfrom() while assembling the transport message, before svc_process() performs RPC or NFS authentication, and RDMA CM accept has no credential check.\nUI:N - Sending a crafted RPC-over-RDMA message with a malicious Call chunk and Read list to an already-listening NFS/RDMA service is sufficient; no victim mount, click, or other user action is required.\nS:U - The vulnerable NFS/RDMA service and affected kernel memory belong to the same host kernel security authority; this is not a VM, IOMMU, or sandbox escape.\nC:H - The underflowed length is added to rc_readbytes and, when Reads complete, svc_rdma_read_complete_pzrc() sets xdr_buf.page_len to a near-4GiB value, so XDR walks far past the rq_pages allocation and reads adjacent kernel heap as page pointers.\nI:H - XDR helpers such as xdr_buf_pages_zero() kmap and memset through that inflated page_len, writing via out-of-bounds page pointers taken from adjacent slab, a kernel integrity and control-flow hijack primitive.\nA:H - On the scatterlist path PAGE_ALIGN wrapping to 0 hits sg_alloc_table_chained(0) which BUG_ON(!nents) and panics; the huge page_len walk oopses on invalid pages, and an unauthenticated peer can repeat this per request."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:24.875Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/10873311f91db9454e2fadbf9866bc819e0646d9"
},
{
"url": "https://git.kernel.org/stable/c/addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7"
},
{
"url": "https://git.kernel.org/stable/c/cba8543c18cf42fd80fd63effb6df6ff4f7e73ce"
},
{
"url": "https://git.kernel.org/stable/c/6ee4dc7476b3abc92ec1d444533a559f33f59561"
},
{
"url": "https://git.kernel.org/stable/c/a46b35f213c2426f5d6a0458a8f7e873fc59cdfd"
},
{
"url": "https://git.kernel.org/stable/c/4493c96bbd0068fadf69cbae8d13426202e34cdc"
},
{
"url": "https://git.kernel.org/stable/c/4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e"
}
],
"title": "svcrdma: Fix offset arithmetic in read_chunk_range",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89533",
"datePublished": "2026-09-11T19:44:12.236Z",
"dateReserved": "2026-09-11T19:38:34.720Z",
"dateUpdated": "2026-10-19T08:48:24.875Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74363 (GCVE-0-2026-74363)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: fix UAF by restoring RCU-delayed inode freeing in bpffs
commit 4f375ade6aa9 ("bpf: Avoid RCU context warning when unpinning
htab with internal structs") moved inode cleanup from ->free_inode()
into ->destroy_inode() to avoid sleeping in RCU context when calling
bpf_any_put(). However this removed the RCU delay on freeing the
inode itself and the cached symlink body (i_link), both of which
can be accessed by RCU pathwalk (pick_link, may_lookup etc.).
This causes a use-after-free when a concurrent unlinkat() drops the
last inode reference and destroy_inode() frees the inode immediately,
while another task is still walking the path in RCU mode and reads
inode->i_opflags (offset +2) inside current_time() -> is_mgtime().
KASAN reports:
BUG: KASAN: slab-use-after-free in is_mgtime include/linux/fs.h:2313
Read of size 2 at addr ffff8880407e4282 (offset +2 = i_opflags)
The rules (per Al Viro):
->destroy_inode() called immediately, can sleep, use for blocking
cleanup e.g. bpf_any_put()
->free_inode() called after RCU grace period, use for freeing
inode and anything RCU-accessible e.g. i_link
Fix: split the two concerns properly:
- keep bpf_any_put() in bpf_destroy_inode() since it is blocking
and needs to run promptly
- introduce bpf_free_inode() to handle kfree(i_link) and
free_inode_nonrcu() with proper RCU delay, preventing the UAF
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e28616ca3d67e745ecb2f10eba4a626e1fc9a203 Version: 743a620c661994c7f0938e6dd32fb0883fb1e0ea Version: b6e9645be9eb93f7aff3ca887f8edb6f1d63358f Version: ee04cff9ed4d6bb25802f5cecfcd0750500410f3 Version: 4f375ade6aa9f37fd72d7a78682f639772089eed Version: 4f375ade6aa9f37fd72d7a78682f639772089eed Version: 4f375ade6aa9f37fd72d7a78682f639772089eed Version: de2d2baecc84cc7fca52eec2b9b55d89c93e3565 Version: 5.15.195 ≤ Version: 6.1.157 ≤ Version: 6.6.113 ≤ Version: 6.12.54 ≤ Version: 6.17.4 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74363",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:54:33.862725Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:35.622Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/bpf/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ea1c243c39e32b7fc1c2edfe32081ff7e30a877c",
"status": "affected",
"version": "e28616ca3d67e745ecb2f10eba4a626e1fc9a203",
"versionType": "git"
},
{
"lessThan": "5fecb71c10c28aef276ba49c718dc961745fdcf0",
"status": "affected",
"version": "743a620c661994c7f0938e6dd32fb0883fb1e0ea",
"versionType": "git"
},
{
"lessThan": "c70d0f9114c3cc156f6029a400c4eb7e6f7c82b2",
"status": "affected",
"version": "b6e9645be9eb93f7aff3ca887f8edb6f1d63358f",
"versionType": "git"
},
{
"lessThan": "53649846e0437d1d9b7cb993cfe54c367addf7ae",
"status": "affected",
"version": "ee04cff9ed4d6bb25802f5cecfcd0750500410f3",
"versionType": "git"
},
{
"lessThan": "61f19729728243c82476dee31315143ed3275e7f",
"status": "affected",
"version": "4f375ade6aa9f37fd72d7a78682f639772089eed",
"versionType": "git"
},
{
"lessThan": "0497ff765746d9b2d17445c8f7cc737b36c0152a",
"status": "affected",
"version": "4f375ade6aa9f37fd72d7a78682f639772089eed",
"versionType": "git"
},
{
"lessThan": "b93c55b4932dd7e32dca8cf34a3443cc87a02906",
"status": "affected",
"version": "4f375ade6aa9f37fd72d7a78682f639772089eed",
"versionType": "git"
},
{
"status": "affected",
"version": "de2d2baecc84cc7fca52eec2b9b55d89c93e3565",
"versionType": "git"
},
{
"lessThan": "5.15.212",
"status": "affected",
"version": "5.15.195",
"versionType": "semver"
},
{
"lessThan": "6.1.178",
"status": "affected",
"version": "6.1.157",
"versionType": "semver"
},
{
"lessThan": "6.6.145",
"status": "affected",
"version": "6.6.113",
"versionType": "semver"
},
{
"lessThan": "6.12.97",
"status": "affected",
"version": "6.12.54",
"versionType": "semver"
},
{
"lessThan": "6.18",
"status": "affected",
"version": "6.17.4",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/bpf/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.18"
},
{
"lessThan": "6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15.195",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "6.1.157",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6.113",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.12.54",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.17.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: fix UAF by restoring RCU-delayed inode freeing in bpffs\n\ncommit 4f375ade6aa9 (\"bpf: Avoid RCU context warning when unpinning\nhtab with internal structs\") moved inode cleanup from -\u003efree_inode()\ninto -\u003edestroy_inode() to avoid sleeping in RCU context when calling\nbpf_any_put(). However this removed the RCU delay on freeing the\ninode itself and the cached symlink body (i_link), both of which\ncan be accessed by RCU pathwalk (pick_link, may_lookup etc.).\n\nThis causes a use-after-free when a concurrent unlinkat() drops the\nlast inode reference and destroy_inode() frees the inode immediately,\nwhile another task is still walking the path in RCU mode and reads\ninode-\u003ei_opflags (offset +2) inside current_time() -\u003e is_mgtime().\n\nKASAN reports:\n BUG: KASAN: slab-use-after-free in is_mgtime include/linux/fs.h:2313\n Read of size 2 at addr ffff8880407e4282 (offset +2 = i_opflags)\n\nThe rules (per Al Viro):\n -\u003edestroy_inode() called immediately, can sleep, use for blocking\n cleanup e.g. bpf_any_put()\n -\u003efree_inode() called after RCU grace period, use for freeing\n inode and anything RCU-accessible e.g. i_link\n\nFix: split the two concerns properly:\n - keep bpf_any_put() in bpf_destroy_inode() since it is blocking\n and needs to run promptly\n - introduce bpf_free_inode() to handle kfree(i_link) and\n free_inode_nonrcu() with proper RCU delay, preventing the UAF"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is triggered through local VFS and bpf(2) syscalls on bpffs (unlinkat/symlinkat/openat/stat and BPF_OBJ_GET/BPF_OBJ_PIN) racing RCU pathwalk; BPF/bpffs is not reachable from remote network services.\nAC:L - Exploitation requires a race between unlinkat dropping the last bpffs inode reference and concurrent RCU pathwalk, but the attacker controls both sides with parallel threads/syscalls and syzbot reliably reproduces the UAF without external timing.\nPR:L - Any local user with write access to a bpffs mount (default sticky world-writable /sys/fs/bpf) can create symlinks or pin/unpin BPF objects without init-namespace root, including via unprivileged BPF or delegated bpffs mounts in user namespaces.\nUI:N - No victim action is required; the attacker programmatically races their own unlink/pathwalk operations on bpffs objects they can create and remove.\nS:U - This is a kernel heap use-after-free in bpffs inode lifetime management, enabling local privilege escalation within the same security domain rather than crossing VM, IOMMU, or sandbox boundaries.\nC:H - KASAN confirmed slab use-after-free reading freed inode-\u003ei_opflags during RCU pathwalk; UAF of struct inode enables subsequent arbitrary kernel memory disclosure via heap reuse.\nI:H - Premature inode freeing permits attacker-controlled heap reuse and spraying, providing a standard kernel UAF path to arbitrary write and potential code execution beyond the initial 2-byte read.\nA:H - Concurrent RCU pathwalk of a prematurely freed bpffs inode triggers KASAN slab-UAF and kernel oops; repeated triggering can panic the system or cause denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:21.981Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ea1c243c39e32b7fc1c2edfe32081ff7e30a877c"
},
{
"url": "https://git.kernel.org/stable/c/5fecb71c10c28aef276ba49c718dc961745fdcf0"
},
{
"url": "https://git.kernel.org/stable/c/c70d0f9114c3cc156f6029a400c4eb7e6f7c82b2"
},
{
"url": "https://git.kernel.org/stable/c/53649846e0437d1d9b7cb993cfe54c367addf7ae"
},
{
"url": "https://git.kernel.org/stable/c/61f19729728243c82476dee31315143ed3275e7f"
},
{
"url": "https://git.kernel.org/stable/c/0497ff765746d9b2d17445c8f7cc737b36c0152a"
},
{
"url": "https://git.kernel.org/stable/c/b93c55b4932dd7e32dca8cf34a3443cc87a02906"
}
],
"title": "bpf: fix UAF by restoring RCU-delayed inode freeing in bpffs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74363",
"datePublished": "2026-08-15T05:58:46.220Z",
"dateReserved": "2026-08-15T05:44:03.887Z",
"dateUpdated": "2026-10-16T18:55:35.622Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68141 (GCVE-0-2026-68141)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/af_iucv: fix NULL deref in afiucv_hs_callback_syn()
afiucv_hs_callback_syn() allocates the child socket with GFP_ATOMIC.
If the allocation fails, nsk is NULL.
The connection-refused path is entered when the listen state check
fails, the accept backlog is full, or nsk is NULL. The code
unconditionally calls iucv_sock_kill(nsk) in that path.
iucv_sock_kill() does not accept a NULL socket pointer and immediately
dereferences sk via sock_flag(sk, SOCK_ZAPPED). When nsk is NULL,
calling iucv_sock_kill(nsk) results in a NULL pointer dereference.
Only call iucv_sock_kill() when a child socket was successfully
allocated.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b Version: 3881ac441f642d56503818123446f7298442236b |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68141",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:44:37.607380Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "CWE-476 NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:53.262Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/iucv/af_iucv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6a1eb5b46c19073f8153b7e2c19b408cf353aaf1",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "c0b6e2ae90613c2fea7eaf3faa20985c6c2a1953",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "07e21deb3664001995e0a456dd627ab7dbe127ec",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "8bb111f87ded6acb9837ec9b45d6f02cda94c51f",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "46453b16f38ec7147351f7447e2aec6ea330f7b3",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "33736ff5e7c97d3348ce812e8bd2e125d840743c",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "0e857185591fe79934427c9c0c1c31dc776be134",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
},
{
"lessThan": "47a5116e56a6b6fe1e909f244e39cd0fc26ceee4",
"status": "affected",
"version": "3881ac441f642d56503818123446f7298442236b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/iucv/af_iucv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/af_iucv: fix NULL deref in afiucv_hs_callback_syn()\n\nafiucv_hs_callback_syn() allocates the child socket with GFP_ATOMIC.\nIf the allocation fails, nsk is NULL.\n\nThe connection-refused path is entered when the listen state check\nfails, the accept backlog is full, or nsk is NULL. The code\nunconditionally calls iucv_sock_kill(nsk) in that path.\n\niucv_sock_kill() does not accept a NULL socket pointer and immediately\ndereferences sk via sock_flag(sk, SOCK_ZAPPED). When nsk is NULL,\ncalling iucv_sock_kill(nsk) results in a NULL pointer dereference.\n\nOnly call iucv_sock_kill() when a child socket was successfully\nallocated."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached from afiucv_hs_rcv() via dev_add_pack() when ETH_P_AF_IUCV SYN frames arrive on a HiperSockets netdev in netif RX softirq; a remote LPAR/guest on the IBM Z HiperSockets fabric can send these connection requests without local access.\nAC:L - An attacker can repeatedly send SYN packets to a listening AF_IUCV service to pressure GFP_ATOMIC socket allocations until iucv_sock_alloc() fails and the broken connection-refused path runs; no timing race or victim-specific state beyond routine memory pressure is required.\nPR:N - Exploitation requires only sending unauthenticated HiperSockets SYN traffic to a bound/listening AF_IUCV socket; the handshake path has no credential checks and the af_iucv code performs no capability or permission validation before reaching afiucv_hs_callback_syn().\nUI:N - Triggering the NULL dereference needs no action from an end user beyond a service already listening on HiperSockets; the attacker can initiate SYN packets remotely without victim interaction.\nS:U - Impact is a kernel NULL pointer dereference and likely oops/panic in the victim LPAR kernel; it does not cross a VM/host, IOMMU, or sandbox boundary to compromise a different security authority.\nC:N - The failure is an immediate NULL pointer dereference in sock_flag() inside iucv_sock_kill(); there is no memory corruption, out-of-bounds access, or use-after-free that could yield information disclosure.\nI:N - The bug does not write attacker-controlled data or corrupt kernel structures; it only dereferences a NULL socket pointer during cleanup, so no integrity impact or code-execution primitive is created.\nA:H - A NULL dereference in afiucv_hs_callback_syn() during softirq packet processing can cause a kernel oops or panic, denying all service on the affected IBM Z LPAR until reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:29:59.584Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6a1eb5b46c19073f8153b7e2c19b408cf353aaf1"
},
{
"url": "https://git.kernel.org/stable/c/c0b6e2ae90613c2fea7eaf3faa20985c6c2a1953"
},
{
"url": "https://git.kernel.org/stable/c/07e21deb3664001995e0a456dd627ab7dbe127ec"
},
{
"url": "https://git.kernel.org/stable/c/8bb111f87ded6acb9837ec9b45d6f02cda94c51f"
},
{
"url": "https://git.kernel.org/stable/c/46453b16f38ec7147351f7447e2aec6ea330f7b3"
},
{
"url": "https://git.kernel.org/stable/c/33736ff5e7c97d3348ce812e8bd2e125d840743c"
},
{
"url": "https://git.kernel.org/stable/c/0e857185591fe79934427c9c0c1c31dc776be134"
},
{
"url": "https://git.kernel.org/stable/c/47a5116e56a6b6fe1e909f244e39cd0fc26ceee4"
}
],
"title": "net/af_iucv: fix NULL deref in afiucv_hs_callback_syn()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68141",
"datePublished": "2026-08-10T11:59:05.051Z",
"dateReserved": "2026-07-30T09:28:09.370Z",
"dateUpdated": "2026-10-19T20:58:53.262Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72444 (GCVE-0-2026-72444)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
flow_dissector: check device type before reading ETH_ADDRS
__skb_flow_dissect() unconditionally reads 12 bytes from eth_hdr(skb)
when FLOW_DISSECTOR_KEY_ETH_ADDRS is requested. This assumes the skb
has a valid Ethernet header at mac_header, which is not always the case.
The problem can be triggered by:
1. Creating a TUN device in L3 mode (IFF_TUN, hard_header_len=0)
2. Attaching a multiq qdisc with a flower filter matching on eth_src
3. Sending a packet through AF_PACKET
Since TUN in L3 mode has no link-layer header, mac_header points to
the L3 data area. The flow dissector reads 12 bytes of uninitialized
skb memory, which then propagates through fl_set_masked_key() and is
used as a rhashtable lookup key in __fl_lookup(), as reported by KMSAN.
Rejecting the filter in the control path (at tc filter add time) is
not feasible because TC filter blocks can be shared between arbitrary
devices -- a filter installed on an Ethernet device may later classify
packets on a headerless device through a shared block. The device
association is not fixed at filter creation time.
Fix this by gating the memcpy on dev->type == ARPHRD_ETHER, which
ensures only true Ethernet-framed packets have their addresses read.
This is more precise than the previous hard_header_len >= 12 check,
which would incorrectly pass for non-Ethernet link types like IPoIB
(ARPHRD_INFINIBAND, hard_header_len=24) and FDDI (hard_header_len=21)
whose L2 headers are not in Ethernet format. Additionally check
skb_mac_header_was_set() to guard against the pathological case where
mac_header is the unset sentinel (~0U), which would cause eth_hdr() to
return a wild pointer.
For the act_mirred redirect case (Ethernet packet redirected to a
non-Ethernet device sharing a TC block), zeroing the key is the correct
behavior: the packet is now being classified on the target device, where
Ethernet address matching is not semantically meaningful.
Note: on non-Ethernet devices, the zeroed key will match a filter
configured with all-zero MAC addresses. This is an improvement over the
previous behavior where uninitialized memory could randomly match any
filter.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 67a900cc0436d74e7ff89042371760def087680d Version: 67a900cc0436d74e7ff89042371760def087680d Version: 67a900cc0436d74e7ff89042371760def087680d Version: 67a900cc0436d74e7ff89042371760def087680d Version: 67a900cc0436d74e7ff89042371760def087680d Version: 67a900cc0436d74e7ff89042371760def087680d |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72444",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:08.470597Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:24.524Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/flow_dissector.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0fe6455b8e1a22414f39c07bc90a1df12b52ec74",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
},
{
"lessThan": "9a65860959db594dfc1820c7fdc09285fb7556bf",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
},
{
"lessThan": "594c90b197141944f25991b8314de5c26ee27a7e",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
},
{
"lessThan": "c6d3bcb0f934d4297ac5fa1c8656ae40694fb601",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
},
{
"lessThan": "825de39f0c35a112148799b3cbe45af3766c018a",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
},
{
"lessThan": "bf6e8af2c8be77489bedeae9f8a9654cb710e500",
"status": "affected",
"version": "67a900cc0436d74e7ff89042371760def087680d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/flow_dissector.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nflow_dissector: check device type before reading ETH_ADDRS\n\n__skb_flow_dissect() unconditionally reads 12 bytes from eth_hdr(skb)\nwhen FLOW_DISSECTOR_KEY_ETH_ADDRS is requested. This assumes the skb\nhas a valid Ethernet header at mac_header, which is not always the case.\n\nThe problem can be triggered by:\n 1. Creating a TUN device in L3 mode (IFF_TUN, hard_header_len=0)\n 2. Attaching a multiq qdisc with a flower filter matching on eth_src\n 3. Sending a packet through AF_PACKET\n\nSince TUN in L3 mode has no link-layer header, mac_header points to\nthe L3 data area. The flow dissector reads 12 bytes of uninitialized\nskb memory, which then propagates through fl_set_masked_key() and is\nused as a rhashtable lookup key in __fl_lookup(), as reported by KMSAN.\n\nRejecting the filter in the control path (at tc filter add time) is\nnot feasible because TC filter blocks can be shared between arbitrary\ndevices -- a filter installed on an Ethernet device may later classify\npackets on a headerless device through a shared block. The device\nassociation is not fixed at filter creation time.\n\nFix this by gating the memcpy on dev-\u003etype == ARPHRD_ETHER, which\nensures only true Ethernet-framed packets have their addresses read.\nThis is more precise than the previous hard_header_len \u003e= 12 check,\nwhich would incorrectly pass for non-Ethernet link types like IPoIB\n(ARPHRD_INFINIBAND, hard_header_len=24) and FDDI (hard_header_len=21)\nwhose L2 headers are not in Ethernet format. Additionally check\nskb_mac_header_was_set() to guard against the pathological case where\nmac_header is the unset sentinel (~0U), which would cause eth_hdr() to\nreturn a wild pointer.\n\nFor the act_mirred redirect case (Ethernet packet redirected to a\nnon-Ethernet device sharing a TC block), zeroing the key is the correct\nbehavior: the packet is now being classified on the target device, where\nEthernet address matching is not semantically meaningful.\n\nNote: on non-Ethernet devices, the zeroed key will match a filter\nconfigured with all-zero MAC addresses. This is an improvement over the\nprevious behavior where uninitialized memory could randomly match any\nfilter."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is hit from TC flower classification (fl_classify) on packets injected locally via AF_PACKET through an L3 TUN with mq/flower qdisc; per kernel guidance TC/netlink qdisc paths are Local, not remotely reachable network stack handlers.\nAC:L - Syzbot and the fix commit show reliable reproduction by creating an L3 TUN, attaching a multiq qdisc with a flower eth_src filter, and sending packets via AF_PACKET; the attacker controls every setup step with no races or rare kernel config.\nPR:L - Exploitation requires CAP_NET_ADMIN to create/configure the TUN and install TC flower filters via rtnetlink, plus CAP_NET_RAW for AF_PACKET sockets; both capabilities are obtainable by an unprivileged user inside a user+network namespace (unshare -Urn).\nUI:N - No victim user action is required; exploitation uses attacker-controlled local syscalls (TUN ioctl, rtnetlink TC setup, AF_PACKET sendmsg) in a namespace they create.\nS:U - Impact stays within the kernel networking/TC subsystem of the host or attacker-controlled namespace; it does not cross VM, sandbox, or IOMMU security boundaries.\nC:H - __skb_flow_dissect copies 12 bytes from eth_hdr(skb) when FLOW_DISSECTOR_KEY_ETH_ADDRS is set; on headerless devices (L3 TUN, ARPHRD_NONE) mac_header points at L3 data or unset headroom, leaking uninitialized or out-of-bounds kernel memory into flow keys used by __fl_lookup.\nI:H - Garbage eth address keys flow through fl_set_masked_key into rhashtable lookup and can spuriously match flower filters, invoking unintended TC actions (police drop, skb mark, act_mirred redirect) that alter packet handling beyond the attacker\u0027s own data.\nA:H - When mac_header is the unset sentinel (~0U), eth_hdr() becomes a wild pointer and the memcpy can page-fault with a kernel oops/panic; even without fault, mis-matched filters can apply drop/redirect actions that deny or disrupt packet delivery."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:16.441Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0fe6455b8e1a22414f39c07bc90a1df12b52ec74"
},
{
"url": "https://git.kernel.org/stable/c/9a65860959db594dfc1820c7fdc09285fb7556bf"
},
{
"url": "https://git.kernel.org/stable/c/594c90b197141944f25991b8314de5c26ee27a7e"
},
{
"url": "https://git.kernel.org/stable/c/c6d3bcb0f934d4297ac5fa1c8656ae40694fb601"
},
{
"url": "https://git.kernel.org/stable/c/825de39f0c35a112148799b3cbe45af3766c018a"
},
{
"url": "https://git.kernel.org/stable/c/bf6e8af2c8be77489bedeae9f8a9654cb710e500"
}
],
"title": "flow_dissector: check device type before reading ETH_ADDRS",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72444",
"datePublished": "2026-08-15T05:56:55.229Z",
"dateReserved": "2026-08-09T03:40:39.930Z",
"dateUpdated": "2026-10-16T18:55:24.524Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64388 (GCVE-0-2026-64388)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: fix chown/chgrp with SMB3 POSIX Extensions
Ownership (chown) and group (chgrp) modifications were being ignored when
mounting with SMB3 POSIX Extensions unless CIFS_MOUNT_CIFS_ACL or
CIFS_MOUNT_MODE_FROM_SID were also explicitly set.
Fix this by checking for posix_extensions in cifs_setattr_nounix() when
updating UID and GID, ensuring that id_mode_to_cifs_acl() is called to map
and set the ownership/group information on the server.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64388",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:40:07.284651Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-682",
"description": "CWE-682 Incorrect Calculation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:26.851Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6825a45f6b8ef76b0ee32649ec3d6e39ca143a18",
"status": "affected",
"version": "b326614ea2159ea5c835d320f261d05d080cd201",
"versionType": "git"
},
{
"lessThan": "27ead8c5418af6bfab711079fecb9414d78d4cae",
"status": "affected",
"version": "b326614ea2159ea5c835d320f261d05d080cd201",
"versionType": "git"
},
{
"lessThan": "3eaec47518e126e6dcd1a48521d740278073f0ec",
"status": "affected",
"version": "b326614ea2159ea5c835d320f261d05d080cd201",
"versionType": "git"
},
{
"lessThan": "550cfb8a81181331d4d0f76ab75ee58a0bf41e3e",
"status": "affected",
"version": "b326614ea2159ea5c835d320f261d05d080cd201",
"versionType": "git"
},
{
"lessThan": "760ef2c579c2609cf17fb1cd5392f64d42d43d33",
"status": "affected",
"version": "b326614ea2159ea5c835d320f261d05d080cd201",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.18"
},
{
"lessThan": "4.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: fix chown/chgrp with SMB3 POSIX Extensions\n\nOwnership (chown) and group (chgrp) modifications were being ignored when\nmounting with SMB3 POSIX Extensions unless CIFS_MOUNT_CIFS_ACL or\nCIFS_MOUNT_MODE_FROM_SID were also explicitly set.\n\nFix this by checking for posix_extensions in cifs_setattr_nounix() when\nupdating UID and GID, ensuring that id_mode_to_cifs_acl() is called to map\nand set the ownership/group information on the server."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable branch is reached through local chown/chgrp syscalls on an already mounted SMB3 POSIX share; unsolicited SMB traffic cannot invoke it.\nAC:L - With the affected mount configuration, the client deterministically skips the ownership update and returns success; no race, heap layout, or uncontrollable timing is required.\nPR:L - A basic local user can exercise the path on accessible share objects, and noperm deliberately defers authorization to the server whose ownership check is bypassed because no request is sent. The attacker need not create the mount.\nUI:N - The attacker can invoke the syscall directly and exploit continued rights or falsely cached ownership through automated services without human action.\nS:U - The defect affects resources governed through the vulnerable kernel and mounted share without escaping a VM, sandbox, or other distinct security authority.\nC:H - Because the intended ownership change never reaches the server, the prior owner or group can retain read access to an entire data tree believed to have been transferred or revoked.\nI:H - The prior owner can retain arbitrary modification rights, while falsely cached privileged ownership can cause privileged consumers to trust or execute attacker-controlled content.\nA:H - Retained ownership of writable files or directories can permit truncation or deletion of an entire service data tree, and privileged execution through false ownership can cause a complete outage."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:18.915Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6825a45f6b8ef76b0ee32649ec3d6e39ca143a18"
},
{
"url": "https://git.kernel.org/stable/c/27ead8c5418af6bfab711079fecb9414d78d4cae"
},
{
"url": "https://git.kernel.org/stable/c/3eaec47518e126e6dcd1a48521d740278073f0ec"
},
{
"url": "https://git.kernel.org/stable/c/550cfb8a81181331d4d0f76ab75ee58a0bf41e3e"
},
{
"url": "https://git.kernel.org/stable/c/760ef2c579c2609cf17fb1cd5392f64d42d43d33"
}
],
"title": "smb/client: fix chown/chgrp with SMB3 POSIX Extensions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64388",
"datePublished": "2026-07-25T08:50:36.202Z",
"dateReserved": "2026-07-19T15:36:31.784Z",
"dateUpdated": "2026-10-21T12:43:18.915Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97421 (GCVE-0-2026-97421)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-10-03 10:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/umem: Be careful about boundary conditions in ib_umem_find_best_pgsz()
Several corner cases, especially important on 32 bits:
- umem->iova is u64, the function argument should pass in u64 or
iova will be truncated
- Check that the length is not too large for the iova
- Check that lengths > 4G don't overflow the GENMASK
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: a40c20dabdf9045270767c75918feb67f0727c89 Version: 85e40ba1c4a5246b35e91c2ed69d4680426904d7 Version: 59f07434b297e2268f5d5c567db5b09145245cf1 Version: 488229b7729d7becf4c39c5e74fb709fb35115c2 Version: 5.4.73 ≤ Version: 5.8.17 ≤ Version: 5.9.2 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/umem.c",
"include/rdma/ib_umem.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3014da7587ce006cd08004fd6b257626b314e0a3",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"lessThan": "ddccf6cc3861de2fe60986933bead79220e0d797",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"lessThan": "e9bbb5f5349ef560ff6f0395564f04c3aa664559",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"lessThan": "ae3cf7d2c4d506c5c91746321644e1a08d989e2a",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"lessThan": "5fc5b73109540809b094710fac44da81dd8a3ff8",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"lessThan": "09ea6837a0434fb4db99528a5055b6d822135dcf",
"status": "affected",
"version": "a40c20dabdf9045270767c75918feb67f0727c89",
"versionType": "git"
},
{
"status": "affected",
"version": "85e40ba1c4a5246b35e91c2ed69d4680426904d7",
"versionType": "git"
},
{
"status": "affected",
"version": "59f07434b297e2268f5d5c567db5b09145245cf1",
"versionType": "git"
},
{
"status": "affected",
"version": "488229b7729d7becf4c39c5e74fb709fb35115c2",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.73",
"versionType": "semver"
},
{
"lessThan": "5.9",
"status": "affected",
"version": "5.8.17",
"versionType": "semver"
},
{
"lessThan": "5.10",
"status": "affected",
"version": "5.9.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/umem.c",
"include/rdma/ib_umem.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.73",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.9.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/umem: Be careful about boundary conditions in ib_umem_find_best_pgsz()\n\nSeveral corner cases, especially important on 32 bits:\n\n- umem-\u003eiova is u64, the function argument should pass in u64 or\n iova will be truncated\n- Check that the length is not too large for the iova\n- Check that lengths \u003e 4G don\u0027t overflow the GENMASK"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Attacker-controlled cmd.hca_va and cmd.length reach ib_umem_find_best_pgsz() via open of /dev/infiniband/uverbsX, then ib_uverbs_write(IB_USER_VERBS_CMD_REG_MR)/ib_uverbs_reg_mr() or UVERBS_METHOD_REG_MR ioctl, then pd-\u003eops.reg_user_mr() (mlx5_ib_reg_user_mr/irdma_reg_user_mr/efa_register_mr). Remote RDMA packets do not supply virt or umem-\u003elength.\nAC:L - ib_uverbs_reg_mr() only requires (start \u0026 ~PAGE_MASK)==(hca_va \u0026 ~PAGE_MASK), so the attacker picks hca_va near 2^63 or U64_MAX with a small pinned region and makes (umem-\u003elength-1+virt) overflow or bits_per() return BITS_PER_LONG, hitting the unguarded GENMASK() deterministically with no race.\nPR:L - uverbs_devnode() creates /dev/infiniband/uverbs* mode 0666 and ib_uverbs_open() has no capability check (only rdma_dev_access_netns). ib_umem_get_va() needs can_do_mlock() (RLIMIT_MEMLOCK!=0) and ib_check_mr_access(); CAP_SYS_ADMIN/CAP_IPC_LOCK are not required.\nUI:N - After opening uverbs the attacker allocates a PD and issues IB_USER_VERBS_CMD_REG_MR or UVERBS_METHOD_REG_MR with their own start, length, and hca_va; no victim mount or other user action is required.\nS:U - A wrong page size or truncated umem-\u003eiova from ib_umem_find_best_pgsz() misprograms that host\u0027s RDMA MTT/PBL. This stays in the kernel/device memory-management authority and is not a KVM/Xen guest-to-host escape or IOMMU VM-boundary bypass.\nC:H - When bits_per((umem-\u003elength-1+virt)^virt)\u003e=BITS_PER_LONG, GENMASK(BITS_PER_LONG-1, bits) is invalid and mask can be 0, so the function returns rounddown_pow_of_two(pgsz_bitmap) (largest HW page). mlx5_ib_populate_pas()/rdma_umem_for_each_dma_block() then install oversized MTT/PBL entries, so the NIC DMA-reads physical memory beyond the pinned umem.\nI:H - The same oversized page size is programmed into hardware (efa_register_mr params.page_shift, ionic_pgtbl_init, mlx5 mkey PAS). With IB_ACCESS_LOCAL_WRITE or IB_ACCESS_REMOTE_WRITE from the REG_MR access_flags, the device DMA-writes outside the registered region, which is an arbitrary physical write.\nA:H - GENMASK() with l\u003eh is a shift UB that can oops (UBSAN) or yield mask==0; mis-sized pages cause IOMMU/device faults. ib_umem_is_contiguous() (mlx5_ib_db_map_user_desc, efa create_cq) can also treat a non-contiguous umem as one DMA block and fault the kernel or NIC."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:58:13.282Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3014da7587ce006cd08004fd6b257626b314e0a3"
},
{
"url": "https://git.kernel.org/stable/c/ddccf6cc3861de2fe60986933bead79220e0d797"
},
{
"url": "https://git.kernel.org/stable/c/e9bbb5f5349ef560ff6f0395564f04c3aa664559"
},
{
"url": "https://git.kernel.org/stable/c/ae3cf7d2c4d506c5c91746321644e1a08d989e2a"
},
{
"url": "https://git.kernel.org/stable/c/5fc5b73109540809b094710fac44da81dd8a3ff8"
},
{
"url": "https://git.kernel.org/stable/c/09ea6837a0434fb4db99528a5055b6d822135dcf"
}
],
"title": "RDMA/umem: Be careful about boundary conditions in ib_umem_find_best_pgsz()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97421",
"datePublished": "2026-09-24T16:03:31.505Z",
"dateReserved": "2026-09-24T14:53:16.868Z",
"dateUpdated": "2026-10-03T10:58:13.282Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80694 (GCVE-0-2026-80694)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller
mtk_handle_irq_rx expects a struct mtk_eth * (matching the request_irq
cookie), but mtk_poll_controller incorrectly passed the net_device *.
Calling ndo_poll_controller with CONFIG_NET_POLL_CONTROLLER enabled
would then crash.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mediatek/mtk_eth_soc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a9133c4d335e48ba92f4daed10c506378924f976",
"status": "affected",
"version": "8186f6e382d8719d0a4bc0ef218c4dd7cf55b496",
"versionType": "git"
},
{
"lessThan": "3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8",
"status": "affected",
"version": "8186f6e382d8719d0a4bc0ef218c4dd7cf55b496",
"versionType": "git"
},
{
"lessThan": "276f1f180f55d56cf5992a581e20ed2b3dfa6ced",
"status": "affected",
"version": "8186f6e382d8719d0a4bc0ef218c4dd7cf55b496",
"versionType": "git"
},
{
"lessThan": "7eb46318d53940dab63dea7130e720b67a656104",
"status": "affected",
"version": "8186f6e382d8719d0a4bc0ef218c4dd7cf55b496",
"versionType": "git"
},
{
"lessThan": "e095f249e2209674f6366f6db0383a2b96e19239",
"status": "affected",
"version": "8186f6e382d8719d0a4bc0ef218c4dd7cf55b496",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mediatek/mtk_eth_soc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller\n\nmtk_handle_irq_rx expects a struct mtk_eth * (matching the request_irq\ncookie), but mtk_poll_controller incorrectly passed the net_device *.\nCalling ndo_poll_controller with CONFIG_NET_POLL_CONTROLLER enabled\nwould then crash."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is only reachable via ndo_poll_controller called from netpoll during netconsole transmit polling on the mtk netdev; on MediaTek routers/gateways with netconsole on the primary ethernet interface, remote network traffic that triggers kernel logging and netpoll send retries can invoke the corrupt path without local access.\nAC:L - Once netconsole is bound to the mtk interface, netpoll_poll_dev calls mtk_poll_controller deterministically during log transmission and skb allocation retries, without races or attacker-dependent timing beyond routine network activity.\nPR:N - Exploitation requires no attacker credentials or capabilities; only an administrator-preconfigured netconsole target on the mtk netdev (an environmental prerequisite), after which any unprivileged remote party can trigger the path by causing kernel log emission.\nUI:N - No victim user action is required beyond normal system operation; triggering relies on automated kernel logging and netpoll activity, not on a user opening files, mounting filesystems, or interacting with the UI.\nS:U - Impact is confined to kernel memory corruption and crash within the same kernel security authority; this is not a VM escape, sandbox breakout, or cross-authority boundary violation.\nC:H - Casting net_device to mtk_eth causes reads of attacker-influenced adjacent memory through napi_schedule_prep and potential MMIO via a misinterpreted soc/base pointer, constituting exploitable type confusion rather than a bounded NULL dereference.\nI:H - The mistyped pointer causes an unconditional increment at the mtk_eth rx_events offset (writing into net_device/adjacent heap memory) and may corrupt or schedule a bogus NAPI structure, giving memory corruption primitives.\nA:H - The fix commit and handler logic confirm the mistyped pointer leads to invalid structure access and likely kernel oops/panic when netpoll_controller is invoked, causing complete loss of availability on affected devices."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:55.044Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a9133c4d335e48ba92f4daed10c506378924f976"
},
{
"url": "https://git.kernel.org/stable/c/3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8"
},
{
"url": "https://git.kernel.org/stable/c/276f1f180f55d56cf5992a581e20ed2b3dfa6ced"
},
{
"url": "https://git.kernel.org/stable/c/7eb46318d53940dab63dea7130e720b67a656104"
},
{
"url": "https://git.kernel.org/stable/c/e095f249e2209674f6366f6db0383a2b96e19239"
}
],
"title": "net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80694",
"datePublished": "2026-08-28T06:53:00.442Z",
"dateReserved": "2026-08-26T14:34:25.785Z",
"dateUpdated": "2026-10-21T12:46:55.044Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80842 (GCVE-0-2026-80842)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: mcast: fix use-after-free of a master VLAN's multicast context
br_multicast_toggle_one_vlan() clears BR_VLFLAG_MCAST_ENABLED under
br->multicast_lock before stopping a VLAN's multicast context. That is
the teardown handshake: lockless readers gate on the flag through
br_multicast_ctx_should_use() -> br_multicast_ctx_vlan_disabled(), so
once it is cleared under the lock no reader can arm the context again.
For a master VLAN the handshake never runs. __vlan_del() clears
BRIDGE_VLAN_INFO_BRENTRY before calling br_vlan_put_master(), so
br_multicast_toggle_one_vlan(masterv, false) returns early on
!br_vlan_is_brentry(vlan): the flag stays set and br->multicast_lock is
never taken. br_vlan_put_master() then drains the context in
br_multicast_ctx_deinit() and frees the VLAN through call_rcu(), while a
reader still inside rcu_read_lock() sees the context as enabled and
re-arms it. The port and port-VLAN branch of the function has no
br_vlan_is_brentry() test and flips the flag under br->multicast_lock,
so it is not affected.
The reader is the bridge transmit path. For a master VLAN
br_multicast_rcv() selects brmctx = &vlan->br_mcast_ctx with
pmctx = NULL, so IGMP sent to the bridge device re-arms the context's
timers after br_multicast_ctx_deinit() has already stopped them.
BUG: KASAN: slab-use-after-free in detach_if_pending+0x412/0x4a0
Write of size 8 at addr ffff88810ac39918 by task brmc/601
__mod_timer+0x51a/0xc50
br_multicast_host_join+0x25b/0x390
__br_multicast_add_group+0x468/0x530
br_ip4_multicast_add_group+0x1a0/0x260
br_multicast_rcv+0x2cda/0x61e0
br_dev_xmit+0x6c4/0x1540
Allocated by task 610:
br_vlan_add+0x111/0xb40
br_vlan_info+0x370/0x3e0
Freed by task 0:
kfree+0x1a7/0x4f0
rcu_core+0x7dc/0x10a0
Only test br_vlan_is_brentry() when enabling, like the
br_multicast_ctx_vlan_global_disabled() test next to it. Disabling then
always clears BR_VLFLAG_MCAST_ENABLED under br->multicast_lock before
br_multicast_ctx_deinit() drains the context.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e Version: 7b54aaaf53cb784411426c64482af0435f7c845e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3afaaee2f972aec9059110953adb62fa3cf5c4bd",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "22226a2c3b90f15b0925f1464470d3baa6c5677e",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "7c54fd8cfbcf371a5ef50db5c53fe6e85fb76686",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "3a0ad4fcdfa0b7dba1876de14a12cb65c8b5ca50",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "c069f29da72324697aa4b7cab5b3647a7d24a575",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "3f4752996735e0628af559aa8da1d872c2fac13b",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "57f94d3f4dee8b54d63cefddf1112be4656ef9e6",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
},
{
"lessThan": "50e5c6605cc9c2dd57bd2d1b3459674d19738983",
"status": "affected",
"version": "7b54aaaf53cb784411426c64482af0435f7c845e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: mcast: fix use-after-free of a master VLAN\u0027s multicast context\n\nbr_multicast_toggle_one_vlan() clears BR_VLFLAG_MCAST_ENABLED under\nbr-\u003emulticast_lock before stopping a VLAN\u0027s multicast context. That is\nthe teardown handshake: lockless readers gate on the flag through\nbr_multicast_ctx_should_use() -\u003e br_multicast_ctx_vlan_disabled(), so\nonce it is cleared under the lock no reader can arm the context again.\n\nFor a master VLAN the handshake never runs. __vlan_del() clears\nBRIDGE_VLAN_INFO_BRENTRY before calling br_vlan_put_master(), so\nbr_multicast_toggle_one_vlan(masterv, false) returns early on\n!br_vlan_is_brentry(vlan): the flag stays set and br-\u003emulticast_lock is\nnever taken. br_vlan_put_master() then drains the context in\nbr_multicast_ctx_deinit() and frees the VLAN through call_rcu(), while a\nreader still inside rcu_read_lock() sees the context as enabled and\nre-arms it. The port and port-VLAN branch of the function has no\nbr_vlan_is_brentry() test and flips the flag under br-\u003emulticast_lock,\nso it is not affected.\n\nThe reader is the bridge transmit path. For a master VLAN\nbr_multicast_rcv() selects brmctx = \u0026vlan-\u003ebr_mcast_ctx with\npmctx = NULL, so IGMP sent to the bridge device re-arms the context\u0027s\ntimers after br_multicast_ctx_deinit() has already stopped them.\n\n BUG: KASAN: slab-use-after-free in detach_if_pending+0x412/0x4a0\n Write of size 8 at addr ffff88810ac39918 by task brmc/601\n __mod_timer+0x51a/0xc50\n br_multicast_host_join+0x25b/0x390\n __br_multicast_add_group+0x468/0x530\n br_ip4_multicast_add_group+0x1a0/0x260\n br_multicast_rcv+0x2cda/0x61e0\n br_dev_xmit+0x6c4/0x1540\n Allocated by task 610:\n br_vlan_add+0x111/0xb40\n br_vlan_info+0x370/0x3e0\n Freed by task 0:\n kfree+0x1a7/0x4f0\n rcu_core+0x7dc/0x10a0\n\nOnly test br_vlan_is_brentry() when enabling, like the\nbr_multicast_ctx_vlan_global_disabled() test next to it. Disabling then\nalways clears BR_VLFLAG_MCAST_ENABLED under br-\u003emulticast_lock before\nbr_multicast_ctx_deinit() drains the context."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:35.389Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3afaaee2f972aec9059110953adb62fa3cf5c4bd"
},
{
"url": "https://git.kernel.org/stable/c/22226a2c3b90f15b0925f1464470d3baa6c5677e"
},
{
"url": "https://git.kernel.org/stable/c/7c54fd8cfbcf371a5ef50db5c53fe6e85fb76686"
},
{
"url": "https://git.kernel.org/stable/c/3a0ad4fcdfa0b7dba1876de14a12cb65c8b5ca50"
},
{
"url": "https://git.kernel.org/stable/c/c069f29da72324697aa4b7cab5b3647a7d24a575"
},
{
"url": "https://git.kernel.org/stable/c/3f4752996735e0628af559aa8da1d872c2fac13b"
},
{
"url": "https://git.kernel.org/stable/c/57f94d3f4dee8b54d63cefddf1112be4656ef9e6"
},
{
"url": "https://git.kernel.org/stable/c/50e5c6605cc9c2dd57bd2d1b3459674d19738983"
}
],
"title": "net: bridge: mcast: fix use-after-free of a master VLAN\u0027s multicast context",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80842",
"datePublished": "2026-09-04T15:54:52.459Z",
"dateReserved": "2026-08-26T14:34:25.796Z",
"dateUpdated": "2026-10-19T08:44:35.389Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64297 (GCVE-0-2026-64297)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-08-17 04:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
module: decompress: check return value of module_extend_max_pages()
module_extend_max_pages() calls kvrealloc() internally and returns
-ENOMEM on allocation failure. The return value is never checked.
If the initial allocation fails, info->pages remains NULL and
info->max_pages remains 0. Subsequent calls to module_get_next_page()
will attempt to dynamically grow the array by calling
module_extend_max_pages(info, 0) since info->used_pages is 0. This
results in kvrealloc(NULL, 0) returning ZERO_SIZE_PTR, which is treated
as a success, leading to a dereference of ZERO_SIZE_PTR and a kernel
oops.
Fix: add the missing error check after module_extend_max_pages() and
return immediately on failure. This matches the pattern used by every
other kvrealloc() caller in the module loading path.
[Sami: Corrected the analysis in the commit message.]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 Version: b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/module/decompress.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e7f174715f9f0cbcb9e87b52e4fc4ef149baac98",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
},
{
"lessThan": "afcc0515bbdd28d509a2b5870faaa89b137f5d53",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
},
{
"lessThan": "168072baf9ad516d5a06046514c7fea4c0671990",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
},
{
"lessThan": "a82e170637e050a803b4f37542371ef216bf66d2",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
},
{
"lessThan": "e7da02659c229f73492fb1ed87ceda4090153aaa",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
},
{
"lessThan": "786d2d84416a9a1c1a47b71a68d679d886284be2",
"status": "affected",
"version": "b1ae6dc41eaaa98bb75671e0f3665bfda248c3e7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/module/decompress.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmodule: decompress: check return value of module_extend_max_pages()\n\nmodule_extend_max_pages() calls kvrealloc() internally and returns\n-ENOMEM on allocation failure. The return value is never checked.\n\nIf the initial allocation fails, info-\u003epages remains NULL and\ninfo-\u003emax_pages remains 0. Subsequent calls to module_get_next_page()\nwill attempt to dynamically grow the array by calling\nmodule_extend_max_pages(info, 0) since info-\u003eused_pages is 0. This\nresults in kvrealloc(NULL, 0) returning ZERO_SIZE_PTR, which is treated\nas a success, leading to a dereference of ZERO_SIZE_PTR and a kernel\noops.\n\nFix: add the missing error check after module_extend_max_pages() and\nreturn immediately on failure. This matches the pattern used by every\nother kvrealloc() caller in the module loading path.\n\n[Sami: Corrected the analysis in the commit message.]"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:52:54.883Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e7f174715f9f0cbcb9e87b52e4fc4ef149baac98"
},
{
"url": "https://git.kernel.org/stable/c/afcc0515bbdd28d509a2b5870faaa89b137f5d53"
},
{
"url": "https://git.kernel.org/stable/c/168072baf9ad516d5a06046514c7fea4c0671990"
},
{
"url": "https://git.kernel.org/stable/c/a82e170637e050a803b4f37542371ef216bf66d2"
},
{
"url": "https://git.kernel.org/stable/c/e7da02659c229f73492fb1ed87ceda4090153aaa"
},
{
"url": "https://git.kernel.org/stable/c/786d2d84416a9a1c1a47b71a68d679d886284be2"
}
],
"title": "module: decompress: check return value of module_extend_max_pages()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64297",
"datePublished": "2026-07-25T08:49:34.486Z",
"dateReserved": "2026-07-19T15:36:31.778Z",
"dateUpdated": "2026-08-17T04:52:54.883Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64475 (GCVE-0-2026-64475)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-19 20:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio/pci: Release the VGA arbiter client on register_device() failure
The re-order in the Fixes commit below displaced vfio_pci_vga_init() as
the last failure point of what is now vfio_pci_core_register_device()
without introducing an unwind for the VGA arbiter registration.
In current kernels this is mostly benign because vfio_pci_set_decode()
only uses pci_dev state, but the original failure path could leave a
callback with a freed vdev cookie. The stale registration also becomes
unsafe again once the callback follows drvdata to the vfio device.
Add the required VGA unwind callout.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 87856f9af04eaacf9848710625a4ffee1d020fa9 Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: 4aeec3984ddc853f7c65903bde472ffdef738bae Version: d62dccb417cf972c978bf3c68a7d5e846bcf953e Version: 6694b8daffac5a8661071f085608afc78f7acd08 Version: 5.10.37 ≤ Version: 5.11.21 ≤ Version: 5.12.4 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64475",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:41:16.888282Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:48:36.746Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/vfio_pci_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f2a35a0c7ea7da347b814750eaa78adf3582381",
"status": "affected",
"version": "87856f9af04eaacf9848710625a4ffee1d020fa9",
"versionType": "git"
},
{
"lessThan": "8d65decde9afd2bd78bcfffdc0df73b82a0b5509",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "ef4c38d30b3744e89eb5048218904bb629ea8d47",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "9e0a3f642e607848669235f5069f35640abbfc88",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "42d758a09d2c46c42357ecde9a5492f015bde2e5",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "52adb2dff7ce3d8430e2bdc5988b618a430def85",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "278a5659c391fe5afe5f9ce1bad1fd24e90144f1",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"lessThan": "daedde7f024ecf88bc8e832ed40cf2c795f0796a",
"status": "affected",
"version": "4aeec3984ddc853f7c65903bde472ffdef738bae",
"versionType": "git"
},
{
"status": "affected",
"version": "d62dccb417cf972c978bf3c68a7d5e846bcf953e",
"versionType": "git"
},
{
"status": "affected",
"version": "6694b8daffac5a8661071f085608afc78f7acd08",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.37",
"versionType": "semver"
},
{
"lessThan": "5.12",
"status": "affected",
"version": "5.11.21",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.4",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/vfio_pci_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.37",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.21",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio/pci: Release the VGA arbiter client on register_device() failure\n\nThe re-order in the Fixes commit below displaced vfio_pci_vga_init() as\nthe last failure point of what is now vfio_pci_core_register_device()\nwithout introducing an unwind for the VGA arbiter registration.\n\nIn current kernels this is mostly benign because vfio_pci_set_decode()\nonly uses pci_dev state, but the original failure path could leave a\ncallback with a freed vdev cookie. The stale registration also becomes\nunsafe again once the callback follows drvdata to the vfio device.\n\nAdd the required VGA unwind callout."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is triggered through local `/dev/vga_arbiter` operations or accesses to a delegated VFIO VGA region; it is not directly network-reachable. The VGA-arbiter character-device interface is documented in the [kernel documentation](https://docs.kernel.org/gpu/vgaarbiter.html).\nAC:L - Once failed VFIO registration leaves the stale callback, a single first-use VGA lock or legacy VGA access invokes it. No race must be won, and the attacker controls the triggering access.\nPR:L - The failed bind may arise from boot or privileged orchestration, but the subsequent callback path has no capability check and can be triggered by a video-group user, delegated VFIO process, or VM tenant. Real host-root privileges are therefore not required in a reasonable deployment.\nUI:N - The attacker directly performs the VGA-arbiter or VFIO-region access, with no victim action required during exploitation. Prior system configuration or automated device binding is not user interaction.\nS:C - With VFIO GPU passthrough, QEMU translates guest legacy-VGA accesses into VFIO `pread()` and `pwrite()` operations, allowing a guest to activate the stale host callback and potentially compromise the host kernel across the VM boundary, as shown by [QEMU\u2019s VFIO VGA implementation](https://gitlab.com/qemu-project/qemu/-/blob/e5b3a241 81ea0cebf1c5b20f44d016311b7048f0/hw/vfio/pci.c).\nC:H - Historical affected branches retain a callback cookie pointing to a freed `struct vfio_pci_device`; reclaiming that allocation can control its embedded `pdev` pointer and redirect kernel pointer dereferences. Under conservative UAF assessment, this can enable disclosure of arbitrary host memory.\nI:H - The dangling object and potentially stale module callback create exploitable memory-lifetime corruption that can be heap-shaped toward control-flow hijacking or arbitrary kernel modification. Successful exploitation can therefore execute code in the host kernel.\nA:H - An invalid reclaimed `pdev` or unloaded callback target can immediately produce a kernel page fault, oops, or panic. The trigger requires only one attacker-controlled VGA access after the stale registration exists."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:21.493Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f2a35a0c7ea7da347b814750eaa78adf3582381"
},
{
"url": "https://git.kernel.org/stable/c/8d65decde9afd2bd78bcfffdc0df73b82a0b5509"
},
{
"url": "https://git.kernel.org/stable/c/ef4c38d30b3744e89eb5048218904bb629ea8d47"
},
{
"url": "https://git.kernel.org/stable/c/9e0a3f642e607848669235f5069f35640abbfc88"
},
{
"url": "https://git.kernel.org/stable/c/42d758a09d2c46c42357ecde9a5492f015bde2e5"
},
{
"url": "https://git.kernel.org/stable/c/52adb2dff7ce3d8430e2bdc5988b618a430def85"
},
{
"url": "https://git.kernel.org/stable/c/278a5659c391fe5afe5f9ce1bad1fd24e90144f1"
},
{
"url": "https://git.kernel.org/stable/c/daedde7f024ecf88bc8e832ed40cf2c795f0796a"
}
],
"title": "vfio/pci: Release the VGA arbiter client on register_device() failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64475",
"datePublished": "2026-07-25T08:51:38.154Z",
"dateReserved": "2026-07-19T15:36:31.791Z",
"dateUpdated": "2026-10-19T20:48:36.746Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80984 (GCVE-0-2026-80984)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: do not dereference an unset send buffer on the SMC-D teardown path
smc_close_stream_wait() calls smc_tx_prepared_sends() from inside its
sk_wait_event() condition, and sk_wait_event() evaluates that condition
once with the socket lock released. smcd_buf_detach() clears
conn->sndbuf_desc from smc_conn_kill() under lock_sock(), so a link group
terminating while a socket waits there leaves the helper dereferencing
NULL, faulting out of close(). SIOCOUTQ reads the field by hand, and
smc_close_cancel_work() drops the lock across two cancel_*_sync() calls.
Sample the pointer once in the helper, report nothing prepared while it is
unset, and bound the ioctl the same way. The receive tasklet dereferences
the field directly in smc_cdc_msg_recv_action(), not through this helper;
1/2 is what keeps it from running that late.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 21f6f41e82e59740e26e06e77bdf58dc7f6f08dd Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa Version: 6.6.66 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c",
"net/smc/smc_tx.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ab26e12dd5d2f43d939fcf456933a816e81d2e51",
"status": "affected",
"version": "21f6f41e82e59740e26e06e77bdf58dc7f6f08dd",
"versionType": "git"
},
{
"lessThan": "e3fcff8d22a6c9540748846cd800443a643553a6",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "f950e1b1f0aad334f9a9ee552c4dd5b794ebdd45",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "f517cf02033801a28f98d86ca613a3533cf066b3",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "b395dd319cea422239cb45b998fb38d7e373af87",
"status": "affected",
"version": "ae2be35cbed2c8385e890147ea321a3fcc3ca5fa",
"versionType": "git"
},
{
"lessThan": "6.6.157",
"status": "affected",
"version": "6.6.66",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c",
"net/smc/smc_tx.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.6.66",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: do not dereference an unset send buffer on the SMC-D teardown path\n\nsmc_close_stream_wait() calls smc_tx_prepared_sends() from inside its\nsk_wait_event() condition, and sk_wait_event() evaluates that condition\nonce with the socket lock released. smcd_buf_detach() clears\nconn-\u003esndbuf_desc from smc_conn_kill() under lock_sock(), so a link group\nterminating while a socket waits there leaves the helper dereferencing\nNULL, faulting out of close(). SIOCOUTQ reads the field by hand, and\nsmc_close_cancel_work() drops the lock across two cancel_*_sync() calls.\n\nSample the pointer once in the helper, report nothing prepared while it is\nunset, and bound the ioctl the same way. The receive tasklet dereferences\nthe field directly in smc_cdc_msg_recv_action(), not through this helper;\n1/2 is what keeps it from running that late."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:08.671Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ab26e12dd5d2f43d939fcf456933a816e81d2e51"
},
{
"url": "https://git.kernel.org/stable/c/e3fcff8d22a6c9540748846cd800443a643553a6"
},
{
"url": "https://git.kernel.org/stable/c/f950e1b1f0aad334f9a9ee552c4dd5b794ebdd45"
},
{
"url": "https://git.kernel.org/stable/c/f517cf02033801a28f98d86ca613a3533cf066b3"
},
{
"url": "https://git.kernel.org/stable/c/b395dd319cea422239cb45b998fb38d7e373af87"
}
],
"title": "net/smc: do not dereference an unset send buffer on the SMC-D teardown path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80984",
"datePublished": "2026-09-11T19:42:43.573Z",
"dateReserved": "2026-08-26T14:34:25.811Z",
"dateUpdated": "2026-10-19T08:46:08.671Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72019 (GCVE-0-2026-72019)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-10-19 21:19
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
macsec: don't read an unset MAC header in macsec_encrypt()
macsec_encrypt() reads the Ethernet header via eth_hdr(skb)
(skb->head + skb->mac_header) to memmove() the 12 source/destination MAC
bytes forward and make room for the SecTAG.
On the AF_PACKET SOCK_RAW + PACKET_QDISC_BYPASS transmit path the skb
reaches the macsec ndo_start_xmit() with the MAC header unset, so
eth_hdr(skb) resolves to skb->head + (u16)~0 and the read is out of
bounds: a 12-byte heap over-read that is also emitted on the wire as the
frame's outer source/destination MAC. KASAN reports a slab-out-of-bounds
read in macsec_start_xmit() on 6.0; on current mainline a CONFIG_DEBUG_NET
build flags it as an unset mac header in skb_mac_header().
On the TX path the L2 header is at skb->data, so use skb_eth_hdr(), added
by commit 96cc4b69581d ("macvlan: do not assume mac_header is set in
macvlan_broadcast()") for exactly this purpose.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 Version: c09440f7dcb304002dfced8c0fea289eb25f2da0 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72019",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:03.923013Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:23.088Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/macsec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b6cec6187b8632423cd99a94fd5e5ba165fa2a33",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "3adea1b1c04b57e08a5c12a1f42483760581ce61",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "dc9ffa1905e72f026d080880a2e4cfc42aa91000",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "f21fa533a3ed15ada74106aac4b9ddd078fc6b7a",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "e17a42199824973cd8212e95b21ffadf4114a21b",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "2cf10d042562283ff4ae97c02d0993d4f1b5ea29",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "c39087ad0b97fc11a3b058dfc8db9fd370762cb9",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
},
{
"lessThan": "f5089008f90c0a7c5520dff3934e0af00adf322d",
"status": "affected",
"version": "c09440f7dcb304002dfced8c0fea289eb25f2da0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/macsec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.6"
},
{
"lessThan": "4.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmacsec: don\u0027t read an unset MAC header in macsec_encrypt()\n\nmacsec_encrypt() reads the Ethernet header via eth_hdr(skb)\n(skb-\u003ehead + skb-\u003emac_header) to memmove() the 12 source/destination MAC\nbytes forward and make room for the SecTAG.\n\nOn the AF_PACKET SOCK_RAW + PACKET_QDISC_BYPASS transmit path the skb\nreaches the macsec ndo_start_xmit() with the MAC header unset, so\neth_hdr(skb) resolves to skb-\u003ehead + (u16)~0 and the read is out of\nbounds: a 12-byte heap over-read that is also emitted on the wire as the\nframe\u0027s outer source/destination MAC. KASAN reports a slab-out-of-bounds\nread in macsec_start_xmit() on 6.0; on current mainline a CONFIG_DEBUG_NET\nbuild flags it as an unset mac header in skb_mac_header().\n\nOn the TX path the L2 header is at skb-\u003edata, so use skb_eth_hdr(), added\nby commit 96cc4b69581d (\"macvlan: do not assume mac_header is set in\nmacvlan_broadcast()\") for exactly this purpose."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via local AF_PACKET SOCK_RAW transmit with PACKET_QDISC_BYPASS to a macsec netdev; it is a TX-only ndo_start_xmit path, not reachable from remote network packet reception.\nAC:L - An attacker fully controls the trigger: create a raw packet socket with a specific ethertype, enable PACKET_QDISC_BYPASS, and send a frame on a configured macsec interface with protect_frames enabled.\nPR:L - Exploitation requires CAP_NET_RAW for AF_PACKET and CAP_NET_ADMIN to create/configure a macsec netdev and TX SA keys; both are obtainable by an unprivileged user inside a user namespace with delegated capabilities.\nUI:N - No victim interaction is required; the attacker sends crafted frames directly through the vulnerable transmit path without any action from another user or administrator.\nS:U - Impact is confined to kernel heap disclosure and possible kernel crash on the same host; it does not cross a VM, container, or IOMMU security boundary to affect a separate authority.\nC:H - eth_hdr(skb) performs a 12-byte slab out-of-bounds heap read when mac_header is unset; the leaked kernel memory is copied into the transmitted frame\u0027s source/destination MAC fields, disclosing sensitive heap contents.\nI:L - The memmove in macsec_encrypt() overwrites the outgoing frame\u0027s 12-byte Ethernet addresses with leaked heap data, causing unauthorized modification of transmitted packet contents without arbitrary kernel memory writes.\nA:H - Reading from skb-\u003ehead plus unset mac_header offset 65535 causes a slab out-of-bounds access that KASAN flags and can page-fault into a kernel oops or panic when macsec_encrypt() runs on affected builds."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:35:53.169Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b6cec6187b8632423cd99a94fd5e5ba165fa2a33"
},
{
"url": "https://git.kernel.org/stable/c/3adea1b1c04b57e08a5c12a1f42483760581ce61"
},
{
"url": "https://git.kernel.org/stable/c/dc9ffa1905e72f026d080880a2e4cfc42aa91000"
},
{
"url": "https://git.kernel.org/stable/c/f21fa533a3ed15ada74106aac4b9ddd078fc6b7a"
},
{
"url": "https://git.kernel.org/stable/c/e17a42199824973cd8212e95b21ffadf4114a21b"
},
{
"url": "https://git.kernel.org/stable/c/2cf10d042562283ff4ae97c02d0993d4f1b5ea29"
},
{
"url": "https://git.kernel.org/stable/c/c39087ad0b97fc11a3b058dfc8db9fd370762cb9"
},
{
"url": "https://git.kernel.org/stable/c/f5089008f90c0a7c5520dff3934e0af00adf322d"
}
],
"title": "macsec: don\u0027t read an unset MAC header in macsec_encrypt()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72019",
"datePublished": "2026-08-15T05:51:46.014Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-10-19T21:19:23.088Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97552 (GCVE-0-2026-97552)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: initialise error in xfs_defer_finish_one()
xfs_defer_finish_one() declares error without an initialiser and only
assigns it inside the loop over dfp->dfp_work. When that list is empty
the loop body never runs, control falls through to the "Done with the
dfp, free it" path, and the function returns an indeterminate value.
An item-less pending item reaches this through xfs_defer_add_barrier(),
which xfs_reap_ag_blocks() uses on any CONFIG_XFS_ONLINE_REPAIR kernel.
xfs_defer_finish_noroll() treats any non-EAGAIN return as fatal, so a
non-zero stack value turns a successful barrier into a
SHUTDOWN_CORRUPT_INCORE in the middle of a repair. Zero is the correct
result: reaching the free path means the item loop drained without a
non-zero error.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_defer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "30748a24b9f04f9a83599ba907cc8fbff0729f3c",
"status": "affected",
"version": "3f3cec031099c37513727efc978a12b6346e326d",
"versionType": "git"
},
{
"lessThan": "ba949a14446b7346e92e676ee3fe2bb79d9ce450",
"status": "affected",
"version": "3f3cec031099c37513727efc978a12b6346e326d",
"versionType": "git"
},
{
"lessThan": "6b507c239884f7d4bf8339f6e9eb8bfcb540afde",
"status": "affected",
"version": "3f3cec031099c37513727efc978a12b6346e326d",
"versionType": "git"
},
{
"lessThan": "6176d21d7bd609632c5b7e87a3adb9be29ec1e72",
"status": "affected",
"version": "3f3cec031099c37513727efc978a12b6346e326d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/libxfs/xfs_defer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: initialise error in xfs_defer_finish_one()\n\nxfs_defer_finish_one() declares error without an initialiser and only\nassigns it inside the loop over dfp-\u003edfp_work. When that list is empty\nthe loop body never runs, control falls through to the \"Done with the\ndfp, free it\" path, and the function returns an indeterminate value.\n\nAn item-less pending item reaches this through xfs_defer_add_barrier(),\nwhich xfs_reap_ag_blocks() uses on any CONFIG_XFS_ONLINE_REPAIR kernel.\nxfs_defer_finish_noroll() treats any non-EAGAIN return as fatal, so a\nnon-zero stack value turns a successful barrier into a\nSHUTDOWN_CORRUPT_INCORE in the middle of a repair. Zero is the correct\nresult: reaching the free path means the item loop drained without a\nnon-zero error."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:15.341Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/30748a24b9f04f9a83599ba907cc8fbff0729f3c"
},
{
"url": "https://git.kernel.org/stable/c/ba949a14446b7346e92e676ee3fe2bb79d9ce450"
},
{
"url": "https://git.kernel.org/stable/c/6b507c239884f7d4bf8339f6e9eb8bfcb540afde"
},
{
"url": "https://git.kernel.org/stable/c/6176d21d7bd609632c5b7e87a3adb9be29ec1e72"
}
],
"title": "xfs: initialise error in xfs_defer_finish_one()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97552",
"datePublished": "2026-09-25T10:21:44.651Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-19T09:09:15.341Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64046 (GCVE-0-2026-64046)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-10-19 20:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: tls: prevent chain-after-chain in plain text SG
Sashiko points out that if end = 0 (start != 0) the current
code will create a chain link to content type right after
the wrap link:
This would create a chain where the wrap link points directly
to another chain link. The scatterlist API sg_next iterator
does not recursively resolve consecutive chain links.
meaning this is illegal input to crypto.
The wrapping link is unnecessary if end = 0. end is the entry after
the last one used so end = 0 means there's nothing pushed after
the wrap:
end start i
v v v
[ ]...[ ][ d ][ d ][ d ][ d ][rsv for wrap]
Skip the wrapping in this case.
TLS 1.3 can use the "wrapping slot" for it's chaining if end = 0.
This avoids the chain-after-chain.
Move the wrap chaining before marking END and chaining off content
type, that feels like more logical ordering to me, but should not
matter from functional perspective.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: 9aaaa56845a06aeabdd597cbe19492dc01f281ec Version: d529d6c9f7e3aaeac13c4948f79799ccb825f29d Version: 5.4.14 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64046",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:35:52.163580Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:28:10.562Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "49a5faaa471ddcd37b6893970c9916eb836e7c31",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "91359966e247c0244c66d50bbb8e74aefa4321c3",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "410351158dfef2d67fea6603680b3a6013c6ed9d",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "acdc12b71c9aa4be5dcd2c8062753c6d2033e235",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "929b1548e63ac72e104c07d8ee8cbbeeba2fa89a",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "af855f4c966afafef74faf8390c7b86568c0d46d",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "b9c015ef1a7bf1e8dc67f21c6381f36deb2c3a36",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"lessThan": "ff26a0e8377dec07e4a7230db7675bed1b9a6d03",
"status": "affected",
"version": "9aaaa56845a06aeabdd597cbe19492dc01f281ec",
"versionType": "git"
},
{
"status": "affected",
"version": "d529d6c9f7e3aaeac13c4948f79799ccb825f29d",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"lessThan": "5.5",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.258",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.142",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.92",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.258",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.142",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: tls: prevent chain-after-chain in plain text SG\n\nSashiko points out that if end = 0 (start != 0) the current\ncode will create a chain link to content type right after\nthe wrap link:\n\n This would create a chain where the wrap link points directly\n to another chain link. The scatterlist API sg_next iterator\n does not recursively resolve consecutive chain links.\n\nmeaning this is illegal input to crypto.\n\nThe wrapping link is unnecessary if end = 0. end is the entry after\nthe last one used so end = 0 means there\u0027s nothing pushed after\nthe wrap:\n\n end start i\n v v v\n [ ]...[ ][ d ][ d ][ d ][ d ][rsv for wrap]\n\nSkip the wrapping in this case.\n\nTLS 1.3 can use the \"wrapping slot\" for it\u0027s chaining if end = 0.\nThis avoids the chain-after-chain.\n\nMove the wrap chaining before marking END and chaining off content\ntype, that feels like more logical ordering to me, but should not\nmatter from functional perspective."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in kTLS software TX (`tls_push_record` in `net/tls/tls_sw.c`), reached when encrypting outbound TLS 1.3 records on a connected socket; a remote TLS peer triggers this path on internet-facing servers and L7 proxies (kTLS+sockmap) by causing the host to send TLS responses.\nAC:L - The wrapped `sk_msg` ring state (`end=0`, `start!=0`) needed to hit the chain-after-chain bug is deterministically created via BPF `sk_msg` helpers (`bpf_msg_push_data`/`bpf_msg_pop_data`), which the attacker controls on the local path or can steer on servers whose sockmap programs manipulate messages based on connection traffic.\nPR:N - Exploitation does not require Linux capabilities on the attacking side when targeting a TLS service already running kTLS with sockmap; any unauthenticated remote client that completes a TLS 1.3 handshake and causes record transmission can reach the vulnerable encrypt path.\nUI:N - No victim user action beyond normal automated TLS server/client operation is required; triggering the bug is achieved through crafted network traffic and/or syscall-driven sends on an already-established kTLS socket.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same host/kernel security boundary, not a cross-boundary escape such as VM guest-to-host or IOMMU bypass.\nC:H - Passing a scatterlist with consecutive chain links to `crypto_aead_encrypt` is illegal; the crypto scatterwalk treats chain entries as data pages, causing out-of-bounds kernel memory reads and information disclosure primitives.\nI:H - The malformed scatterlist fed to AEAD encryption can cause the crypto layer to write ciphertext to incorrect kernel addresses, providing a memory corruption primitive that can be developed into arbitrary kernel write or code execution.\nA:H - Invalid scatterlist traversal in the crypto path can dereference bogus page pointers and kernel-oops the system; encryption failure also invokes `tls_err_abort`, reliably disrupting the affected TLS connection and potentially the hosting service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:38:38.201Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/49a5faaa471ddcd37b6893970c9916eb836e7c31"
},
{
"url": "https://git.kernel.org/stable/c/91359966e247c0244c66d50bbb8e74aefa4321c3"
},
{
"url": "https://git.kernel.org/stable/c/410351158dfef2d67fea6603680b3a6013c6ed9d"
},
{
"url": "https://git.kernel.org/stable/c/acdc12b71c9aa4be5dcd2c8062753c6d2033e235"
},
{
"url": "https://git.kernel.org/stable/c/929b1548e63ac72e104c07d8ee8cbbeeba2fa89a"
},
{
"url": "https://git.kernel.org/stable/c/af855f4c966afafef74faf8390c7b86568c0d46d"
},
{
"url": "https://git.kernel.org/stable/c/b9c015ef1a7bf1e8dc67f21c6381f36deb2c3a36"
},
{
"url": "https://git.kernel.org/stable/c/ff26a0e8377dec07e4a7230db7675bed1b9a6d03"
}
],
"title": "net: tls: prevent chain-after-chain in plain text SG",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64046",
"datePublished": "2026-07-19T15:39:31.129Z",
"dateReserved": "2026-07-19T07:54:57.029Z",
"dateUpdated": "2026-10-19T20:28:10.562Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80895 (GCVE-0-2026-80895)
Vulnerability from cvelistv5
Published
2026-09-04 17:11
Modified
2026-09-04 17:11
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mshv: Order pt_vp_array publish against irqfd assertion path
mshv_partition_ioctl_create_vp() initialises a VP struct (allocations,
mutex_init, init_waitqueue_head, page mappings) and then publishes the
pointer into partition->pt_vp_array. Several ISR paths read this array
locklessly: the intercept ISR, the two scheduler ISRs, and
mshv_try_assert_irq_fast() on the irqfd fast path.
Of these, only mshv_try_assert_irq_fast() can structurally race the
publish. It runs from an eventfd waker without holding pt_mutex, and
MSHV_IRQFD does not require the target lapic_apic_id (== vp_index) to
refer to an existing VP at registration time. A user can therefore
register an irqfd targeting a yet-to-be-created VP, then trigger
mshv_try_assert_irq_fast() concurrently with MSHV_CREATE_VP for the
same index. On weakly-ordered architectures the reader can observe a
non-NULL pointer in pt_vp_array before the initialising stores to the
VP struct become visible, leading to use of partially-initialised
fields (e.g. vp_register_page).
The other ISR readers cannot reach this race: the hypervisor will not
generate intercept or scheduler messages for a VP that has never been
told to run, and the user can only call MSHV_RUN_VP on the VP fd
returned by MSHV_CREATE_VP, which by construction is returned after
the publish. Leave those readers as plain loads.
Use smp_store_release() in mshv_partition_ioctl_create_vp() to publish
the pointer, and pair it with smp_load_acquire() in
mshv_try_assert_irq_fast(). On x86 these compile to plain accesses
under TSO; on ARM64 they emit one-instruction acquire/release barriers,
acceptable on this fast path.
The destroy-side path (destroy_partition() clearing pt_vp_array[i] to
NULL after kfree(vp)) has a separate ordering and lifetime concern
that is out of scope here.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hv/mshv_eventfd.c",
"drivers/hv/mshv_root_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "062aa5dcc49a9ad96726a80c2a0ab0a1233bc2b9",
"status": "affected",
"version": "621191d709b14882270dfd8ea5d7d6cdfebe2c35",
"versionType": "git"
},
{
"lessThan": "eba2bf5daa7933f94c53ebbbf0f567d4274716df",
"status": "affected",
"version": "621191d709b14882270dfd8ea5d7d6cdfebe2c35",
"versionType": "git"
},
{
"lessThan": "b098dc869219c15dc49bf9cf63fb5fc1481d3373",
"status": "affected",
"version": "621191d709b14882270dfd8ea5d7d6cdfebe2c35",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hv/mshv_eventfd.c",
"drivers/hv/mshv_root_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmshv: Order pt_vp_array publish against irqfd assertion path\n\nmshv_partition_ioctl_create_vp() initialises a VP struct (allocations,\nmutex_init, init_waitqueue_head, page mappings) and then publishes the\npointer into partition-\u003ept_vp_array. Several ISR paths read this array\nlocklessly: the intercept ISR, the two scheduler ISRs, and\nmshv_try_assert_irq_fast() on the irqfd fast path.\n\nOf these, only mshv_try_assert_irq_fast() can structurally race the\npublish. It runs from an eventfd waker without holding pt_mutex, and\nMSHV_IRQFD does not require the target lapic_apic_id (== vp_index) to\nrefer to an existing VP at registration time. A user can therefore\nregister an irqfd targeting a yet-to-be-created VP, then trigger\nmshv_try_assert_irq_fast() concurrently with MSHV_CREATE_VP for the\nsame index. On weakly-ordered architectures the reader can observe a\nnon-NULL pointer in pt_vp_array before the initialising stores to the\nVP struct become visible, leading to use of partially-initialised\nfields (e.g. vp_register_page).\n\nThe other ISR readers cannot reach this race: the hypervisor will not\ngenerate intercept or scheduler messages for a VP that has never been\ntold to run, and the user can only call MSHV_RUN_VP on the VP fd\nreturned by MSHV_CREATE_VP, which by construction is returned after\nthe publish. Leave those readers as plain loads.\n\nUse smp_store_release() in mshv_partition_ioctl_create_vp() to publish\nthe pointer, and pair it with smp_load_acquire() in\nmshv_try_assert_irq_fast(). On x86 these compile to plain accesses\nunder TSO; on ARM64 they emit one-instruction acquire/release barriers,\nacceptable on this fast path.\n\nThe destroy-side path (destroy_partition() clearing pt_vp_array[i] to\nNULL after kfree(vp)) has a separate ordering and lifetime concern\nthat is out of scope here."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T17:11:10.880Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/062aa5dcc49a9ad96726a80c2a0ab0a1233bc2b9"
},
{
"url": "https://git.kernel.org/stable/c/eba2bf5daa7933f94c53ebbbf0f567d4274716df"
},
{
"url": "https://git.kernel.org/stable/c/b098dc869219c15dc49bf9cf63fb5fc1481d3373"
}
],
"title": "mshv: Order pt_vp_array publish against irqfd assertion path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80895",
"datePublished": "2026-09-04T17:11:10.880Z",
"dateReserved": "2026-08-26T14:34:25.800Z",
"dateUpdated": "2026-09-04T17:11:10.880Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74483 (GCVE-0-2026-74483)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-23 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: don't leak the user namespace when the mount fails
bm_get_tree() takes a reference to the user namespace and hands it to
get_tree_keyed() as the sget key. sget_fc() moves that reference into
sb->s_fs_info and clears fc->s_fs_info, so from that point on the
superblock owns it and bm_free() doesn't see it anymore.
The superblock drops it in ->put_super(). But generic_shutdown_super()
only calls ->put_super() from inside the if (sb->s_root) branch, so
nothing releases it when bm_fill_super() fails:
- The kzalloc_obj() failure leaves s_root NULL and the whole branch is
skipped.
- A simple_fill_super() failure in the file loop leaves s_root set, but
s_op still points at simple_super_operations, which has no
->put_super(). bm_fill_super() installs s_ops only once
simple_fill_super() returned success, and installing it earlier
wouldn't help either because simple_fill_super() overwrites s_op.
Either way vfs_get_super() calls deactivate_locked_super() and the
reference is gone for good. binfmt_misc mounts are available in a user
namespace and both the inode and the dentry cache are SLAB_ACCOUNT, so
an unprivileged caller under a tight memory cgroup can fail
simple_fill_super() on demand and leak one user namespace per attempt.
Drop the reference in ->kill_sb() instead, which runs unconditionally,
the same way nfsd and rpc_pipefs release their keyed s_fs_info.
That also stops ->put_super() from clearing s_fs_info while the
superblock is still on @fs_supers. generic_shutdown_super() leaves it
there on purpose so that sget_fc() keeps finding it until kill_sb() has
run, but a NULL s_fs_info makes test_keyed_super() miss it, so a
concurrent mount for the same user namespace skips the grab_super()
wait and creates a second superblock for a namespace that is still
being torn down.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ffec017158d3aad8a6ffca1dfad63d63bde9caad",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "867aed6a4848761190d5ebdedf9642648f97bceb",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "87a4eb9bbb3497f749bbac612af22ddaa62d7b0d",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "b8206f516fe7cbe785cf44bf09c17c438d7c3cad",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: don\u0027t leak the user namespace when the mount fails\n\nbm_get_tree() takes a reference to the user namespace and hands it to\nget_tree_keyed() as the sget key. sget_fc() moves that reference into\nsb-\u003es_fs_info and clears fc-\u003es_fs_info, so from that point on the\nsuperblock owns it and bm_free() doesn\u0027t see it anymore.\n\nThe superblock drops it in -\u003eput_super(). But generic_shutdown_super()\nonly calls -\u003eput_super() from inside the if (sb-\u003es_root) branch, so\nnothing releases it when bm_fill_super() fails:\n\n- The kzalloc_obj() failure leaves s_root NULL and the whole branch is\n skipped.\n\n- A simple_fill_super() failure in the file loop leaves s_root set, but\n s_op still points at simple_super_operations, which has no\n -\u003eput_super(). bm_fill_super() installs s_ops only once\n simple_fill_super() returned success, and installing it earlier\n wouldn\u0027t help either because simple_fill_super() overwrites s_op.\n\nEither way vfs_get_super() calls deactivate_locked_super() and the\nreference is gone for good. binfmt_misc mounts are available in a user\nnamespace and both the inode and the dentry cache are SLAB_ACCOUNT, so\nan unprivileged caller under a tight memory cgroup can fail\nsimple_fill_super() on demand and leak one user namespace per attempt.\n\nDrop the reference in -\u003ekill_sb() instead, which runs unconditionally,\nthe same way nfsd and rpc_pipefs release their keyed s_fs_info.\n\nThat also stops -\u003eput_super() from clearing s_fs_info while the\nsuperblock is still on @fs_supers. generic_shutdown_super() leaves it\nthere on purpose so that sget_fc() keeps finding it until kill_sb() has\nrun, but a NULL s_fs_info makes test_keyed_super() miss it, so a\nconcurrent mount for the same user namespace skips the grab_super()\nwait and creates a second superblock for a namespace that is still\nbeing torn down."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:24.496Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ffec017158d3aad8a6ffca1dfad63d63bde9caad"
},
{
"url": "https://git.kernel.org/stable/c/867aed6a4848761190d5ebdedf9642648f97bceb"
},
{
"url": "https://git.kernel.org/stable/c/87a4eb9bbb3497f749bbac612af22ddaa62d7b0d"
},
{
"url": "https://git.kernel.org/stable/c/b8206f516fe7cbe785cf44bf09c17c438d7c3cad"
}
],
"title": "binfmt_misc: don\u0027t leak the user namespace when the mount fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74483",
"datePublished": "2026-08-15T12:27:15.709Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-23T12:47:24.496Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74464 (GCVE-0-2026-74464)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: openvswitch: fix skb leak on flow key update failure during ct
ovs_ct_execute() always steals or frees the skb on failure while
ovs_flow_key_update() does not. So, if it fails and we return right
away, the skb ends up leaked.
Fix that by breaking instead and letting the common error handling
code at the bottom of the loop to free the skb properly.
This is a very unlikely scenario as it requires the packet to become
unparseable by applying a set of actions on a previously parseable skb,
but should be fixed nevertheless.
Reported by Sashiko.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 Version: ec0d043d05e6e3c0c2fac5de922c800c027c6386 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/openvswitch/actions.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b77126b2915900f69f9fcf5d624a77c8e6d50c31",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "6cc523eaee72c4e91894136cff64946ae9de2cda",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "22e0ca88090d89c128078062186b03bb5fdc4f98",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "736e972f3f8a304158345223ac6e816166a467ce",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "e84dfaac50aab45ad8c670da43e3aa1f97bd2a41",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "e0ba8eaef2a0d02a7a485e6a7157e47272b65cea",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "393f3c72600ab6721d732a0ab245bc896c5b28fc",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
},
{
"lessThan": "bc62e843bc48f933da765ce47079fd992e535794",
"status": "affected",
"version": "ec0d043d05e6e3c0c2fac5de922c800c027c6386",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/openvswitch/actions.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.3"
},
{
"lessThan": "4.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: openvswitch: fix skb leak on flow key update failure during ct\n\novs_ct_execute() always steals or frees the skb on failure while\novs_flow_key_update() does not. So, if it fails and we return right\naway, the skb ends up leaked.\n\nFix that by breaking instead and letting the common error handling\ncode at the bottom of the loop to free the skb properly.\n\nThis is a very unlikely scenario as it requires the packet to become\nunparseable by applying a set of actions on a previously parseable skb,\nbut should be fixed nevertheless.\n\nReported by Sashiko."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:05.367Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b77126b2915900f69f9fcf5d624a77c8e6d50c31"
},
{
"url": "https://git.kernel.org/stable/c/6cc523eaee72c4e91894136cff64946ae9de2cda"
},
{
"url": "https://git.kernel.org/stable/c/22e0ca88090d89c128078062186b03bb5fdc4f98"
},
{
"url": "https://git.kernel.org/stable/c/736e972f3f8a304158345223ac6e816166a467ce"
},
{
"url": "https://git.kernel.org/stable/c/e84dfaac50aab45ad8c670da43e3aa1f97bd2a41"
},
{
"url": "https://git.kernel.org/stable/c/e0ba8eaef2a0d02a7a485e6a7157e47272b65cea"
},
{
"url": "https://git.kernel.org/stable/c/393f3c72600ab6721d732a0ab245bc896c5b28fc"
},
{
"url": "https://git.kernel.org/stable/c/bc62e843bc48f933da765ce47079fd992e535794"
}
],
"title": "net: openvswitch: fix skb leak on flow key update failure during ct",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74464",
"datePublished": "2026-08-15T12:27:03.786Z",
"dateReserved": "2026-08-15T05:44:03.901Z",
"dateUpdated": "2026-08-19T16:37:05.367Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80589 (GCVE-0-2026-80589)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
block: stop the timeout timer when releasing a never added disk
disk_release() undoes blk_mq_init_allocated_queue() for a disk whose
probe failed before add_disk(), but it only calls blk_mq_exit_queue().
Nothing there stops q->timeout, and that timer rolls forward: it stays
pending until it next expires, not until the last request completes.
So if the driver issued any I/O before adding the disk, the
request_queue is freed while still linked into a timer wheel bucket.
Commit 6f8191fdf41d ("block: simplify disk shutdown") dropped the
blk_cleanup_queue() call that used to stop it. __del_gendisk() and
blk_mq_destroy_queue() still do; only the probe failure path lost it.
nvme gets there because nvme_update_ns_info() submits Report Zones or
FDP io-mgmt-recv on ns->queue before the disk is added, so a later
failure - a concurrent reset setting NVME_CTRL_FROZEN, or
device_add_disk() failing - lands in put_disk() with the timer armed:
BUG: KASAN: slab-use-after-free in detach_if_pending+0x30c/0x340
Write of size 8 at addr ffff888004d71310 by task kworker/u8:2/37
__timer_delete_sync+0x156/0x240 kernel/time/timer.c:1621
blk_sync_queue+0x22/0x40 block/blk-core.c:222
nvme_sync_queues+0x100/0x150 drivers/nvme/host/core.c:5362
nvme_reset_work+0x138/0x930 drivers/nvme/host/pci.c:3264
Allocated by task 34:
__blk_mq_alloc_disk+0x33/0x100 block/blk-mq.c:4462
nvme_alloc_ns+0x290/0x3870 drivers/nvme/host/core.c:4146
Freed by task 0:
blk_free_queue_rcu+0x3a/0x50 block/blk-core.c:254
rcu_core+0xc10/0x1730 kernel/rcu/tree.c:2857
The queue being synced there is ctrl->admin_q, only a victim sharing a
timer wheel bucket with the freed queue's dangling entry; other runs
tripped in enqueue_timer(), __run_timers() or blk_mq_timeout_work().
Failing nvme_alloc_ns() with a debug patch makes it deterministic: one
leaked timer trips KASAN within seconds, while 1987 patched releases
produced no splat.
Stop the timer and the queue work items before blk_mq_exit_queue(), like
blk_mq_destroy_queue() does.
Found by FuzzNvme.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 Version: d27b66257db183fe11c10f31246ae965adb005d3 Version: 5.19.12 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80589",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:18:09.871712Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:29.099Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"block/genhd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6ae7364f68e6c7af6b6df4bbb14040b89e5975d0",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"lessThan": "6f06dbe5012c160e0dba418a5a9cb16c456ad46a",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"lessThan": "1a0ae4d502062a2759f2a92d12bdeab3c64c7372",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"lessThan": "bb03b56d1d754908a37a160603be21769da423cf",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"lessThan": "93d620519d71dfc6ee64b5baea74f1d85d4439fb",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"lessThan": "26cb8ebbfaf713c82e142d08828d4d765057633b",
"status": "affected",
"version": "6f8191fdf41d3a53cc1d63fe2234e812c55a0092",
"versionType": "git"
},
{
"status": "affected",
"version": "d27b66257db183fe11c10f31246ae965adb005d3",
"versionType": "git"
},
{
"lessThan": "5.20",
"status": "affected",
"version": "5.19.12",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"block/genhd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.19.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: stop the timeout timer when releasing a never added disk\n\ndisk_release() undoes blk_mq_init_allocated_queue() for a disk whose\nprobe failed before add_disk(), but it only calls blk_mq_exit_queue().\nNothing there stops q-\u003etimeout, and that timer rolls forward: it stays\npending until it next expires, not until the last request completes.\nSo if the driver issued any I/O before adding the disk, the\nrequest_queue is freed while still linked into a timer wheel bucket.\n\nCommit 6f8191fdf41d (\"block: simplify disk shutdown\") dropped the\nblk_cleanup_queue() call that used to stop it. __del_gendisk() and\nblk_mq_destroy_queue() still do; only the probe failure path lost it.\n\nnvme gets there because nvme_update_ns_info() submits Report Zones or\nFDP io-mgmt-recv on ns-\u003equeue before the disk is added, so a later\nfailure - a concurrent reset setting NVME_CTRL_FROZEN, or\ndevice_add_disk() failing - lands in put_disk() with the timer armed:\n\n BUG: KASAN: slab-use-after-free in detach_if_pending+0x30c/0x340\n Write of size 8 at addr ffff888004d71310 by task kworker/u8:2/37\n __timer_delete_sync+0x156/0x240 kernel/time/timer.c:1621\n blk_sync_queue+0x22/0x40 block/blk-core.c:222\n nvme_sync_queues+0x100/0x150 drivers/nvme/host/core.c:5362\n nvme_reset_work+0x138/0x930 drivers/nvme/host/pci.c:3264\n\n Allocated by task 34:\n __blk_mq_alloc_disk+0x33/0x100 block/blk-mq.c:4462\n nvme_alloc_ns+0x290/0x3870 drivers/nvme/host/core.c:4146\n\n Freed by task 0:\n blk_free_queue_rcu+0x3a/0x50 block/blk-core.c:254\n rcu_core+0xc10/0x1730 kernel/rcu/tree.c:2857\n\nThe queue being synced there is ctrl-\u003eadmin_q, only a victim sharing a\ntimer wheel bucket with the freed queue\u0027s dangling entry; other runs\ntripped in enqueue_timer(), __run_timers() or blk_mq_timeout_work().\nFailing nvme_alloc_ns() with a debug patch makes it deterministic: one\nleaked timer trips KASAN within seconds, while 1987 patched releases\nproduced no splat.\n\nStop the timer and the queue work items before blk_mq_exit_queue(), like\nblk_mq_destroy_queue() does.\n\nFound by FuzzNvme."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Exploitation reaches disk_release() via NVMe namespace probing that issues pre-add_disk I/O (FDP io-mgmt-recv, Report Zones) over NVMe-oF TCP/RDMA; a remote or storage-network peer can supply crafted responses during automatic scan/reconnect on cloud/datacenter initiators.\nAC:L - An attacker controlling the NVMe endpoint can reliably time namespace enumeration I/O (arming q-\u003etimeout) with a concurrent probe failure (controller reset/NVME_CTRL_FROZEN or device_add_disk failure); FuzzNvme made this deterministic, and the attacker controls both sides of the race.\nPR:N - No local account or capability is required on the victim host at exploitation time; once an NVMe fabric path exists, a remote/compromised target or storage-network attacker can trigger the probe-failure teardown without CAP_SYS_ADMIN, ioctl, or sysfs access.\nUI:N - The bug fires during automatic kernel namespace scan/reconnect and queue teardown on probe failure; no victim mount, login, or manual device interaction is required beyond normal background storage enumeration.\nS:U - Impact is kernel slab corruption and crashes within the host kernel block layer; it does not cross a VM, container, or IOMMU security boundary even though virtio_blk shares the same pre-add_disk probe pattern.\nC:H - KASAN reports slab use-after-free with an 8-byte write in detach_if_pending on a freed request_queue whose timeout timer remains on the timer wheel; UAF of queue/timer structures enables arbitrary kernel memory disclosure primitives.\nI:H - The dangling timer wheel entry corrupts kernel heap metadata and can affect unrelated queues (e.g., ctrl-\u003eadmin_q in the reported stack); UAF on request_queue/timer state is exploitable for arbitrary write and control-flow hijacking, not merely a crash.\nA:H - Observed impact includes KASAN BUG/oops from timer deletion and queue sync on freed memory; leaked timers also trip in enqueue_timer(), __run_timers(), and blk_mq_timeout_work(), causing kernel panics and denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:02:10.391Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6ae7364f68e6c7af6b6df4bbb14040b89e5975d0"
},
{
"url": "https://git.kernel.org/stable/c/6f06dbe5012c160e0dba418a5a9cb16c456ad46a"
},
{
"url": "https://git.kernel.org/stable/c/1a0ae4d502062a2759f2a92d12bdeab3c64c7372"
},
{
"url": "https://git.kernel.org/stable/c/bb03b56d1d754908a37a160603be21769da423cf"
},
{
"url": "https://git.kernel.org/stable/c/93d620519d71dfc6ee64b5baea74f1d85d4439fb"
},
{
"url": "https://git.kernel.org/stable/c/26cb8ebbfaf713c82e142d08828d4d765057633b"
}
],
"title": "block: stop the timeout timer when releasing a never added disk",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80589",
"datePublished": "2026-08-26T14:37:43.293Z",
"dateReserved": "2026-08-26T14:34:25.770Z",
"dateUpdated": "2026-10-16T19:26:29.099Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-52912 (GCVE-0-2026-52912)
Vulnerability from cvelistv5
Published
2026-06-24 07:14
Modified
2026-10-19 19:36
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_queue: hold bridge skb->dev while queued
br_pass_frame_up() rewrites skb->dev from the ingress port to the bridge
master before queueing bridge LOCAL_IN packets. NFQUEUE only holds
references on state.in/out and bridge physdevs, so a queued bridge
packet can retain a freed bridge master in skb->dev until reinjection.
When the verdict is reinjected later, br_netif_receive_skb() re-enters
the receive path with skb->dev still pointing at the freed bridge master,
triggering a use-after-free.
Store skb->dev in the queue entry, hold a reference on it for the queue
lifetime, and use the saved device when dropping queued packets during
NETDEV_DOWN handling.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 Version: ac28634456867b23b95faccba7997a62ec430603 |
||
{
"containers": {
"adp": [
{
"affected": [
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.6",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "V3.1.7",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T01:21:46.948Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-019113.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-457936.html"
}
],
"x_adpType": "supplier"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-52912",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:22:30.377062Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T19:36:59.798Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/netfilter/nf_queue.h",
"net/netfilter/nf_queue.c",
"net/netfilter/nfnetlink_queue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "950d809f154dca04e5fbe5d3c8b9c5e44769cd57",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "a698ac8ab2561cf575d2d9f34095032651dd952e",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "19924bdd8a45ebc72a7b84c57fd63057d1dc75ac",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "1e5e20031c5eee8d2e490a90ff4d6a2feecfc3be",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "3823c27099cfe2482299065814adbaa771be9644",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "15d464265120ab9818bd673af301deee09bedab2",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "3fb0f5c0f64162a8c3f25616a4f1e340b921737f",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
},
{
"lessThan": "e196115ec330a18de415bdb9f5071aa9f08e53ce",
"status": "affected",
"version": "ac28634456867b23b95faccba7997a62ec430603",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/netfilter/nf_queue.h",
"net/netfilter/nf_queue.c",
"net/netfilter/nfnetlink_queue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.209",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.175",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.142",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.92",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.209",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.175",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.142",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_queue: hold bridge skb-\u003edev while queued\n\nbr_pass_frame_up() rewrites skb-\u003edev from the ingress port to the bridge\nmaster before queueing bridge LOCAL_IN packets. NFQUEUE only holds\nreferences on state.in/out and bridge physdevs, so a queued bridge\npacket can retain a freed bridge master in skb-\u003edev until reinjection.\n\nWhen the verdict is reinjected later, br_netif_receive_skb() re-enters\nthe receive path with skb-\u003edev still pointing at the freed bridge master,\ntriggering a use-after-free.\n\nStore skb-\u003edev in the queue entry, hold a reference on it for the queue\nlifetime, and use the saved device when dropping queued packets during\nNETDEV_DOWN handling."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local control of netfilter/NFQUEUE, bridge device lifecycle, and verdict reinjection through netlink/rtnetlink paths. Remote packets alone cannot force the needed bridge teardown and userspace verdict sequence.\nAC:L - A local attacker can deterministically create a namespace, bridge/veth setup, NFQUEUE rule, queued packet, bridge teardown, and reinjection. There is no race dependent on conditions outside attacker control.\nPR:L - The setup requires CAP_NET_ADMIN, but netfilter and bridge configuration are reachable with CAP_NET_ADMIN inside a user-created network namespace on systems allowing unprivileged user namespaces. This is Low, not High.\nUI:N - No victim action is required once the local attacker runs the exploit sequence. The attacker controls packet injection, queueing, device teardown, and verdict delivery.\nS:U - The impact is kernel memory corruption within the same host security authority. This is a standard local kernel privilege escalation/DoS scenario, not a VM or hardware boundary escape.\nC:H - The bug is a use-after-free of the bridge master net_device retained in skb-\u003edev across NFQUEUE. Kernel UAFs can be leveraged for kernel memory disclosure, so confidentiality impact is High.\nI:H - The stale net_device pointer is dereferenced after free in the receive path and can plausibly be combined with heap reclaim/spraying for memory corruption or control-flow impact. As a kernel UAF, integrity impact is High.\nA:H - At minimum, reinjection can dereference freed net_device memory in netif_receive_skb and crash/oops the kernel. Repeated local triggering makes availability impact High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:31:35.846Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/950d809f154dca04e5fbe5d3c8b9c5e44769cd57"
},
{
"url": "https://git.kernel.org/stable/c/a698ac8ab2561cf575d2d9f34095032651dd952e"
},
{
"url": "https://git.kernel.org/stable/c/19924bdd8a45ebc72a7b84c57fd63057d1dc75ac"
},
{
"url": "https://git.kernel.org/stable/c/1e5e20031c5eee8d2e490a90ff4d6a2feecfc3be"
},
{
"url": "https://git.kernel.org/stable/c/3823c27099cfe2482299065814adbaa771be9644"
},
{
"url": "https://git.kernel.org/stable/c/15d464265120ab9818bd673af301deee09bedab2"
},
{
"url": "https://git.kernel.org/stable/c/3fb0f5c0f64162a8c3f25616a4f1e340b921737f"
},
{
"url": "https://git.kernel.org/stable/c/e196115ec330a18de415bdb9f5071aa9f08e53ce"
}
],
"title": "netfilter: nf_queue: hold bridge skb-\u003edev while queued",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-52912",
"datePublished": "2026-06-24T07:14:10.583Z",
"dateReserved": "2026-06-09T07:44:35.366Z",
"dateUpdated": "2026-10-19T19:36:59.798Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80847 (GCVE-0-2026-80847)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tcp: clamp route advmss to TCP_MIN_MSS
tcp_select_initial_window() assumes that callers never pass an MSS
smaller than 1, but route-derived advmss values can violate that
assumption.
A too-small explicit RTAX_ADVMSS is one way to get there, but it is not
the only one. The same divide-by-zero can also be reached through the
"default advmss" path when RTAX_ADVMSS is left at 0 and the effective
advmss is later driven down by route MTU and min_adv_mss.
Introduce a tcp_dst_advmss() helper that clamps route advmss to
TCP_MIN_MSS before TCP consumes it, and use it in the TCP paths that
derive advmss from dst metrics. This keeps the effective MSS from
dropping to zero before tcp_select_initial_window() rounds the receive
window.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/tcp.h",
"net/ipv4/tcp_ipv4.c",
"net/ipv4/tcp_minisocks.c",
"net/ipv4/tcp_output.c",
"net/ipv6/tcp_ipv6.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "788fbbf7d61f9742298417c207c91b6db159fbbc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "eaf4af9bd6975c2eff8d48820937c83032d968dc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cfb44c6028e6f979720315e0772bbd0d4d33ed61",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6b8c20bf61924dfc38fefb145c9f7406d73fae53",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "31cf2349361902769dc323e4dbf4b449795ec288",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "870a9e42ecc6fe1b8c25d87af043cb0d9c178fe1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/tcp.h",
"net/ipv4/tcp_ipv4.c",
"net/ipv4/tcp_minisocks.c",
"net/ipv4/tcp_output.c",
"net/ipv6/tcp_ipv6.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntcp: clamp route advmss to TCP_MIN_MSS\n\ntcp_select_initial_window() assumes that callers never pass an MSS\nsmaller than 1, but route-derived advmss values can violate that\nassumption.\n\nA too-small explicit RTAX_ADVMSS is one way to get there, but it is not\nthe only one. The same divide-by-zero can also be reached through the\n\"default advmss\" path when RTAX_ADVMSS is left at 0 and the effective\nadvmss is later driven down by route MTU and min_adv_mss.\n\nIntroduce a tcp_dst_advmss() helper that clamps route advmss to\nTCP_MIN_MSS before TCP consumes it, and use it in the TCP paths that\nderive advmss from dst metrics. This keeps the effective MSS from\ndropping to zero before tcp_select_initial_window() rounds the receive\nwindow."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:07.141Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/788fbbf7d61f9742298417c207c91b6db159fbbc"
},
{
"url": "https://git.kernel.org/stable/c/eaf4af9bd6975c2eff8d48820937c83032d968dc"
},
{
"url": "https://git.kernel.org/stable/c/cfb44c6028e6f979720315e0772bbd0d4d33ed61"
},
{
"url": "https://git.kernel.org/stable/c/6b8c20bf61924dfc38fefb145c9f7406d73fae53"
},
{
"url": "https://git.kernel.org/stable/c/31cf2349361902769dc323e4dbf4b449795ec288"
},
{
"url": "https://git.kernel.org/stable/c/870a9e42ecc6fe1b8c25d87af043cb0d9c178fe1"
}
],
"title": "tcp: clamp route advmss to TCP_MIN_MSS",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80847",
"datePublished": "2026-09-04T15:54:57.441Z",
"dateReserved": "2026-08-26T14:34:25.797Z",
"dateUpdated": "2026-10-21T12:47:07.141Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72224 (GCVE-0-2026-72224)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-17 05:10
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvdimm/btt: Free arenas on btt_init() error paths
The arenas allocated by discover_arenas() or create_arenas() are not
freed on some error paths in btt_init(). This leaks memory when BTT
initialization fails.
Call free_arenas() from the affected error paths to release the
allocations.
[ as: commit message and log edits ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 Version: 5212e11fde4d40fa627668b4f2222d20db488f71 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvdimm/btt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9ab5293d9ac3f2c4232220e563d04701f5f44607",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "68c967e105d50f885e02b0dbdc9211fd5f84bdcd",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "0b63788093ff6ccfffe6e87de9e08aeeb406599c",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "5804e6a6912b5a1e47c821777d69191d69a3fe64",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "52a7e7ece79c4b0f406149e19cd2b4b11a6c19e4",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "f4ca396bdd60b4e0a665b2589bfc4ddbea9bda2b",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "7e49684d90faa34ff6d5586be658e986d9d475ac",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
},
{
"lessThan": "1a6b6442a982d0ca5fb6a1a39b6f6dfd760eda57",
"status": "affected",
"version": "5212e11fde4d40fa627668b4f2222d20db488f71",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvdimm/btt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"lessThan": "4.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvdimm/btt: Free arenas on btt_init() error paths\n\nThe arenas allocated by discover_arenas() or create_arenas() are not\nfreed on some error paths in btt_init(). This leaks memory when BTT\ninitialization fails.\n\nCall free_arenas() from the affected error paths to release the\nallocations.\n\n[ as: commit message and log edits ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:10:39.755Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9ab5293d9ac3f2c4232220e563d04701f5f44607"
},
{
"url": "https://git.kernel.org/stable/c/68c967e105d50f885e02b0dbdc9211fd5f84bdcd"
},
{
"url": "https://git.kernel.org/stable/c/0b63788093ff6ccfffe6e87de9e08aeeb406599c"
},
{
"url": "https://git.kernel.org/stable/c/5804e6a6912b5a1e47c821777d69191d69a3fe64"
},
{
"url": "https://git.kernel.org/stable/c/52a7e7ece79c4b0f406149e19cd2b4b11a6c19e4"
},
{
"url": "https://git.kernel.org/stable/c/f4ca396bdd60b4e0a665b2589bfc4ddbea9bda2b"
},
{
"url": "https://git.kernel.org/stable/c/7e49684d90faa34ff6d5586be658e986d9d475ac"
},
{
"url": "https://git.kernel.org/stable/c/1a6b6442a982d0ca5fb6a1a39b6f6dfd760eda57"
}
],
"title": "nvdimm/btt: Free arenas on btt_init() error paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72224",
"datePublished": "2026-08-15T05:54:16.781Z",
"dateReserved": "2026-08-09T03:40:39.913Z",
"dateUpdated": "2026-08-17T05:10:39.755Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89899 (GCVE-0-2026-89899)
Vulnerability from cvelistv5
Published
2026-09-16 10:31
Modified
2026-10-19 08:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
media: cec: disable delayed work before freeing an interrupted transmit
cec_transmit_msg_fh() drops adap->lock to wait for a blocking transmit in
wait_for_completion_killable(). If that wait is interrupted by a signal,
cancel_delayed_work_sync() can run before the CEC kthread arms the reply
timeout via schedule_delayed_work(&data->work) in cec_transmit_done_ts().
The work is then armed after the cancel, and the data is freed with its
delayed_work still pending:
ODEBUG: free active (active state 0) object: ... hint: cec_wait_timeout
Use disable_delayed_work_sync(): it cancels the work and disables it, so
the later schedule_delayed_work() becomes a no-op and the work cannot be
re-armed. The data is freed right after, so it need not be re-enabled.
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 490d84f6d73c12f4204241cff8651eed60aae914 Version: 490d84f6d73c12f4204241cff8651eed60aae914 Version: 490d84f6d73c12f4204241cff8651eed60aae914 Version: 490d84f6d73c12f4204241cff8651eed60aae914 Version: e448dfd6d3ec944411f6575bc24e4f8baa1e297f Version: 2781b86d7e45de09befa5ace296b66787146561f Version: 4.18.19 ≤ Version: 4.19.2 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/media/cec/core/cec-adap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9a951931d4b4084acd64fa55fc3672a9da45ddf9",
"status": "affected",
"version": "490d84f6d73c12f4204241cff8651eed60aae914",
"versionType": "git"
},
{
"lessThan": "a3adb63b121937b97f7fdc51e96564c7c799538b",
"status": "affected",
"version": "490d84f6d73c12f4204241cff8651eed60aae914",
"versionType": "git"
},
{
"lessThan": "9c6ceb0949227c1f0cf0e19393daec72d9889871",
"status": "affected",
"version": "490d84f6d73c12f4204241cff8651eed60aae914",
"versionType": "git"
},
{
"lessThan": "0fbd5c2327020858c45b2d1c65775d64cdeca523",
"status": "affected",
"version": "490d84f6d73c12f4204241cff8651eed60aae914",
"versionType": "git"
},
{
"status": "affected",
"version": "e448dfd6d3ec944411f6575bc24e4f8baa1e297f",
"versionType": "git"
},
{
"status": "affected",
"version": "2781b86d7e45de09befa5ace296b66787146561f",
"versionType": "git"
},
{
"lessThan": "4.19",
"status": "affected",
"version": "4.18.19",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/media/cec/core/cec-adap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.20"
},
{
"lessThan": "4.20",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.18.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: cec: disable delayed work before freeing an interrupted transmit\n\ncec_transmit_msg_fh() drops adap-\u003elock to wait for a blocking transmit in\nwait_for_completion_killable(). If that wait is interrupted by a signal,\ncancel_delayed_work_sync() can run before the CEC kthread arms the reply\ntimeout via schedule_delayed_work(\u0026data-\u003ework) in cec_transmit_done_ts().\nThe work is then armed after the cancel, and the data is freed with its\ndelayed_work still pending:\n\n ODEBUG: free active (active state 0) object: ... hint: cec_wait_timeout\n\nUse disable_delayed_work_sync(): it cancels the work and disables it, so\nthe later schedule_delayed_work() becomes a no-op and the work cannot be\nre-armed. The data is freed right after, so it need not be re-enabled."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is in cec_transmit_msg_fh(), reached only via the local CEC_TRANSMIT ioctl on /dev/cec* (cec_ioctl to cec_transmit). A CEC peer on the HDMI bus cannot signal-interrupt wait_for_completion_killable(), so this is Local, unlike CEC RX IRQ bugs scored Adjacent.\nAC:L - The attacker issues a blocking CEC_TRANSMIT with a reply timeout and signals their own thread so cancel_delayed_work_sync() races the CEC kthread arming data-\u003ework in cec_transmit_done_ts(). They control both sides and can retry; syzkaller triggered it.\nPR:L - cec_open() defaults to CEC_MODE_INITIATOR, and neither CEC_TRANSMIT nor CEC_ADAP_S_LOG_ADDRS calls capable(). Only raw mode needs CAP_SYS_RAWIO and monitor modes need CAP_NET_ADMIN, neither required here. Unprivileged users with /dev/cec (video group, uaccess, Android HDMI-CEC) can trigger it.\nUI:N - The attacker opens /dev/cec, configures logical addresses, issues the blocking transmit ioctl, and delivers a signal to their own process. No separate victim action is required.\nS:U - The use-after-free corrupts kernel heap (struct cec_data) in the host kernel. It does not cross a VM, IOMMU, or other separate security authority.\nC:H - cec_wait_timeout() runs on a kmalloc\u0027d struct cec_data after kfree(), so a sprayed replacement object yields an attacker-controlled adap pointer and list walks. Per kernel CNA guidance, use-after-free is High confidentiality.\nI:H - The delayed-work UAF lets the attacker spray struct cec_data and corrupt list_heads and the adapter mutex when cec_wait_timeout()/cec_data_cancel() run, enabling arbitrary write and control-flow hijack. Per kernel CNA guidance, use-after-free is High integrity.\nA:H - Freeing struct cec_data while its delayed_work is still pending causes cec_wait_timeout() to run on freed memory, producing a kernel oops or panic even without a full exploit. Per kernel CNA guidance, use-after-free is High availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:54:32.139Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9a951931d4b4084acd64fa55fc3672a9da45ddf9"
},
{
"url": "https://git.kernel.org/stable/c/a3adb63b121937b97f7fdc51e96564c7c799538b"
},
{
"url": "https://git.kernel.org/stable/c/9c6ceb0949227c1f0cf0e19393daec72d9889871"
},
{
"url": "https://git.kernel.org/stable/c/0fbd5c2327020858c45b2d1c65775d64cdeca523"
}
],
"title": "media: cec: disable delayed work before freeing an interrupted transmit",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89899",
"datePublished": "2026-09-16T10:31:59.589Z",
"dateReserved": "2026-09-11T19:38:34.774Z",
"dateUpdated": "2026-10-19T08:54:32.139Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74597 (GCVE-0-2026-74597)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
ip6ip6_err() clones an outer IPv6 ICMP error skb, pulls it to the
quoted inner IPv6 packet, and then passes the clone to icmpv6_send().
The clone still carries the outer packet's inet6_skb_parm in skb->cb.
If the outer packet had a Home Address Option, IP6CB(skb2)->dsthao
remains non-zero after skb_pull(). icmpv6_send() later calls
mip6_addr_swap(), which uses that stale dsthao offset against the quoted
inner packet. A malformed inner destination-options header can then make
the HAO lookup and address swap run past the end of the quoted packet
and corrupt skb_shared_info.
Clear skb2->cb[] before pulling the quoted inner IPv6 packet so the
reply path does not reuse metadata left by the outer IPv6 stack.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 Version: e490d1d85cf5e191791979e5f260d32eb4f703a8 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74597",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:48.402907Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:00.036Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_tunnel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "44fe898df302e91c5ee5acbc71ffa74e78e6c183",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "0dadb0620ab65949a8bc2439dd28ea3c942fe87d",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "b6816536a2990c0db44a26130a03e40b441e829b",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "64e41736a26f37ab6215bc2e6df125df05aceb08",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "484134e1eb07d700a73b1e4bbf3fb503e299be60",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "4eb15c465337b18f44716c499cd6ad63eee0ad54",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "fbf40faa0414b753212494ad197542002e66ed9e",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
},
{
"lessThan": "f803c086399da277b5d0ff36a107d0f162751800",
"status": "affected",
"version": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/ip6_tunnel.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nip6_tunnel: clear skb2-\u003ecb[] in ip6ip6_err()\n\nip6ip6_err() clones an outer IPv6 ICMP error skb, pulls it to the\nquoted inner IPv6 packet, and then passes the clone to icmpv6_send().\nThe clone still carries the outer packet\u0027s inet6_skb_parm in skb-\u003ecb.\n\nIf the outer packet had a Home Address Option, IP6CB(skb2)-\u003edsthao\nremains non-zero after skb_pull(). icmpv6_send() later calls\nmip6_addr_swap(), which uses that stale dsthao offset against the quoted\ninner packet. A malformed inner destination-options header can then make\nthe HAO lookup and address swap run past the end of the quoted packet\nand corrupt skb_shared_info.\n\nClear skb2-\u003ecb[] before pulling the quoted inner IPv6 packet so the\nreply path does not reuse metadata left by the outer IPv6 stack."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when a remote peer sends a forged ICMPv6 error whose quoted payload is an IPv6-in-IPv6 tunnel datagram; processing follows the normal IPv6 receive path (ipv6_rcv -\u003e icmpv6_notify -\u003e tunnel6_err -\u003e ip6ip6_err) with no local access required.\nAC:L - The attacker controls the carrier IPv6 Home Address Option, quoted tunnel/inner headers, and ICMP error type; once an ip6tnl endpoint exists (normal for this subsystem), triggering the stale-dsthao path is reliable and needs no races or victim interaction.\nPR:N - No authentication or capabilities are required on the target; unprivileged remote senders can deliver crafted ICMPv6 errors that the kernel processes on the standard pre-auth receive path (INET6_PROTO_NOPOLICY).\nUI:N - Exploitation requires only delivering a malicious network packet; no victim must open files, click links, or perform any other action.\nS:U - Impact is in-kernel memory corruption on the receiving host within the same security authority; it does not by itself cross VM, container, or IOMMU boundaries.\nC:H - With CONFIG_IPV6_MIP6, mip6_addr_swap() uses the stale dsthao offset to scan the quoted inner packet and can read attacker-controlled bytes past the skb tail while resolving a fake HAO TLV before swapping addresses.\nI:H - The resulting 16-byte swap(iph-\u003esaddr, hao-\u003eaddr) can write beyond the quoted packet into skb_shared_info, giving attacker-influenced heap corruption suitable for further control-flow or data manipulation.\nA:H - Corrupting skb_shared_info from the network input path can cause kernel oops/panic or otherwise deny service on IPv6 tunnel endpoints, and the condition is repeatable with crafted packets."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:23.709Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/44fe898df302e91c5ee5acbc71ffa74e78e6c183"
},
{
"url": "https://git.kernel.org/stable/c/0dadb0620ab65949a8bc2439dd28ea3c942fe87d"
},
{
"url": "https://git.kernel.org/stable/c/b6816536a2990c0db44a26130a03e40b441e829b"
},
{
"url": "https://git.kernel.org/stable/c/64e41736a26f37ab6215bc2e6df125df05aceb08"
},
{
"url": "https://git.kernel.org/stable/c/484134e1eb07d700a73b1e4bbf3fb503e299be60"
},
{
"url": "https://git.kernel.org/stable/c/4eb15c465337b18f44716c499cd6ad63eee0ad54"
},
{
"url": "https://git.kernel.org/stable/c/fbf40faa0414b753212494ad197542002e66ed9e"
},
{
"url": "https://git.kernel.org/stable/c/f803c086399da277b5d0ff36a107d0f162751800"
}
],
"title": "ip6_tunnel: clear skb2-\u003ecb[] in ip6ip6_err()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74597",
"datePublished": "2026-08-22T15:31:47.120Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:06:00.036Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93782 (GCVE-0-2026-93782)
Vulnerability from cvelistv5
Published
2026-09-24 16:02
Modified
2026-10-03 10:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vhost-scsi: flush backend after device ioctls
vhost-scsi translates guest response descriptors into userspace iovecs
when commands are submitted. Target-core completes those commands
asynchronously, so VHOST_SET_MEM_TABLE can replace the memory table while
an in-flight command still retains response iovecs translated through the
old table.
If the old mapping is reused after VHOST_SET_MEM_TABLE returns, command
completion can write the response to an unrelated userspace object.
Flush the vhost-scsi backend after vhost_dev_ioctl() handles a device
ioctl. This waits for in-flight commands that can still use the old
response iovecs before the ioctl returns.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 Version: 057cbf49a1f08297877e46c82f707b1bfea806a8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vhost/scsi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6436411203d8c702ffc055700f1a6bde488ff681",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "cec088285adcc7ae23c119b6bbdb22270dc2de8f",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "e0bf6bed528693a6b32439ab122b34a34b66d96f",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "be2636e1b21fe860db918152abf2932638d06ed7",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "981c97d09c6b9560bb12dcc41f11ce59b1a48e97",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "6c1b802e36b05ebd9d41686c4dce6f06966af469",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
},
{
"lessThan": "22598f55a4c2b510b3df5e69e563387a963222ae",
"status": "affected",
"version": "057cbf49a1f08297877e46c82f707b1bfea806a8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vhost/scsi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvhost-scsi: flush backend after device ioctls\n\nvhost-scsi translates guest response descriptors into userspace iovecs\nwhen commands are submitted. Target-core completes those commands\nasynchronously, so VHOST_SET_MEM_TABLE can replace the memory table while\nan in-flight command still retains response iovecs translated through the\nold table.\n\nIf the old mapping is reused after VHOST_SET_MEM_TABLE returns, command\ncompletion can write the response to an unrelated userspace object.\n\nFlush the vhost-scsi backend after vhost_dev_ioctl() handles a device\nioctl. This waits for in-flight commands that can still use the old\nresponse iovecs before the ioctl returns."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The missing flush is in vhost_scsi_ioctl() after vhost_dev_ioctl() handles VHOST_SET_MEM_TABLE via vhost_set_memory() on /dev/vhost-scsi; the retained pointers are tvc_resp_iovs filled by vhost_scsi_setup_resp_iovs() from vhost_get_vq_desc() on the local virtio-scsi virtqueue, not a network PDU.\nAC:H - A guest can leave commands in target-core via vhost_scsi_handle_vq()-\u003evhost_scsi_target_queue_cmd()-\u003etarget_submit(), but cannot call VHOST_SET_MEM_TABLE; only the VMM issues that ioctl (memory hotplug or live migration), so the replacement that makes old HVAs reusable is outside the attacker\u0027s control.\nPR:L - The attacker is a VM tenant sending virtio-scsi I/O that plants those tvc_resp_iovs; vhost_scsi_open() and vhost_scsi_ioctl() have no capable() check, and the already-attached LIO tpg (VHOST_SCSI_SET_ENDPOINT by QEMU) lets that guest I/O run without host root.\nUI:N - The guest plants in-flight commands by kicking its own virtqueue; no other user must mount an image or open a file. A later VMM VHOST_SET_MEM_TABLE is ordinary hypervisor memory-listener bookkeeping, not a tricked interactive action.\nS:C - vhost_scsi_complete_cmd_work() copy_to_iter()s virtio_scsi_cmd_resp through stale tvc_resp_iovs (and vhost_scsi_copy_sgl_to_iov() through a stale read_iter) into the host QEMU mm, so guest-originated completion corrupts VMM userspace across the KVM guest-to-host boundary.\nC:H - After QEMU reuses the old HVA, completion writes into unrelated VMM objects; the copied_iov READ path (vhost_scsi_copy_iov_to_sgl() dup_iter, then vhost_scsi_copy_sgl_to_iov()) can copy LUN data into that remapped heap, which is leverageable to disclose host memory back to the guest.\nI:H - copy_to_iter() of the packed virtio_scsi_cmd_resp plus, when vhost_scsi_map_to_sgl() falls back to vhost_scsi_copy_iov_to_sgl() for misaligned I/O with sgl_count\u003eBIO_MAX_VECS, a guest-influenced READ payload into the remapped HVA, corrupting QEMU heap objects and enabling VMM control-flow hijack.\nA:H - A reused QEMU mapping hit by that completion write corrupts VMM heap metadata and aborts QEMU, terminating the VM; an unmapped old HVA only hits the \"Faulted on virtio_scsi_cmd_resp\" path, but reuse after VHOST_SET_MEM_TABLE is the contract the ioctl was supposed to guarantee."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:16.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6436411203d8c702ffc055700f1a6bde488ff681"
},
{
"url": "https://git.kernel.org/stable/c/cec088285adcc7ae23c119b6bbdb22270dc2de8f"
},
{
"url": "https://git.kernel.org/stable/c/e0bf6bed528693a6b32439ab122b34a34b66d96f"
},
{
"url": "https://git.kernel.org/stable/c/be2636e1b21fe860db918152abf2932638d06ed7"
},
{
"url": "https://git.kernel.org/stable/c/981c97d09c6b9560bb12dcc41f11ce59b1a48e97"
},
{
"url": "https://git.kernel.org/stable/c/6c1b802e36b05ebd9d41686c4dce6f06966af469"
},
{
"url": "https://git.kernel.org/stable/c/22598f55a4c2b510b3df5e69e563387a963222ae"
}
],
"title": "vhost-scsi: flush backend after device ioctls",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93782",
"datePublished": "2026-09-24T16:02:14.457Z",
"dateReserved": "2026-09-18T17:59:28.788Z",
"dateUpdated": "2026-10-03T10:57:16.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93827 (GCVE-0-2026-93827)
Vulnerability from cvelistv5
Published
2026-09-24 16:03
Modified
2026-09-25 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
virtio-fs: avoid double-free on failed queue setup
virtio_fs_setup_vqs() allocates fs->vqs and fs->mq_map before calling
virtio_find_vqs(). If virtio_find_vqs() fails, the error path frees both
pointers and returns an error to virtio_fs_probe().
virtio_fs_probe() then drops the last kobject reference, and
virtio_fs_ktype_release() frees fs->vqs and fs->mq_map again. This leaves
dangling pointers in struct virtio_fs and can trigger a double-free during
probe failure cleanup.
Set fs->vqs and fs->mq_map to NULL immediately after kfree() in the
virtio_fs_setup_vqs() error path so that the later kobject release sees an
uninitialized state and kfree(NULL) becomes harmless.
This can be reproduced when a broken virtio-fs device advertises more
request queues than the transport actually provides. In that case
virtio_find_vqs() fails while setting up the extra queue, and the probe
path reaches the double-free cleanup sequence.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/fuse/virtio_fs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3fbc5ee776fefbc6ea34d2518f1f5f90aa2e1dad",
"status": "affected",
"version": "a8f62f50b4e4ea92a938fca2ec1bd108d7f210e9",
"versionType": "git"
},
{
"lessThan": "20ef4739b329bb09cff11dd2458795a50674658e",
"status": "affected",
"version": "a8f62f50b4e4ea92a938fca2ec1bd108d7f210e9",
"versionType": "git"
},
{
"lessThan": "6af3330ec5d5fb8c06c04eb520a71cf73ea5a765",
"status": "affected",
"version": "a8f62f50b4e4ea92a938fca2ec1bd108d7f210e9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/fuse/virtio_fs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio-fs: avoid double-free on failed queue setup\n\nvirtio_fs_setup_vqs() allocates fs-\u003evqs and fs-\u003emq_map before calling\nvirtio_find_vqs(). If virtio_find_vqs() fails, the error path frees both\npointers and returns an error to virtio_fs_probe().\n\nvirtio_fs_probe() then drops the last kobject reference, and\nvirtio_fs_ktype_release() frees fs-\u003evqs and fs-\u003emq_map again. This leaves\ndangling pointers in struct virtio_fs and can trigger a double-free during\nprobe failure cleanup.\n\nSet fs-\u003evqs and fs-\u003emq_map to NULL immediately after kfree() in the\nvirtio_fs_setup_vqs() error path so that the later kobject release sees an\nuninitialized state and kfree(NULL) becomes harmless.\n\nThis can be reproduced when a broken virtio-fs device advertises more\nrequest queues than the transport actually provides. In that case\nvirtio_find_vqs() fails while setting up the extra queue, and the probe\npath reaches the double-free cleanup sequence."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The triggering field is virtio_fs_config.num_request_queues, read by virtio_cread_le() in virtio_fs_setup_vqs() from virtio_fs_probe() via virtio_dev_probe() after virtio_pci_probe()/register_virtio_device() binds a VIRTIO_ID_FS device; those bytes come from local PCI/MMIO/vDPA config space, not a network protocol message.\nAC:L - A device that advertises more request queues than it exposes makes virtio_find_vqs()-\u003evp_setup_vq() fail (-EINVAL when index \u003e= vp_modern_get_num_queues(), or -ENOENT on queue size 0); virtio_fs_setup_vqs() then kfree\u0027s fs-\u003evqs and fs-\u003emq_map and virtio_fs_probe() always kobject_put()s into the second free, with no race.\nPR:N - virtio_fs_probe()/virtio_fs_setup_vqs() have no capable() or credential check; MODULE_DEVICE_TABLE(virtio, id_table) autoloads virtiofs and virtio_dev_probe() binds a VIRTIO_ID_FS device at enumeration or hotplug, so a malicious virtio-fs backend needs no account on the guest.\nUI:N - The double-free runs in the probe error path (virtio_fs_setup_vqs() failure, then kobject_put() into virtio_fs_ktype_release()) when the device appears; virtio_fs_add_instance() and a virtiofs mount are never reached, so no victim must mount or open anything.\nS:U - virtio_fs_ktype_release() double-frees the guest kernel kmalloc objects fs-\u003evqs and fs-\u003emq_map; that is device-to-guest heap corruption inside the same guest kernel, not a write into host virtiofsd or a KVM/IOMMU escape.\nC:H - kfree(fs-\u003evqs) and kfree(fs-\u003emq_map) in virtio_fs_setup_vqs() leave dangling pointers that virtio_fs_ktype_release() frees again; a slab double-free of that virtio_fs_vq array and per-CPU mq_map lets those objects overlap so the attacker can read adjacent kernel heap.\nI:H - The same second kfree of fs-\u003evqs and fs-\u003emq_map corrupts the SLUB freelist for those kmalloc objects and is an arbitrary-free primitive, enabling heap overwrite and control-flow hijack in the guest kernel.\nA:H - Double-free of fs-\u003evqs and fs-\u003emq_map in virtio_fs_ktype_release() after virtio_find_vqs() fails oopses or panics the guest during probe cleanup (KASAN invalid-free, SLUB poisoned-freelist BUG, or panic_on_oops)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-25T12:43:36.887Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3fbc5ee776fefbc6ea34d2518f1f5f90aa2e1dad"
},
{
"url": "https://git.kernel.org/stable/c/20ef4739b329bb09cff11dd2458795a50674658e"
},
{
"url": "https://git.kernel.org/stable/c/6af3330ec5d5fb8c06c04eb520a71cf73ea5a765"
}
],
"title": "virtio-fs: avoid double-free on failed queue setup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93827",
"datePublished": "2026-09-24T16:03:05.795Z",
"dateReserved": "2026-09-18T17:59:28.792Z",
"dateUpdated": "2026-09-25T12:43:36.887Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80836 (GCVE-0-2026-80836)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
crypto: virtio - bound the akcipher result length
virtio_crypto_dataq_akcipher_callback() sets the result length from the
device-reported response length without bounding it to the destination
buffer, which was allocated for the original request length.
sg_copy_from_buffer() then reads that many bytes from the destination
buffer; a backend reporting a larger length over-reads adjacent kernel
heap into the caller's scatterlist (an out-of-bounds read).
Clamp the reported length to the originally requested destination length.
A conforming device reports no more than that, so valid results are
unaffected.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a Version: a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/crypto/virtio/virtio_crypto_akcipher_algs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bd33cb19bcb432a4dd5e8f50be5e2547af1e9f78",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
},
{
"lessThan": "12c4f29e97f31b013f77ad65ba7daeb02aaa6abe",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
},
{
"lessThan": "5545de5050cbc3594506d74f2c392b0716cf8bca",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
},
{
"lessThan": "3fda114a42f1510a4ec8a0b17a0cfc997952ccc2",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
},
{
"lessThan": "1f9f877b1ef1fbd4ee95571cddf39c8002cee252",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
},
{
"lessThan": "f77a956f6a19f9463ef1527c9d0cda50dded6b92",
"status": "affected",
"version": "a36bd0ad9fbf69d0d711b1c105954ce8d6cc144a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/crypto/virtio/virtio_crypto_akcipher_algs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: virtio - bound the akcipher result length\n\nvirtio_crypto_dataq_akcipher_callback() sets the result length from the\ndevice-reported response length without bounding it to the destination\nbuffer, which was allocated for the original request length.\nsg_copy_from_buffer() then reads that many bytes from the destination\nbuffer; a backend reporting a larger length over-reads adjacent kernel\nheap into the caller\u0027s scatterlist (an out-of-bounds read).\n\nClamp the reported length to the originally requested destination length.\nA conforming device reports no more than that, so valid results are\nunaffected."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:28.509Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bd33cb19bcb432a4dd5e8f50be5e2547af1e9f78"
},
{
"url": "https://git.kernel.org/stable/c/12c4f29e97f31b013f77ad65ba7daeb02aaa6abe"
},
{
"url": "https://git.kernel.org/stable/c/5545de5050cbc3594506d74f2c392b0716cf8bca"
},
{
"url": "https://git.kernel.org/stable/c/3fda114a42f1510a4ec8a0b17a0cfc997952ccc2"
},
{
"url": "https://git.kernel.org/stable/c/1f9f877b1ef1fbd4ee95571cddf39c8002cee252"
},
{
"url": "https://git.kernel.org/stable/c/f77a956f6a19f9463ef1527c9d0cda50dded6b92"
}
],
"title": "crypto: virtio - bound the akcipher result length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80836",
"datePublished": "2026-09-04T15:54:44.981Z",
"dateReserved": "2026-08-26T14:34:25.796Z",
"dateUpdated": "2026-10-19T08:44:28.509Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97543 (GCVE-0-2026-97543)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfs: destroy seen inode bitmap when we fail to add a dirpath
LOLLM observes a memory leak in xchk_dirtree_create_path if we create
the directory path object but appending the name to the path fails.
When this happens, we don't tear down the (empty) seen inode bitmap.
This is a pretty trivial error, but let's not leave logic bombs.
Do the same for a similar bug in xrep_dirtree_create_adoption_path.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/dirtree.c",
"fs/xfs/scrub/dirtree_repair.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3b10ca4302ee2dda4233f70b2033883ee376fa6a",
"status": "affected",
"version": "928b721a11789a9363d6d7c32a1f3166a79f3b5f",
"versionType": "git"
},
{
"lessThan": "0b756de8167f2f06ffceadc71cb17c1fc7be4be8",
"status": "affected",
"version": "928b721a11789a9363d6d7c32a1f3166a79f3b5f",
"versionType": "git"
},
{
"lessThan": "582f54dce62043f7a0503ab8c76d718d0293da59",
"status": "affected",
"version": "928b721a11789a9363d6d7c32a1f3166a79f3b5f",
"versionType": "git"
},
{
"lessThan": "1a441c6842da75c5b862cc1c9f7969d6a93b54b9",
"status": "affected",
"version": "928b721a11789a9363d6d7c32a1f3166a79f3b5f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/xfs/scrub/dirtree.c",
"fs/xfs/scrub/dirtree_repair.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: destroy seen inode bitmap when we fail to add a dirpath\n\nLOLLM observes a memory leak in xchk_dirtree_create_path if we create\nthe directory path object but appending the name to the path fails.\nWhen this happens, we don\u0027t tear down the (empty) seen inode bitmap.\nThis is a pretty trivial error, but let\u0027s not leave logic bombs.\n\nDo the same for a similar bug in xrep_dirtree_create_adoption_path."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:05.396Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3b10ca4302ee2dda4233f70b2033883ee376fa6a"
},
{
"url": "https://git.kernel.org/stable/c/0b756de8167f2f06ffceadc71cb17c1fc7be4be8"
},
{
"url": "https://git.kernel.org/stable/c/582f54dce62043f7a0503ab8c76d718d0293da59"
},
{
"url": "https://git.kernel.org/stable/c/1a441c6842da75c5b862cc1c9f7969d6a93b54b9"
}
],
"title": "xfs: destroy seen inode bitmap when we fail to add a dirpath",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97543",
"datePublished": "2026-09-25T10:21:39.249Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-19T09:09:05.396Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74608 (GCVE-0-2026-74608)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: Fix use-after-free in cifs_try_adding_channels()
cifs_try_adding_channels() takes a temporary reference to an interface
before dropping iface_lock. If cifs_ses_add_channel() fails, it drops
that reference and then increments iface->weight_fulfilled.
A concurrent interface list refresh can remove the list reference while
channel creation is in progress. In that case, the failure-path
kref_put() releases the last reference and frees iface. Updating
weight_fulfilled afterward then accesses freed memory.
Increment weight_fulfilled before dropping the temporary reference,
keeping iface alive for the final access.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cbc53148cc0946b72d62a3c53870cb22ce4ec284 Version: cff97d683a083b862a8bb24309e0f4d2d928128a Version: 6aac002bcfd554aff6d3ebb55e1660d078d70ab0 Version: 6aac002bcfd554aff6d3ebb55e1660d078d70ab0 Version: 6aac002bcfd554aff6d3ebb55e1660d078d70ab0 Version: 6aac002bcfd554aff6d3ebb55e1660d078d70ab0 Version: 22a6c5b3425f327e7f4c3606a72277dce82c7d83 Version: 6.1.78 ≤ Version: 6.6.17 ≤ Version: 6.7.5 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74608",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:11.593248Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:00.915Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/sess.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "64d7584e62ac8cdc750455c5fdc6008fc2de4f06",
"status": "affected",
"version": "cbc53148cc0946b72d62a3c53870cb22ce4ec284",
"versionType": "git"
},
{
"lessThan": "c292d4686f717c03e5022fc4ae7c782f39a94915",
"status": "affected",
"version": "cff97d683a083b862a8bb24309e0f4d2d928128a",
"versionType": "git"
},
{
"lessThan": "47dfac48bce7198ad4f1a388fc8c9491f878ac3b",
"status": "affected",
"version": "6aac002bcfd554aff6d3ebb55e1660d078d70ab0",
"versionType": "git"
},
{
"lessThan": "1ffacbadc14530e55b8d86f7b917524f6a0fb891",
"status": "affected",
"version": "6aac002bcfd554aff6d3ebb55e1660d078d70ab0",
"versionType": "git"
},
{
"lessThan": "1305eadc6a7d78a8d0a52eee29ddd2d9e8a27805",
"status": "affected",
"version": "6aac002bcfd554aff6d3ebb55e1660d078d70ab0",
"versionType": "git"
},
{
"lessThan": "4986410316b1ae0e63c6ce418e4eb196723626e7",
"status": "affected",
"version": "6aac002bcfd554aff6d3ebb55e1660d078d70ab0",
"versionType": "git"
},
{
"status": "affected",
"version": "22a6c5b3425f327e7f4c3606a72277dce82c7d83",
"versionType": "git"
},
{
"lessThan": "6.1.183",
"status": "affected",
"version": "6.1.78",
"versionType": "semver"
},
{
"lessThan": "6.6.152",
"status": "affected",
"version": "6.6.17",
"versionType": "semver"
},
{
"lessThan": "6.8",
"status": "affected",
"version": "6.7.5",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/sess.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "6.1.78",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "6.6.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.7.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: Fix use-after-free in cifs_try_adding_channels()\n\ncifs_try_adding_channels() takes a temporary reference to an interface\nbefore dropping iface_lock. If cifs_ses_add_channel() fails, it drops\nthat reference and then increments iface-\u003eweight_fulfilled.\n\nA concurrent interface list refresh can remove the list reference while\nchannel creation is in progress. In that case, the failure-path\nkref_put() releases the last reference and frees iface. Updating\nweight_fulfilled afterward then accesses freed memory.\n\nIncrement weight_fulfilled before dropping the temporary reference,\nkeeping iface alive for the final access."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in the kernel SMB3 client multichannel path reached while handling remote SMB/CIFS server traffic (channel setup, reconnect, and FSCTL_QUERY_NETWORK_INTERFACE_INFO responses) over TCP, so a malicious or compromised SMB server can trigger it from the network.\nAC:L - A hostile SMB server can force cifs_ses_add_channel() to fail and concurrently drive interface-list refresh during the unlocked window; the attacker controls both sides of the race via reconnects, binding failures, and crafted interface responses with retries.\nPR:N - The attacker only needs to operate the malicious SMB server peer; no credentials, local shell access, or privileges on the victim host are required once the client has an SMB3 multichannel session to that server.\nUI:N - After an SMB3 multichannel mount exists, kernel delayed query_interfaces work, automatic reconnect on dropped TCP, and post-mount channel scaling invoke cifs_try_adding_channels() without further user action, letting the server trigger exploitation repeatedly.\nS:U - The UAF corrupts client kernel heap state within the same host kernel security authority and does not inherently cross a VM, container, or IOMMU security boundary.\nC:H - Writing to a freed cifs_server_iface slab object is a use-after-free; attacker-influenced heap grooming can reclaim the object and enable arbitrary kernel memory disclosure via corrupted or overlapping live allocations.\nI:H - The post-free weight_fulfilled increment is a kernel heap write after free that can corrupt adjacent slab objects and be leveraged into arbitrary write or control-flow hijacking through heap shaping.\nA:H - The use-after-free can cause KASAN-detectable slab corruption, kernel oops, or panic, and a malicious server can retrigger it by repeating failed channel opens with concurrent interface-list refresh on reconnect."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:33.533Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/64d7584e62ac8cdc750455c5fdc6008fc2de4f06"
},
{
"url": "https://git.kernel.org/stable/c/c292d4686f717c03e5022fc4ae7c782f39a94915"
},
{
"url": "https://git.kernel.org/stable/c/47dfac48bce7198ad4f1a388fc8c9491f878ac3b"
},
{
"url": "https://git.kernel.org/stable/c/1ffacbadc14530e55b8d86f7b917524f6a0fb891"
},
{
"url": "https://git.kernel.org/stable/c/1305eadc6a7d78a8d0a52eee29ddd2d9e8a27805"
},
{
"url": "https://git.kernel.org/stable/c/4986410316b1ae0e63c6ce418e4eb196723626e7"
}
],
"title": "smb: client: Fix use-after-free in cifs_try_adding_channels()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74608",
"datePublished": "2026-08-22T15:31:55.298Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:00.915Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89482 (GCVE-0-2026-89482)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone
Commit 25e5cb780e62 ("nvme-tcp: fix possible crash in write_zeroes
processing") established that blk_rq_payload_bytes() must not be read
without first checking blk_rq_nr_phys_segments(), and recorded the
result in nvme_tcp_setup_cmd_pdu() as req->data_len. The receive side
was left as it was.
The two differ for REQ_OP_WRITE_ZEROES, which has no physical segments
but a non-zero blk_rq_bytes(), so setup leaves req->iter untouched
while the receive gate lets a C2HData through and nvme_tcp_recv_data()
copies into whatever the previous command on that tag left there. The
driver-private area is zeroed only when the tag set is allocated.
Reproduced with a test target that leaves a residual iterator on a tag
and then sends a C2HData for a WRITE_ZEROES command on the same tag:
BUG: KASAN: wild-memory-access in _copy_to_iter+0x642/0x1330
Write of size 512 at addr ffe728c2175dfa81 by task kworker/0:1H/103
CPU: 0 UID: 0 PID: 103 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy)
Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: nvme_tcp_wq nvme_tcp_io_work
Call Trace:
<TASK>
dump_stack_lvl+0x53/0x70
kasan_report+0xce/0x100
? _copy_to_iter+0x642/0x1330
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x3c/0x60
_copy_to_iter+0x642/0x1330
? __pfx_sock_has_perm+0x10/0x10
? worker_thread+0x45b/0xd10
? __pfx__copy_to_iter+0x10/0x10
? _raw_spin_lock_bh+0x83/0xe0
? __pfx__raw_spin_lock_bh+0x10/0x10
__skb_datagram_iter+0xf3/0x820
? __pfx_simple_copy_to_iter+0x10/0x10
? __asan_memcpy+0x3c/0x60
? skb_copy_bits+0x58d/0x830
skb_copy_datagram_iter+0x37/0x120
nvme_tcp_recv_skb+0xa07/0x4320
? __pfx_nvme_tcp_recv_skb+0x10/0x10
__tcp_read_sock+0x1ab/0x810
? __pfx_nvme_tcp_recv_skb+0x10/0x10
? __pfx_lock_sock_nested+0x10/0x10
? __pfx___tcp_read_sock+0x10/0x10
nvme_tcp_try_recv+0x152/0x1e0
? __pfx_nvme_tcp_try_recv+0x10/0x10
? __pfx_mutex_unlock+0x10/0x10
nvme_tcp_io_work+0x1e4/0x6c0
? __schedule+0x181a/0x49f0
? __pfx_nvme_tcp_io_work+0x10/0x10
process_one_work+0x633/0x1030
Keep the blk_rq_payload_bytes() test and add req->data_len to it. The
old test is what rejects a C2HData naming a tag that is no longer in
flight, because blk_update_request() zeroes rq->__data_len on
completion; req->data_len and req->curr_bio are driver-private and
survive completion, so they cannot stand in for it. Setup initialises
the iterator only when both req->curr_bio and req->data_len are set, so
the gate now tests the same two.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: 25e5cb780e62bde432b401f312bb847edc78b432 Version: f507ae6e33cbe56c4e3fe000434fc0ecc263d098 Version: b1458c16f4e26e87492e58e4d24a1873bd09232a Version: 5.4.36 ≤ Version: 5.6.8 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89482",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:37.965026Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:39.839Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "32ea8ce96b9bd797c59c351ce490ffd97adaa8c0",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "dd8906bb8f8d5bf1c9f861e1382c82b87bfe7cab",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "7ed0b61bbc145988be292c4d3ec580aebd8d2bcd",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "b96e1ff75e5c0ad6e077ac002b1d30b0a2b49528",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "b36161701cb366f416afdcf70771d432a7c74753",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "6a01b58263108eaf9869bb6f82f07709240c6589",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "641ad3a30ba560f0a9a610376c568d7b75d2a2aa",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"lessThan": "3a4aa9e6ad3e35f8e24d5eaf38ee4d437075fb36",
"status": "affected",
"version": "25e5cb780e62bde432b401f312bb847edc78b432",
"versionType": "git"
},
{
"status": "affected",
"version": "f507ae6e33cbe56c4e3fe000434fc0ecc263d098",
"versionType": "git"
},
{
"status": "affected",
"version": "b1458c16f4e26e87492e58e4d24a1873bd09232a",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.36",
"versionType": "semver"
},
{
"lessThan": "5.7",
"status": "affected",
"version": "5.6.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.7"
},
{
"lessThan": "5.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone\n\nCommit 25e5cb780e62 (\"nvme-tcp: fix possible crash in write_zeroes\nprocessing\") established that blk_rq_payload_bytes() must not be read\nwithout first checking blk_rq_nr_phys_segments(), and recorded the\nresult in nvme_tcp_setup_cmd_pdu() as req-\u003edata_len. The receive side\nwas left as it was.\n\nThe two differ for REQ_OP_WRITE_ZEROES, which has no physical segments\nbut a non-zero blk_rq_bytes(), so setup leaves req-\u003eiter untouched\nwhile the receive gate lets a C2HData through and nvme_tcp_recv_data()\ncopies into whatever the previous command on that tag left there. The\ndriver-private area is zeroed only when the tag set is allocated.\n\nReproduced with a test target that leaves a residual iterator on a tag\nand then sends a C2HData for a WRITE_ZEROES command on the same tag:\n\nBUG: KASAN: wild-memory-access in _copy_to_iter+0x642/0x1330\nWrite of size 512 at addr ffe728c2175dfa81 by task kworker/0:1H/103\n\nCPU: 0 UID: 0 PID: 103 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy)\nHardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\nWorkqueue: nvme_tcp_wq nvme_tcp_io_work\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x53/0x70\n kasan_report+0xce/0x100\n ? _copy_to_iter+0x642/0x1330\n kasan_check_range+0x105/0x1b0\n __asan_memcpy+0x3c/0x60\n _copy_to_iter+0x642/0x1330\n ? __pfx_sock_has_perm+0x10/0x10\n ? worker_thread+0x45b/0xd10\n ? __pfx__copy_to_iter+0x10/0x10\n ? _raw_spin_lock_bh+0x83/0xe0\n ? __pfx__raw_spin_lock_bh+0x10/0x10\n __skb_datagram_iter+0xf3/0x820\n ? __pfx_simple_copy_to_iter+0x10/0x10\n ? __asan_memcpy+0x3c/0x60\n ? skb_copy_bits+0x58d/0x830\n skb_copy_datagram_iter+0x37/0x120\n nvme_tcp_recv_skb+0xa07/0x4320\n ? __pfx_nvme_tcp_recv_skb+0x10/0x10\n __tcp_read_sock+0x1ab/0x810\n ? __pfx_nvme_tcp_recv_skb+0x10/0x10\n ? __pfx_lock_sock_nested+0x10/0x10\n ? __pfx___tcp_read_sock+0x10/0x10\n nvme_tcp_try_recv+0x152/0x1e0\n ? __pfx_nvme_tcp_try_recv+0x10/0x10\n ? __pfx_mutex_unlock+0x10/0x10\n nvme_tcp_io_work+0x1e4/0x6c0\n ? __schedule+0x181a/0x49f0\n ? __pfx_nvme_tcp_io_work+0x10/0x10\n process_one_work+0x633/0x1030\n\nKeep the blk_rq_payload_bytes() test and add req-\u003edata_len to it. The\nold test is what rejects a C2HData naming a tag that is no longer in\nflight, because blk_update_request() zeroes rq-\u003e__data_len on\ncompletion; req-\u003edata_len and req-\u003ecurr_bio are driver-private and\nsurvive completion, so they cannot stand in for it. Setup initialises\nthe iterator only when both req-\u003ecurr_bio and req-\u003edata_len are set, so\nthe gate now tests the same two."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The nvme-tcp host receive path parses C2HData PDUs from a remote NVMe/TCP target over a routable TCP connection (typically port 4420); a malicious or compromised target, or an on-path attacker injecting into the stream, triggers the bug from the network.\nAC:L - A malicious target can advertise WRITE_ZEROES, wait for tag reuse after a data command, and send C2HData for that in-flight WRITE_ZEROES; leftover iterator state is deterministic because driver-private fields are not cleared on reuse, so no race or memory-layout luck is required.\nPR:N - NVMe/TCP authentication (TLS, DH-HMAC-CHAP) is optional and off by default; the vulnerable copy runs on C2HData from the connected peer, which needs no credentials or privileges on the victim host.\nUI:N - Once the host is connected to the target as persistent storage, ordinary filesystem and block I/O generate WRITE_ZEROES commands; the attacker sends the crafted PDU without any further victim action.\nS:U - The stale-iterator write corrupts memory in the same host kernel security authority; this is not a VM, IOMMU, or sandbox boundary crossing.\nC:H - nvme_tcp_recv_data() writes attacker-controlled C2HData through a leftover iov_iter into pages from a previously completed command on the same tag, a use-after-free of those buffers that can be turned into an arbitrary read via heap reuse.\nI:H - The copy is a use-after-free / wild write of attacker-chosen contents and length into reused kernel or page-cache memory, which is exploitable for arbitrary write and control-flow hijacking.\nA:H - The same stale-iterator write was reproduced as a KASAN wild-memory-access in _copy_to_iter from nvme_tcp_io_work and can oops or panic the host kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:32.356Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/32ea8ce96b9bd797c59c351ce490ffd97adaa8c0"
},
{
"url": "https://git.kernel.org/stable/c/dd8906bb8f8d5bf1c9f861e1382c82b87bfe7cab"
},
{
"url": "https://git.kernel.org/stable/c/7ed0b61bbc145988be292c4d3ec580aebd8d2bcd"
},
{
"url": "https://git.kernel.org/stable/c/b96e1ff75e5c0ad6e077ac002b1d30b0a2b49528"
},
{
"url": "https://git.kernel.org/stable/c/b36161701cb366f416afdcf70771d432a7c74753"
},
{
"url": "https://git.kernel.org/stable/c/6a01b58263108eaf9869bb6f82f07709240c6589"
},
{
"url": "https://git.kernel.org/stable/c/641ad3a30ba560f0a9a610376c568d7b75d2a2aa"
},
{
"url": "https://git.kernel.org/stable/c/3a4aa9e6ad3e35f8e24d5eaf38ee4d437075fb36"
}
],
"title": "nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89482",
"datePublished": "2026-09-11T19:43:37.236Z",
"dateReserved": "2026-09-11T19:38:34.712Z",
"dateUpdated": "2026-10-19T08:47:32.356Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89791 (GCVE-0-2026-89791)
Vulnerability from cvelistv5
Published
2026-09-16 08:48
Modified
2026-10-19 08:52
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf: Fix use-after-free when perf mmap() revival races with the last munmap()
perf_mmap_close() drops rb->mmap_count *without* holding
event->mmap_mutex (the refcount_dec_and_test() right before the
refcount_dec_and_mutex_lock() of event->mmap_count). A concurrent
perf_mmap_rb() can slot its entire "revival" path into that window
(perf_mmap holds event->mmap_mutex for its whole duration, including
rb_alloc):
munmap side (perf_mmap_close) mmap side (perf_mmap_rb)
----------------------------------- --------------------------------
rb->mmap_count 1 -> 0 (no lock) (holds event->mmap_mutex)
inc_not_zero(rb->mmap_count) fails
ring_buffer_attach(event, NULL)
rb_alloc() + attach new rb
refcount_set(&event->mmap_count, 1)
lock; event->mmap_count 1 -> 0
ring_buffer_attach(event, NULL)
ring_buffer_put() -> frees the *new* rb
The revival's refcount_set(&event->mmap_count, 1) is an invisible
1 -> 1 write: the close frees the just-revived buffer although the
other process still has it mapped -- a page-level use-after-free
allowing local privilege escalation to root by any unprivileged user
(default kernel.perf_event_paranoid=2).
Swap the order of the two counter updates: event->mmap_count is
dropped first via refcount_dec_and_mutex_lock(), so its 1 -> 0
transition and the ring_buffer_attach() stay serialized with
perf_mmap(). rb->mmap_count == 0 then implies every event using the
buffer is detached already, so the result of the rb->mmap_count drop
can gate the remaining teardown directly and detach_rest is no longer
needed.
An earlier fix for this race from Kyle Zeng and David Lee takes
event->mmap_mutex around both counter updates [0]; here the not-last
close stays lockless.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "929cb3b9dc818dd9fa89d510d4ff2b255e42badd",
"status": "affected",
"version": "59741451b49ce9964a9758c19d6f7df2a1255c75",
"versionType": "git"
},
{
"lessThan": "0c739f54f1c77f3a4643160cd2e031b6c2f2aab6",
"status": "affected",
"version": "59741451b49ce9964a9758c19d6f7df2a1255c75",
"versionType": "git"
},
{
"lessThan": "58a8108bc73de0740d5b88150465d6690ea5f85f",
"status": "affected",
"version": "59741451b49ce9964a9758c19d6f7df2a1255c75",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.18"
},
{
"lessThan": "6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf: Fix use-after-free when perf mmap() revival races with the last munmap()\n\nperf_mmap_close() drops rb-\u003emmap_count *without* holding\nevent-\u003emmap_mutex (the refcount_dec_and_test() right before the\nrefcount_dec_and_mutex_lock() of event-\u003emmap_count). A concurrent\nperf_mmap_rb() can slot its entire \"revival\" path into that window\n(perf_mmap holds event-\u003emmap_mutex for its whole duration, including\nrb_alloc):\n\n munmap side (perf_mmap_close) mmap side (perf_mmap_rb)\n ----------------------------------- --------------------------------\n rb-\u003emmap_count 1 -\u003e 0 (no lock) (holds event-\u003emmap_mutex)\n inc_not_zero(rb-\u003emmap_count) fails\n ring_buffer_attach(event, NULL)\n rb_alloc() + attach new rb\n refcount_set(\u0026event-\u003emmap_count, 1)\n lock; event-\u003emmap_count 1 -\u003e 0\n ring_buffer_attach(event, NULL)\n ring_buffer_put() -\u003e frees the *new* rb\n\nThe revival\u0027s refcount_set(\u0026event-\u003emmap_count, 1) is an invisible\n1 -\u003e 1 write: the close frees the just-revived buffer although the\nother process still has it mapped -- a page-level use-after-free\nallowing local privilege escalation to root by any unprivileged user\n(default kernel.perf_event_paranoid=2).\n\nSwap the order of the two counter updates: event-\u003emmap_count is\ndropped first via refcount_dec_and_mutex_lock(), so its 1 -\u003e 0\ntransition and the ring_buffer_attach() stay serialized with\nperf_mmap(). rb-\u003emmap_count == 0 then implies every event using the\nbuffer is detached already, so the result of the rb-\u003emmap_count drop\ncan gate the remaining teardown directly and detach_rest is no longer\nneeded.\n\nAn earlier fix for this race from Kyle Zeng and David Lee takes\nevent-\u003emmap_mutex around both counter updates [0]; here the not-last\nclose stays lockless."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only via local syscalls: perf_event_open(2) then mmap(2)/munmap(2) on the resulting perf fd (perf_fops.mmap \u2192 perf_mmap \u2192 perf_mmap_rb racing perf_mmap_close). There is no network, adjacent-radio, or physical path into the ring-buffer revival race.\nAC:L - The attacker drives both sides from threads or processes sharing the fd: one munmap() runs perf_mmap_close() while a concurrent mmap() holds event-\u003emmap_mutex through rb_alloc() and map_range(). That is an attacker-controlled, freely retryable race, not an uninfluenced layout or victim-state condition.\nPR:L - Default kernel.perf_event_paranoid=2 still allows an unprivileged per-task software event with exclude_kernel set; perf_mmap() only calls the optional LSM security_perf_event_read hook and does not require CAP_PERFMON or CAP_SYS_ADMIN. The fix notes local privilege escalation by any unprivileged user.\nUI:N - The attacker opens the event and races mmap/munmap on that fd in their own process or a helper that inherited the fd. No victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is host-kernel page use-after-free of the perf ring buffer, i.e. standard local privilege escalation in the same OS security authority. It is not a KVM/Xen guest-to-host escape or IOMMU/DMA boundary bypass.\nC:H - perf_mmap_close() frees the revived ring-buffer pages (rb_free) while the concurrent mmap\u0027s VM_PFNMAP VMA still maps those PFNs. That page-level UAF lets the attacker reclaim the pages and read arbitrary kernel memory through the still-valid mapping.\nI:H - The same still-mapped PFNs remain writable on the user control page (perf_mmap_pfn_mkwrite), so reclaim/spray of the freed pages yields a kernel write primitive. The fix commit describes this as local privilege escalation to root, matching UAF integrity High.\nA:H - Use-after-free of the ring buffer while it remains mapped causes kernel oops or panic on reuse, and the reporters documented a panic reproducer. Any kernel UAF is availability High even without a completed privilege-escalation exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:45.122Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/929cb3b9dc818dd9fa89d510d4ff2b255e42badd"
},
{
"url": "https://git.kernel.org/stable/c/0c739f54f1c77f3a4643160cd2e031b6c2f2aab6"
},
{
"url": "https://git.kernel.org/stable/c/58a8108bc73de0740d5b88150465d6690ea5f85f"
}
],
"title": "perf: Fix use-after-free when perf mmap() revival races with the last munmap()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89791",
"datePublished": "2026-09-16T08:48:27.020Z",
"dateReserved": "2026-09-11T19:38:34.766Z",
"dateUpdated": "2026-10-19T08:52:45.122Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72348 (GCVE-0-2026-72348)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ip6tables: mark malformed IPv6 extension headers for hotdrop
The ah, hbh and rt matches check that the fixed extension header is
present, then use the header length field to derive the advertised
extension header length for matching.
For the ah match, add the missing advertised-length check. For hbh
and rt, update the existing advertised-length checks. In all three
cases, set hotdrop to true before returning false when the advertised
extension header length exceeds the available skb data.
Returning false treats the packet as a rule mismatch. Set hotdrop to
true and drop malformed packets so they cannot bypass rules intended
to drop packets with these IPv6 extension headers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72348",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:47:39.282484Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:19.696Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/ip6t_ah.c",
"net/ipv6/netfilter/ip6t_hbh.c",
"net/ipv6/netfilter/ip6t_rt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f16d856b6af5fd0e7cb0b0212f70825b599ef72e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fc416870100cf16d5b9495199355a679c3a02d48",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f775fcf384b06f35b612f78fa5601fee99eb6513",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2fd89a50a9783eed8ed23866b11c8b3d8779a7a8",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3578b6d92a5b1e603ae6e8c8f5538a709f03aba4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3d441be2b1c5e98167302fa1c7b61960a067b112",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "d5e39e5eb6b30bc4a3bb7aba54c293cf36a806c7",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "43ccc20b5a733226417832cf16ef45322e594990",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/ip6t_ah.c",
"net/ipv6/netfilter/ip6t_hbh.c",
"net/ipv6/netfilter/ip6t_rt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ip6tables: mark malformed IPv6 extension headers for hotdrop\n\nThe ah, hbh and rt matches check that the fixed extension header is\npresent, then use the header length field to derive the advertised\nextension header length for matching.\n\nFor the ah match, add the missing advertised-length check. For hbh\nand rt, update the existing advertised-length checks. In all three\ncases, set hotdrop to true before returning false when the advertised\nextension header length exceeds the available skb data.\n\nReturning false treats the packet as a rule mismatch. Set hotdrop to\ntrue and drop malformed packets so they cannot bypass rules intended\nto drop packets with these IPv6 extension headers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Malformed IPv6 packets reach ah/hbh/rt ip6tables match functions through netfilter PREROUTING, INPUT, and FORWARD hooks on internet-facing servers, routers, and gateways without any local access.\nAC:L - An attacker reliably crafts IPv6 packets with AH, HBH, or routing extension headers whose length field exceeds available skb data; no race, timing window, or uncontrollable victim state is required.\nPR:N - Exploitation requires only sending IPv6 traffic to a host with ip6tables rules using the ah, hbh, or rt matches; no authentication, local access, or CAP_NET_ADMIN is needed by the attacker.\nUI:N - No victim interaction is required; exploitation is achieved solely by sending crafted network packets to a system running vulnerable ip6tables extension-header match rules.\nS:U - Impact is confined to bypassing kernel netfilter policy enforcement on the affected host or gateway; it does not cross VM, container, or IOMMU security boundaries.\nC:H - Bypassing DROP rules intended to block AH, HBH, or routing-header traffic can admit packets to previously firewalled services and confidential data on protected internal networks.\nI:H - Malformed packets are treated as rule non-matches instead of hotdrop failures, allowing traffic administrators configured ip6tables to reject, bypassing enforced network access controls.\nA:N - The flaw is a logic error in match handling that neither corrupts memory nor triggers kernel oops, panic, or hang; there is no direct availability impact from the bug itself."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:43:06.635Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f16d856b6af5fd0e7cb0b0212f70825b599ef72e"
},
{
"url": "https://git.kernel.org/stable/c/fc416870100cf16d5b9495199355a679c3a02d48"
},
{
"url": "https://git.kernel.org/stable/c/f775fcf384b06f35b612f78fa5601fee99eb6513"
},
{
"url": "https://git.kernel.org/stable/c/2fd89a50a9783eed8ed23866b11c8b3d8779a7a8"
},
{
"url": "https://git.kernel.org/stable/c/3578b6d92a5b1e603ae6e8c8f5538a709f03aba4"
},
{
"url": "https://git.kernel.org/stable/c/3d441be2b1c5e98167302fa1c7b61960a067b112"
},
{
"url": "https://git.kernel.org/stable/c/d5e39e5eb6b30bc4a3bb7aba54c293cf36a806c7"
},
{
"url": "https://git.kernel.org/stable/c/43ccc20b5a733226417832cf16ef45322e594990"
}
],
"title": "netfilter: ip6tables: mark malformed IPv6 extension headers for hotdrop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72348",
"datePublished": "2026-08-15T05:55:52.295Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-10-16T18:55:19.696Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64319 (GCVE-0-2026-64319)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-10-19 20:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-auth: validate reply message payload bounds against transfer length
nvmet_auth_reply() accesses the variable-length rval[] array using
attacker-controlled hl (hash length) and dhvlen (DH value length) fields
without verifying they fit within the allocated buffer of tl bytes.
A malicious NVMe-oF initiator can craft a DHCHAP_REPLY message with a
small transfer length but large hl/dhvlen values, causing out-of-bounds
heap reads when the target processes the DH public key (rval + 2*hl) or
performs the host response memcmp.
With DH authentication configured, the OOB pointer is passed directly to
sg_init_one() and read by crypto_kpp_compute_shared_secret(), reaching
up to 526 bytes past the buffer. This is exploitable pre-authentication.
Add bounds validation ensuring sizeof(*data) + 2*hl + dhvlen <= tl before
any access to the variable-length fields.
Discovered by Atuin - Automated Vulnerability Discovery Engine.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64319",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:39:00.486358Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125 Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:38:23.573Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/fabrics-cmd-auth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "80cd28b56ab62d3e7ed0a7bf05282e6d3ee5b2a0",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "999f6205ede984a786f35f727b01f971b98e215d",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "6d7649c1231dac14d906985d2936967e23041c26",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "caa71b3a43ea5c13fe7141cb019ebcb03b8ac857",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "3a413ece2504c70aa34a20be4dafec04e8c741f9",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/fabrics-cmd-auth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-auth: validate reply message payload bounds against transfer length\n\nnvmet_auth_reply() accesses the variable-length rval[] array using\nattacker-controlled hl (hash length) and dhvlen (DH value length) fields\nwithout verifying they fit within the allocated buffer of tl bytes.\n\nA malicious NVMe-oF initiator can craft a DHCHAP_REPLY message with a\nsmall transfer length but large hl/dhvlen values, causing out-of-bounds\nheap reads when the target processes the DH public key (rval + 2*hl) or\nperforms the host response memcmp.\n\nWith DH authentication configured, the OOB pointer is passed directly to\nsg_init_one() and read by crypto_kpp_compute_shared_secret(), reaching\nup to 526 bytes past the buffer. This is exploitable pre-authentication.\n\nAdd bounds validation ensuring sizeof(*data) + 2*hl + dhvlen \u003c= tl before\nany access to the variable-length fields.\n\nDiscovered by Atuin - Automated Vulnerability Discovery Engine."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote peer can send the malformed Authentication Send command over NVMe/TCP, which dispatches it through nvmet_req_init() and nvmet_parse_fabrics_admin_cmd() to nvmet_execute_auth_send() and nvmet_auth_reply().\nAC:L - The attacker drives the required Connect, Negotiate, Receive, and Reply sequence and controls the transfer length, hash length, DH length, and transaction ID. No race or condition outside the attacker\u0027s control is required.\nPR:N - The allowed Host NQN is an attacker-supplied protocol identifier rather than a credential, and the actual DH-HMAC-CHAP secret is not verified until after the vulnerable read. The path is therefore exploitable pre-authentication.\nUI:N - No victim action is required after the target service and authentication configuration are active; the remote initiator independently completes the protocol sequence.\nS:U - The vulnerable NVMe target code and the affected kernel memory and availability belong to the same host security authority, with no demonstrated VM, IOMMU, or sandbox boundary crossing.\nC:H - The attacker controls a substantial kernel heap over-read through memcmp and the crypto scatterlist/MPI path, with the input pointer reaching hundreds of bytes beyond the allocation and an attacker-selected read length. Adjacent kernel secrets and pointers are therefore at risk.\nI:N - All identified unsafe accesses are reads into correctly sized cryptographic output buffers. No out-of-bounds write, arbitrary modification, or defensible authentication bypass was found.\nA:H - The crypto/MPI over-read can traverse heap-object and page boundaries and fault in kernel context, causing an oops or panic that takes down the storage target or host. An unauthenticated peer can reconnect and trigger it repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:53:19.887Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/80cd28b56ab62d3e7ed0a7bf05282e6d3ee5b2a0"
},
{
"url": "https://git.kernel.org/stable/c/999f6205ede984a786f35f727b01f971b98e215d"
},
{
"url": "https://git.kernel.org/stable/c/6d7649c1231dac14d906985d2936967e23041c26"
},
{
"url": "https://git.kernel.org/stable/c/caa71b3a43ea5c13fe7141cb019ebcb03b8ac857"
},
{
"url": "https://git.kernel.org/stable/c/3a413ece2504c70aa34a20be4dafec04e8c741f9"
}
],
"title": "nvmet-auth: validate reply message payload bounds against transfer length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64319",
"datePublished": "2026-07-25T08:49:48.291Z",
"dateReserved": "2026-07-19T15:36:31.780Z",
"dateUpdated": "2026-10-19T20:38:23.573Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97521 (GCVE-0-2026-97521)
Vulnerability from cvelistv5
Published
2026-09-24 16:05
Modified
2026-09-28 05:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gfs2: fix quota init duplicate scan
gfs2_quota_init() checks for duplicate quota_change IDs while holding
qd_lock and the quota hash bucket bitlock. That path used
gfs2_qd_search_bucket(), which takes a lockref reference via
lockref_get_not_dead().
On PREEMPT_RT this may sleep, which is not allowed under the bucket
bitlock, triggering "sleeping function called from invalid context".
Use a no-ref bucket lookup in this path, then continue duplicate
handling without taking a lockref there.
Refactor gfs2_qd_search_bucket() to build on top of the no-ref helper
so lookup traversal stays in one place.
This patch fixes a bug reported by syzbot.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/gfs2/quota.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7fdcf16e5e14e11028f5bcaa6d25075eb5e876a0",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
},
{
"lessThan": "812a766e2b0a8f4d094393fad13475c57f5f86db",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
},
{
"lessThan": "b99a1f0f18ee50445907f55069e88bcfd8947383",
"status": "affected",
"version": "de0d95c26c41c1776e4d23b1a8b3f2bcfd1dae5f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/gfs2/quota.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngfs2: fix quota init duplicate scan\n\ngfs2_quota_init() checks for duplicate quota_change IDs while holding\nqd_lock and the quota hash bucket bitlock. That path used\ngfs2_qd_search_bucket(), which takes a lockref reference via\nlockref_get_not_dead().\n\nOn PREEMPT_RT this may sleep, which is not allowed under the bucket\nbitlock, triggering \"sleeping function called from invalid context\".\n\nUse a no-ref bucket lookup in this path, then continue duplicate\nhandling without taking a lockref there.\n\nRefactor gfs2_qd_search_bucket() to build on top of the no-ref helper\nso lookup traversal stays in one place.\n\nThis patch fixes a bug reported by syzbot."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-28T05:30:59.436Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7fdcf16e5e14e11028f5bcaa6d25075eb5e876a0"
},
{
"url": "https://git.kernel.org/stable/c/812a766e2b0a8f4d094393fad13475c57f5f86db"
},
{
"url": "https://git.kernel.org/stable/c/b99a1f0f18ee50445907f55069e88bcfd8947383"
}
],
"title": "gfs2: fix quota init duplicate scan",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97521",
"datePublished": "2026-09-24T16:05:21.667Z",
"dateReserved": "2026-09-24T16:01:01.152Z",
"dateUpdated": "2026-09-28T05:30:59.436Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68266 (GCVE-0-2026-68266)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-19 20:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Hold a dma-buf reference for imported BOs
An imported dma-buf BO is created as a ttm_bo_type_sg BO whose
reservation object is the exporter's dma_buf->resv. The importer,
however, only takes a dma-buf reference after a successful
dma_buf_dynamic_attach(). Until then nothing keeps the exporter alive,
so if the exporter is freed while the BO still references its resv, a
later access to that resv is a use-after-free:
Oops: general protection fault, probably for non-canonical address
0x6b6b6b6b6b6b6b9c
Workqueue: ttm ttm_bo_delayed_delete [ttm]
RIP: 0010:mutex_can_spin_on_owner+0x3f/0xc0
This can be reached on two paths:
- dma_buf_dynamic_attach() fails, or
- ttm_bo_init_reserved() fails during BO creation.
In both cases the BO already has bo->base.resv pointing at the exporter
resv, and sg BOs are always torn down via ttm_bo_delayed_delete(), which
locks bo->base.resv asynchronously - potentially after the exporter has
been freed.
Take the dma-buf reference in xe_bo_init_locked(), before
ttm_bo_init_reserved(), so it also covers a creation failure there, and
release it in xe_ttm_bo_destroy(). The reference is held for the whole
BO lifetime, keeping the shared resv alive on every path.
v2:
- Reworked the fix to avoid creating the imported sg BO before
dma_buf_dynamic_attach() succeeds.
- Attach with importer_priv == NULL and make invalidate_mappings ignore
incomplete imports.
v3:
- Dropped the xe-side reordering approach since importer_priv must be
valid when dma_buf_dynamic_attach() publishes the attachment.
- Per Christian's suggestion on the v1 thread, keyed the check on
import_attach rather than removing the sg guard entirely.
- Fixes both xe and amdgpu in a single TTM patch.
v4:
- Moved import_attach check to after dma_resv_copy_fences() so fences
are copied before returning for successful imports (Thomas).
- Removed exporter-alive claim from commit message (Thomas).
v5:
- Add drm/xe patch to keep imported sg BOs off the LRU before attach
succeeds; the TTM fix alone is not sufficient for xe if the BO is
already LRU-visible. (Thomas)
v4 patch:
https://patchwork.freedesktop.org/patch/736663/?series=169129&rev=2
- Patch 1 (drm/ttm) carries Christian's Reviewed-by from v4.
v6:
- Reworked the fix based on Thomas' suggestion. Instead of the TTM resv
individualization (v1-v5) plus the xe off-LRU/placement handling (v5),
just hold a dma-buf reference for the imported BO lifetime so the
shared resv can never be freed while the BO still references it.
Single xe patch, no TTM change. (Thomas)
- Take the reference in xe_bo_init_locked() before ttm_bo_init_reserved()
so a TTM creation failure is covered too (Thomas).
- Dropped the v5 series (drm/ttm + drm/xe off-LRU); the off-LRU approach
also regressed in CI BAT via ttm_bo_pipeline_gutting() creating a ghost
BO that outlived the exporter.
Link to v5: https://patchwork.freedesktop.org/series/169984/
v7:
- Move changelog above --- so it stays in the commit message.
- Reorder changelog entries oldest-to-newest. (Thomas)
(cherry picked from commit 3516f3fae6be35642f8f06f8a218da6425c0306a)
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68266",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:26.487807Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "CWE-416 Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:58.924Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_bo.c",
"drivers/gpu/drm/xe/xe_bo.h",
"drivers/gpu/drm/xe/xe_bo_types.h",
"drivers/gpu/drm/xe/xe_dma_buf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c22d65d62b3318e237c0e5b1177d90ab83d9fe06",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "c1954c66662de477a8f4309335b775f7b07bd28b",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "ba8c4cbb31c6f81fa5b12d6e28f1f706040aff48",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
},
{
"lessThan": "62775525a27c3b0d56382e08ba81ee2d322058b6",
"status": "affected",
"version": "dd08ebf6c3525a7ea2186e636df064ea47281987",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_bo.c",
"drivers/gpu/drm/xe/xe_bo.h",
"drivers/gpu/drm/xe/xe_bo_types.h",
"drivers/gpu/drm/xe/xe_dma_buf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: Hold a dma-buf reference for imported BOs\n\nAn imported dma-buf BO is created as a ttm_bo_type_sg BO whose\nreservation object is the exporter\u0027s dma_buf-\u003eresv. The importer,\nhowever, only takes a dma-buf reference after a successful\ndma_buf_dynamic_attach(). Until then nothing keeps the exporter alive,\nso if the exporter is freed while the BO still references its resv, a\nlater access to that resv is a use-after-free:\n\n Oops: general protection fault, probably for non-canonical address\n 0x6b6b6b6b6b6b6b9c\n Workqueue: ttm ttm_bo_delayed_delete [ttm]\n RIP: 0010:mutex_can_spin_on_owner+0x3f/0xc0\n\nThis can be reached on two paths:\n\n - dma_buf_dynamic_attach() fails, or\n - ttm_bo_init_reserved() fails during BO creation.\n\nIn both cases the BO already has bo-\u003ebase.resv pointing at the exporter\nresv, and sg BOs are always torn down via ttm_bo_delayed_delete(), which\nlocks bo-\u003ebase.resv asynchronously - potentially after the exporter has\nbeen freed.\n\nTake the dma-buf reference in xe_bo_init_locked(), before\nttm_bo_init_reserved(), so it also covers a creation failure there, and\nrelease it in xe_ttm_bo_destroy(). The reference is held for the whole\nBO lifetime, keeping the shared resv alive on every path.\n\nv2:\n - Reworked the fix to avoid creating the imported sg BO before\n dma_buf_dynamic_attach() succeeds.\n - Attach with importer_priv == NULL and make invalidate_mappings ignore\n incomplete imports.\n\nv3:\n - Dropped the xe-side reordering approach since importer_priv must be\n valid when dma_buf_dynamic_attach() publishes the attachment.\n - Per Christian\u0027s suggestion on the v1 thread, keyed the check on\n import_attach rather than removing the sg guard entirely.\n - Fixes both xe and amdgpu in a single TTM patch.\n\nv4:\n - Moved import_attach check to after dma_resv_copy_fences() so fences\n are copied before returning for successful imports (Thomas).\n - Removed exporter-alive claim from commit message (Thomas).\n\nv5:\n - Add drm/xe patch to keep imported sg BOs off the LRU before attach\n succeeds; the TTM fix alone is not sufficient for xe if the BO is\n already LRU-visible. (Thomas)\n v4 patch:\n https://patchwork.freedesktop.org/patch/736663/?series=169129\u0026rev=2\n - Patch 1 (drm/ttm) carries Christian\u0027s Reviewed-by from v4.\n\nv6:\n - Reworked the fix based on Thomas\u0027 suggestion. Instead of the TTM resv\n individualization (v1-v5) plus the xe off-LRU/placement handling (v5),\n just hold a dma-buf reference for the imported BO lifetime so the\n shared resv can never be freed while the BO still references it.\n Single xe patch, no TTM change. (Thomas)\n - Take the reference in xe_bo_init_locked() before ttm_bo_init_reserved()\n so a TTM creation failure is covered too (Thomas).\n - Dropped the v5 series (drm/ttm + drm/xe off-LRU); the off-LRU approach\n also regressed in CI BAT via ttm_bo_pipeline_gutting() creating a ghost\n BO that outlived the exporter.\n Link to v5: https://patchwork.freedesktop.org/series/169984/\n\nv7:\n - Move changelog above --- so it stays in the commit message.\n - Reorder changelog entries oldest-to-newest. (Thomas)\n\n(cherry picked from commit 3516f3fae6be35642f8f06f8a218da6425c0306a)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached through DRM_IOCTL_PRIME_FD_TO_HANDLE on an Intel xe DRM render node (/dev/dri/renderD*), which requires local access to the device file; there is no remote or network-facing path into xe_gem_prime_import().\nAC:L - The attacker fully controls both halves: they pick an exporter whose attach fails deterministically (drm_gem_map_attach() returns -ENOSYS, xe_dma_buf_attach() returns -EOPNOTSUPP for non-p2p cross-device imports) or induce the -ENOMEM paths, then simply close the dma-buf fd while the sg BO teardown is still queued on the TTM workqueue. No condition outside their control is needed.\nPR:L - DRM_IOCTL_PRIME_FD_TO_HANDLE is marked DRM_RENDER_ALLOW, so any unprivileged local user holding the normally world/group-accessible render node (any GUI user on a distro, any app on Android/ChromeOS) can perform the import; no capabilities are checked.\nUI:N - The entire sequence \u2014 export a dma-buf, import it into xe, close the fd \u2014 is performed by the attacker\u0027s own process; no victim action or cooperation is required.\nS:U - The use-after-free occurs on kernel heap memory within the same kernel security authority; there is no crossing of a VM, IOMMU, or sandbox boundary.\nC:H - The freed dma_buf/dma_resv is a slab object the attacker can reclaim with sprayed content before ttm_bo_delayed_delete() dereferences it, so the stale bo-\u003ebase.resv can be aimed at attacker-chosen kernel addresses and the resulting ww_mutex/fence walks leaked back, giving arbitrary kernel memory disclosure.\nI:H - dma_resv_lock()/dma_resv_unlock() and the subsequent ttm_bo_cleanup_memtype_use() perform writes and list manipulation through the dangling pointer into reclaimed heap memory, so the UAF yields a controllable write primitive usable for control-flow hijacking and privilege escalation.\nA:H - Even unexploited, the flaw reliably produces a kernel oops \u2014 the reported general protection fault on poisoned memory in mutex_can_spin_on_owner() from the ttm workqueue \u2014 which is a fatal fault in kernel worker context and takes down the GPU stack or the whole machine."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:01:59.066Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c22d65d62b3318e237c0e5b1177d90ab83d9fe06"
},
{
"url": "https://git.kernel.org/stable/c/c1954c66662de477a8f4309335b775f7b07bd28b"
},
{
"url": "https://git.kernel.org/stable/c/ba8c4cbb31c6f81fa5b12d6e28f1f706040aff48"
},
{
"url": "https://git.kernel.org/stable/c/62775525a27c3b0d56382e08ba81ee2d322058b6"
}
],
"title": "drm/xe: Hold a dma-buf reference for imported BOs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68266",
"datePublished": "2026-08-10T12:01:41.280Z",
"dateReserved": "2026-07-30T09:28:09.378Z",
"dateUpdated": "2026-10-19T20:58:58.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74713 (GCVE-0-2026-74713)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-21 12:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vhost_iotlb: bound map allocation in add_range
vhost_iotlb_add_range_ctx() only retires an old entry when the table
has a non-zero limit, has exactly reached that limit and has
VHOST_IOTLB_FLAG_RETIRE set. Non-retiring tables can keep allocating
entries after reaching their configured limit.
Existing vhost devices allocate their IOTLB with max_iotlb_entries from
vhost.c, which defaults to 2048 and is tunable by module parameter. Use
the caller-provided limit at the allocation point instead of adding a
separate default in the common IOTLB helper, and reject non-positive
values in vhost paths that can report an error.
Other vhost IOTLB users should not create zero-limit tables when entries
can be populated from userspace or guest-controlled requests. Add
caller-side max_iotlb_entries parameters for mlx5 vDPA, VDUSE and
vhost-vDPA. Reject non-positive VDUSE and vhost-vDPA values, and require
at least two entries for vdpa_sim and mlx5 vDPA paths that install
full-range mappings, since those mappings are split into two IOTLB
entries.
Handle full-range mappings in the common helper by checking that the
IOTLB can hold both split entries before inserting the first half. This
avoids returning an error after leaving a half mapping behind.
When the table is full, keep the existing retire behavior for retiring
tables and return -ENOSPC for non-retiring tables. Reuse the retired map
node instead of freeing it and allocating a replacement, so a stream of
IOTLB updates cannot keep forcing GFP_ATOMIC allocations after the table
has reached its limit. If a zero-limit IOTLB still reaches the common
helper, treat it as a configuration error and return -EINVAL.
I found this bug myself, though the patch was written with AI assistance.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74713",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:21.643384Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:11.209Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/mlx5/core/mlx5_vdpa.h",
"drivers/vdpa/mlx5/core/mr.c",
"drivers/vdpa/mlx5/core/resources.c",
"drivers/vdpa/vdpa_sim/vdpa_sim.c",
"drivers/vdpa/vdpa_user/iova_domain.c",
"drivers/vhost/iotlb.c",
"drivers/vhost/vdpa.c",
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "96da3e1439e7d689eea09fc9b6227fbab5b88ac3",
"status": "affected",
"version": "0bbe30668d89ec8a309f28ced6d092c90fb23e8c",
"versionType": "git"
},
{
"lessThan": "eb70200e34772572ad08e99291b08afea6522111",
"status": "affected",
"version": "0bbe30668d89ec8a309f28ced6d092c90fb23e8c",
"versionType": "git"
},
{
"lessThan": "b57164cdddb46924ff9fa191b727ca097744de88",
"status": "affected",
"version": "0bbe30668d89ec8a309f28ced6d092c90fb23e8c",
"versionType": "git"
},
{
"lessThan": "ae128dd19040ee06a4f8143c7ced4d18080d7a9a",
"status": "affected",
"version": "0bbe30668d89ec8a309f28ced6d092c90fb23e8c",
"versionType": "git"
},
{
"lessThan": "1ed35ac7f3fe2b4396bdd29ac3a7f0ebc0829e94",
"status": "affected",
"version": "0bbe30668d89ec8a309f28ced6d092c90fb23e8c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/mlx5/core/mlx5_vdpa.h",
"drivers/vdpa/mlx5/core/mr.c",
"drivers/vdpa/mlx5/core/resources.c",
"drivers/vdpa/vdpa_sim/vdpa_sim.c",
"drivers/vdpa/vdpa_user/iova_domain.c",
"drivers/vhost/iotlb.c",
"drivers/vhost/vdpa.c",
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.7"
},
{
"lessThan": "5.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvhost_iotlb: bound map allocation in add_range\n\nvhost_iotlb_add_range_ctx() only retires an old entry when the table\nhas a non-zero limit, has exactly reached that limit and has\nVHOST_IOTLB_FLAG_RETIRE set. Non-retiring tables can keep allocating\nentries after reaching their configured limit.\n\nExisting vhost devices allocate their IOTLB with max_iotlb_entries from\nvhost.c, which defaults to 2048 and is tunable by module parameter. Use\nthe caller-provided limit at the allocation point instead of adding a\nseparate default in the common IOTLB helper, and reject non-positive\nvalues in vhost paths that can report an error.\n\nOther vhost IOTLB users should not create zero-limit tables when entries\ncan be populated from userspace or guest-controlled requests. Add\ncaller-side max_iotlb_entries parameters for mlx5 vDPA, VDUSE and\nvhost-vDPA. Reject non-positive VDUSE and vhost-vDPA values, and require\nat least two entries for vdpa_sim and mlx5 vDPA paths that install\nfull-range mappings, since those mappings are split into two IOTLB\nentries.\n\nHandle full-range mappings in the common helper by checking that the\nIOTLB can hold both split entries before inserting the first half. This\navoids returning an error after leaving a half mapping behind.\n\nWhen the table is full, keep the existing retire behavior for retiring\ntables and return -ENOSPC for non-retiring tables. Reuse the retired map\nnode instead of freeing it and allocating a replacement, so a stream of\nIOTLB updates cannot keep forcing GFP_ATOMIC allocations after the table\nhas reached its limit. If a zero-limit IOTLB still reaches the common\nhelper, treat it as a configuration error and return -EINVAL.\n\nI found this bug myself, though the patch was written with AI assistance."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached via local VHOST_IOTLB_UPDATE writes on /dev/vhost-* or /dev/vhost-vdpa char devices, or when a KVM guest drives virtio IOTLB misses that the VMM resolves through vhost; it is not triggered by remote network packets.\nAC:L - An attacker reliably floods distinct IOTLB mappings by repeatedly issuing VHOST_IOTLB_UPDATE messages or provoking guest IOTLB misses; no race, rare configuration, or attacker-uncontrollable memory layout is required once vhost IOTLB is active.\nPR:N - A malicious KVM guest can provoke unbounded IOTLB growth through normal virtio IOTLB-miss handling without any host credentials; a host attacker holding the vhost-vdpa/vhost device node also needs no capabilities beyond device access.\nUI:N - Exploitation requires no victim interaction beyond the VM or vhost device already being in use; the attacker programmatically drives the IOTLB update stream in a tight loop.\nS:C - In cloud/KVM deployments, an unprivileged guest VM causes unbounded host-kernel GFP_ATOMIC allocations in vhost_iotlb_add_range_ctx(), crossing the VM/host security boundary to deny service on the hypervisor.\nC:N - The bug causes only unbounded kmalloc of vhost_iotlb_map structures without out-of-bounds access, use-after-free, or information disclosure; successful exploitation does not read kernel memory.\nI:N - No memory corruption or arbitrary write occurs; impact is limited to kernel memory consumption and does not modify data or enable code execution through the allocation flaw itself.\nA:H - Unbounded IOTLB entry allocation or perpetual GFP_ATOMIC kmalloc when tables are at capacity exhausts kernel memory/atomic reserves, causing host OOM, kernel panics, or complete hypervisor denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:13.990Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/96da3e1439e7d689eea09fc9b6227fbab5b88ac3"
},
{
"url": "https://git.kernel.org/stable/c/eb70200e34772572ad08e99291b08afea6522111"
},
{
"url": "https://git.kernel.org/stable/c/b57164cdddb46924ff9fa191b727ca097744de88"
},
{
"url": "https://git.kernel.org/stable/c/ae128dd19040ee06a4f8143c7ced4d18080d7a9a"
},
{
"url": "https://git.kernel.org/stable/c/1ed35ac7f3fe2b4396bdd29ac3a7f0ebc0829e94"
}
],
"title": "vhost_iotlb: bound map allocation in add_range",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74713",
"datePublished": "2026-08-22T15:33:09.028Z",
"dateReserved": "2026-08-15T05:44:03.928Z",
"dateUpdated": "2026-10-21T12:46:13.990Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64405 (GCVE-0-2026-64405)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-08-17 04:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_conn: Fix null ptr deref in hci_abort_conn()
hci_abort_conn() read hci_skb_event(hdev->sent_cmd) when a connection
was pending, but hdev->sent_cmd can be NULL while req_status is still
HCI_REQ_PEND, leading to a NULL pointer dereference and a general
protection fault from the hci_rx_work() receive path.
Instead of inspecting hdev->sent_cmd, track the in-flight create
connection command with a new per-connection HCI_CONN_CREATE flag and
route all cancellation through hci_cancel_connect_sync(), which
dispatches to a dedicated per-type cancel function. The create command
is in exactly one of two states: still queued, or in flight. The cancel
function holds cmd_sync_work_lock across the whole decision: the worker
takes this lock to dequeue every entry, so while it is held a queued
command cannot start running and an in-flight command cannot complete
and let the next command become pending. This keeps the flag test and
hci_cmd_sync_cancel() atomic with respect to the worker, so a queued
command is simply dequeued, and an in-flight command owned by this
connection is cancelled without the risk of cancelling an unrelated
command that became pending in the meantime. CIS uses the same flag
mechanism via HCI_CONN_CREATE_CIS but cannot be dequeued per-connection.
hci_acl_create_conn_sync() and hci_le_create_conn_sync() clear
HCI_CONN_CREATE after the create command completes, but the command
status handler can free conn via hci_conn_del() (for example when the
controller rejects the connection) while the worker is still blocked on
the connection complete event. Hold a reference on conn across the
create command so the flag can be cleared without a use-after-free.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6083089ab00631617f9eac678df3ab050a9d837a Version: a13f316e90fdb1fb6df6582e845aa9b3270f3581 Version: a13f316e90fdb1fb6df6582e845aa9b3270f3581 Version: a13f316e90fdb1fb6df6582e845aa9b3270f3581 Version: a13f316e90fdb1fb6df6582e845aa9b3270f3581 Version: a13f316e90fdb1fb6df6582e845aa9b3270f3581 Version: e4511a67fcdba9729d1c7cfc6d2e645c765ce801 Version: 4ab81f16c68a602b2b69e333ae08d8748a9398de Version: 6.1.83 ≤ Version: 6.4.16 ≤ Version: 6.5.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/bluetooth/hci_core.h",
"net/bluetooth/hci_conn.c",
"net/bluetooth/hci_sync.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "903227b6168bb99fd57d4e3c9c1b5014986198e0",
"status": "affected",
"version": "6083089ab00631617f9eac678df3ab050a9d837a",
"versionType": "git"
},
{
"lessThan": "83b22d7f7c384564fa42c3cf19bec715c693d7a2",
"status": "affected",
"version": "a13f316e90fdb1fb6df6582e845aa9b3270f3581",
"versionType": "git"
},
{
"lessThan": "70c397b62ee015e19b3924d9da741c8dda017819",
"status": "affected",
"version": "a13f316e90fdb1fb6df6582e845aa9b3270f3581",
"versionType": "git"
},
{
"lessThan": "61701912c58a05f6a043f097cc177a964abef348",
"status": "affected",
"version": "a13f316e90fdb1fb6df6582e845aa9b3270f3581",
"versionType": "git"
},
{
"lessThan": "b42cb640a0493d16b61ddd267420274be15efdc1",
"status": "affected",
"version": "a13f316e90fdb1fb6df6582e845aa9b3270f3581",
"versionType": "git"
},
{
"lessThan": "12917f591cea1af36087dba5b9ec888652f0b42a",
"status": "affected",
"version": "a13f316e90fdb1fb6df6582e845aa9b3270f3581",
"versionType": "git"
},
{
"status": "affected",
"version": "e4511a67fcdba9729d1c7cfc6d2e645c765ce801",
"versionType": "git"
},
{
"status": "affected",
"version": "4ab81f16c68a602b2b69e333ae08d8748a9398de",
"versionType": "git"
},
{
"lessThan": "6.1.118",
"status": "affected",
"version": "6.1.83",
"versionType": "semver"
},
{
"lessThan": "6.5",
"status": "affected",
"version": "6.4.16",
"versionType": "semver"
},
{
"lessThan": "6.6",
"status": "affected",
"version": "6.5.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/bluetooth/hci_core.h",
"net/bluetooth/hci_conn.c",
"net/bluetooth/hci_sync.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.118",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.118",
"versionStartIncluding": "6.1.83",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_conn: Fix null ptr deref in hci_abort_conn()\n\nhci_abort_conn() read hci_skb_event(hdev-\u003esent_cmd) when a connection\nwas pending, but hdev-\u003esent_cmd can be NULL while req_status is still\nHCI_REQ_PEND, leading to a NULL pointer dereference and a general\nprotection fault from the hci_rx_work() receive path.\n\nInstead of inspecting hdev-\u003esent_cmd, track the in-flight create\nconnection command with a new per-connection HCI_CONN_CREATE flag and\nroute all cancellation through hci_cancel_connect_sync(), which\ndispatches to a dedicated per-type cancel function. The create command\nis in exactly one of two states: still queued, or in flight. The cancel\nfunction holds cmd_sync_work_lock across the whole decision: the worker\ntakes this lock to dequeue every entry, so while it is held a queued\ncommand cannot start running and an in-flight command cannot complete\nand let the next command become pending. This keeps the flag test and\nhci_cmd_sync_cancel() atomic with respect to the worker, so a queued\ncommand is simply dequeued, and an in-flight command owned by this\nconnection is cancelled without the risk of cancelling an unrelated\ncommand that became pending in the meantime. CIS uses the same flag\nmechanism via HCI_CONN_CREATE_CIS but cannot be dequeued per-connection.\n\nhci_acl_create_conn_sync() and hci_le_create_conn_sync() clear\nHCI_CONN_CREATE after the create command completes, but the command\nstatus handler can free conn via hci_conn_del() (for example when the\ncontroller rejects the connection) while the worker is still blocked on\nthe connection complete event. Hold a reference on conn across the\ncreate command so the flag can be cleared without a use-after-free."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:03.466Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/903227b6168bb99fd57d4e3c9c1b5014986198e0"
},
{
"url": "https://git.kernel.org/stable/c/83b22d7f7c384564fa42c3cf19bec715c693d7a2"
},
{
"url": "https://git.kernel.org/stable/c/70c397b62ee015e19b3924d9da741c8dda017819"
},
{
"url": "https://git.kernel.org/stable/c/61701912c58a05f6a043f097cc177a964abef348"
},
{
"url": "https://git.kernel.org/stable/c/b42cb640a0493d16b61ddd267420274be15efdc1"
},
{
"url": "https://git.kernel.org/stable/c/12917f591cea1af36087dba5b9ec888652f0b42a"
}
],
"title": "Bluetooth: hci_conn: Fix null ptr deref in hci_abort_conn()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64405",
"datePublished": "2026-07-25T08:50:47.262Z",
"dateReserved": "2026-07-19T15:36:31.786Z",
"dateUpdated": "2026-08-17T04:55:03.466Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64457 (GCVE-0-2026-64457)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-08-17 04:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
virtio_pci: fix vq info pointer lookup via wrong index
Unbinding a virtio balloon device:
echo virtio0 > /sys/bus/virtio/drivers/virtio_balloon/unbind
triggers a NULL pointer dereference. The dmesg says:
BUG: kernel NULL pointer dereference, address: 0000000000000008
[...]
RIP: 0010:__list_del_entry_valid_or_report+0x5/0xf0
Call Trace:
<TASK>
vp_del_vqs+0x121/0x230
remove_common+0x135/0x150
virtballoon_remove+0xee/0x100
virtio_dev_remove+0x3b/0x80
device_release_driver_internal+0x187/0x2c0
unbind_store+0xb9/0xe0
kernfs_fop_write_iter.llvm.11660790530567441834+0xf6/0x180
vfs_write+0x2a9/0x3b0
ksys_write+0x5c/0xd0
do_syscall_64+0x54/0x230
entry_SYSCALL_64_after_hwframe+0x29/0x31
[...]
</TASK>
The virtio_balloon device registers 5 queues (inflate, deflate, stats,
free_page, reporting) but only the first two are unconditional. The
stats, free_page and reporting queues are each conditional on their
respective feature bits. When any of these features are absent, the
corresponding vqs_info entry has name == NULL, creating holes in the
array.
The root cause is an indexing mismatch introduced when vq info storage
was changed to be passed as an argument. vp_find_vqs_msix() and
vp_find_vqs_intx() store the info pointer at vp_dev->vqs[i], where 'i'
is the caller's sparse array index. However, the virtqueue itself gets
vq->index assigned from queue_idx, a dense index that skips NULL
entries. When holes exist, 'i' and queue_idx diverge. Later,
vp_del_vqs() looks up info via vp_dev->vqs[vq->index] using the dense
index into the sparsely-populated array, and hits NULL.
Fix this by storing info at vp_dev->vqs[queue_idx] instead of
vp_dev->vqs[i], so the store index matches the lookup index
(vq->index). Apply the fix to both the MSIX and INTX paths.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/virtio/virtio_pci_common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "41e6dc1a10036c9f47057033f19af7e52ec464b6",
"status": "affected",
"version": "89a1c435aec269d109ed46ca7bbb10fa8edf7ace",
"versionType": "git"
},
{
"lessThan": "075bc3c779e1ea7294afabdcb7e0a49536959b28",
"status": "affected",
"version": "89a1c435aec269d109ed46ca7bbb10fa8edf7ace",
"versionType": "git"
},
{
"lessThan": "64a4c0befa77bcc01076aec9f93863ffd4ed06b7",
"status": "affected",
"version": "89a1c435aec269d109ed46ca7bbb10fa8edf7ace",
"versionType": "git"
},
{
"lessThan": "f7d380fb525c13bdd114369a1979c80c346e6abc",
"status": "affected",
"version": "89a1c435aec269d109ed46ca7bbb10fa8edf7ace",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/virtio/virtio_pci_common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_pci: fix vq info pointer lookup via wrong index\n\nUnbinding a virtio balloon device:\n\n echo virtio0 \u003e /sys/bus/virtio/drivers/virtio_balloon/unbind\n\ntriggers a NULL pointer dereference. The dmesg says:\n\n BUG: kernel NULL pointer dereference, address: 0000000000000008\n [...]\n RIP: 0010:__list_del_entry_valid_or_report+0x5/0xf0\n Call Trace:\n \u003cTASK\u003e\n vp_del_vqs+0x121/0x230\n remove_common+0x135/0x150\n virtballoon_remove+0xee/0x100\n virtio_dev_remove+0x3b/0x80\n device_release_driver_internal+0x187/0x2c0\n unbind_store+0xb9/0xe0\n kernfs_fop_write_iter.llvm.11660790530567441834+0xf6/0x180\n vfs_write+0x2a9/0x3b0\n ksys_write+0x5c/0xd0\n do_syscall_64+0x54/0x230\n entry_SYSCALL_64_after_hwframe+0x29/0x31\n [...]\n \u003c/TASK\u003e\n\nThe virtio_balloon device registers 5 queues (inflate, deflate, stats,\nfree_page, reporting) but only the first two are unconditional. The\nstats, free_page and reporting queues are each conditional on their\nrespective feature bits. When any of these features are absent, the\ncorresponding vqs_info entry has name == NULL, creating holes in the\narray.\n\nThe root cause is an indexing mismatch introduced when vq info storage\nwas changed to be passed as an argument. vp_find_vqs_msix() and\nvp_find_vqs_intx() store the info pointer at vp_dev-\u003evqs[i], where \u0027i\u0027\nis the caller\u0027s sparse array index. However, the virtqueue itself gets\nvq-\u003eindex assigned from queue_idx, a dense index that skips NULL\nentries. When holes exist, \u0027i\u0027 and queue_idx diverge. Later,\nvp_del_vqs() looks up info via vp_dev-\u003evqs[vq-\u003eindex] using the dense\nindex into the sparsely-populated array, and hits NULL.\n\nFix this by storing info at vp_dev-\u003evqs[queue_idx] instead of\nvp_dev-\u003evqs[i], so the store index matches the lookup index\n(vq-\u003eindex). Apply the fix to both the MSIX and INTX paths."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:01.747Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/41e6dc1a10036c9f47057033f19af7e52ec464b6"
},
{
"url": "https://git.kernel.org/stable/c/075bc3c779e1ea7294afabdcb7e0a49536959b28"
},
{
"url": "https://git.kernel.org/stable/c/64a4c0befa77bcc01076aec9f93863ffd4ed06b7"
},
{
"url": "https://git.kernel.org/stable/c/f7d380fb525c13bdd114369a1979c80c346e6abc"
}
],
"title": "virtio_pci: fix vq info pointer lookup via wrong index",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64457",
"datePublished": "2026-07-25T08:51:25.364Z",
"dateReserved": "2026-07-19T15:36:31.789Z",
"dateUpdated": "2026-08-17T04:56:01.747Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74385 (GCVE-0-2026-74385)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: check return value of nvmet_tcp_set_queue_sock
The return value of nvmet_tcp_set_queue_sock() is currently ignored in
nvmet_tcp_tls_handshake_done(). If it fails (e.g., due to the socket
not being in TCP_ESTABLISHED state), the socket callbacks will not be
properly set, leading to queue and socket leakage.
Fix this by capturing the return value and calling
nvmet_tcp_schedule_release_queue() on failure to ensure proper cleanup.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74385",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:01.310630Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:36.864Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "41b63ff99e3ef37d08f3693413dae5ede5e79fe1",
"status": "affected",
"version": "675b453e024154dd547921c6e6d5b58747ba7e0e",
"versionType": "git"
},
{
"lessThan": "cba2ee57fd302727aea7d41e9d9cd0969f5df0fb",
"status": "affected",
"version": "675b453e024154dd547921c6e6d5b58747ba7e0e",
"versionType": "git"
},
{
"lessThan": "22aa70f9a0544643ec37d442b6fcb1833d804462",
"status": "affected",
"version": "675b453e024154dd547921c6e6d5b58747ba7e0e",
"versionType": "git"
},
{
"lessThan": "7ef789703e2b91775dcb36b2efa46325be31a2a0",
"status": "affected",
"version": "675b453e024154dd547921c6e6d5b58747ba7e0e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: check return value of nvmet_tcp_set_queue_sock\n\nThe return value of nvmet_tcp_set_queue_sock() is currently ignored in\nnvmet_tcp_tls_handshake_done(). If it fails (e.g., due to the socket\nnot being in TCP_ESTABLISHED state), the socket callbacks will not be\nproperly set, leading to queue and socket leakage.\n\nFix this by capturing the return value and calling\nnvmet_tcp_schedule_release_queue() on failure to ensure proper cleanup."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is in nvmet-tcp, an in-kernel NVMe-over-TCP target that accepts remote TCP connections; the bug triggers in nvmet_tcp_tls_handshake_done() after tls_server_hello_psk() completes, reachable from any network peer that can connect to an exposed NVMe-oF TLS port (typical cloud/storage-server deployment).\nAC:L - An attacker controls both sides of the race by completing the TLS handshake and then closing or resetting the TCP connection so the socket is no longer TCP_ESTABLISHED when nvmet_tcp_set_queue_sock() runs; this is reliably repeatable across new connections without conditions outside attacker control.\nPR:N - Exploitation requires only network reachability to the NVMe-oF TCP target port; no Linux credentials, capabilities, or init-namespace root are needed, and the vulnerable path runs after TCP accept but before NVMe Connect, host NQN allow-list, or DH-HMAC-CHAP in-band authentication.\nUI:N - No victim user action is required; the attacker programmatically opens TLS connections to the NVMe target and times disconnects to hit the failure path, with no need for local users to mount filesystems or perform other interactive steps.\nS:U - Impact is confined to kernel resource exhaustion within the host running the NVMe target; leaked queues and sockets do not cross VM, container, or IOMMU security boundaries and do not constitute privilege escalation beyond the target kernel itself.\nC:N - The defect is a missed cleanup that leaks queue structures, sockets, and TLS key references; there is no use-after-free, out-of-bounds access, or other memory corruption that could expose kernel data to the attacker.\nI:N - No memory corruption, arbitrary write, or code-execution primitive is introduced; the bug only leaves queue and socket objects allocated without installing socket callbacks or scheduling proper teardown.\nA:H - Each successful trigger permanently leaks an nvmet_tcp_queue, socket/file reference, and IDA slot with no automatic recovery; repeated unauthenticated connections can exhaust kernel memory and socket resources, denying NVMe-oF service on internet-facing storage nodes until reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:33.852Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/41b63ff99e3ef37d08f3693413dae5ede5e79fe1"
},
{
"url": "https://git.kernel.org/stable/c/cba2ee57fd302727aea7d41e9d9cd0969f5df0fb"
},
{
"url": "https://git.kernel.org/stable/c/22aa70f9a0544643ec37d442b6fcb1833d804462"
},
{
"url": "https://git.kernel.org/stable/c/7ef789703e2b91775dcb36b2efa46325be31a2a0"
}
],
"title": "nvmet-tcp: check return value of nvmet_tcp_set_queue_sock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74385",
"datePublished": "2026-08-15T05:59:01.113Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-10-21T12:45:33.852Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90428 (GCVE-0-2026-90428)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/tegra241-cmdqv: Don't run the error ISR before probe sets up vintfs
__tegra241_cmdqv_probe() requests the error IRQ before it has allocated the
cmdqv->vintfs array and set cmdqv->num_vintfs. A CMDQV left enabled with a
latched error across a kexec fires the IRQ as soon as it is requested, and
tegra241_cmdqv_isr() then walks the uninitialized cmdqv->vintfs array.
Request the IRQ only after cmdqv->vintfs is allocated and zeroed, so that
a latched interrupt firing early runs the ISR against a valid array of NULL
slots that it safely skips.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b1605a56745f22670205f6561df5771bbbb62a99",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "2f627118b668659c6b195ac48beedb1bf8f53368",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "a168254ff8db08f2292be3d8fcbd37d2bb8c3d2d",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "5acd67ceb38debe2fbf70ea35e2dec9f7ab01bbd",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/tegra241-cmdqv: Don\u0027t run the error ISR before probe sets up vintfs\n\n__tegra241_cmdqv_probe() requests the error IRQ before it has allocated the\ncmdqv-\u003evintfs array and set cmdqv-\u003enum_vintfs. A CMDQV left enabled with a\nlatched error across a kexec fires the IRQ as soon as it is requested, and\ntegra241_cmdqv_isr() then walks the uninitialized cmdqv-\u003evintfs array.\n\nRequest the IRQ only after cmdqv-\u003evintfs is allocated and zeroed, so that\na latched interrupt firing early runs the ISR against a valid array of NULL\nslots that it safely skips."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:31.894Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b1605a56745f22670205f6561df5771bbbb62a99"
},
{
"url": "https://git.kernel.org/stable/c/2f627118b668659c6b195ac48beedb1bf8f53368"
},
{
"url": "https://git.kernel.org/stable/c/a168254ff8db08f2292be3d8fcbd37d2bb8c3d2d"
},
{
"url": "https://git.kernel.org/stable/c/5acd67ceb38debe2fbf70ea35e2dec9f7ab01bbd"
}
],
"title": "iommu/tegra241-cmdqv: Don\u0027t run the error ISR before probe sets up vintfs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90428",
"datePublished": "2026-09-17T16:09:49.783Z",
"dateReserved": "2026-09-11T19:38:34.814Z",
"dateUpdated": "2026-10-19T09:03:31.894Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90294 (GCVE-0-2026-90294)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/isert: delay the final Login Response until the session is registered
isert_put_login_tx() puts the final Login Response on the wire before
__transport_register_session(), which iscsi_post_login_handler() reaches
only after iscsi_target_do_login() returns. An initiator that issues a
SCSI command as soon as it sees that response can have it executed against
an se_session whose se_tpg is still NULL, and the ib-comp-wq worker oopses
on the NULL dereference.
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: 178 Comm: kworker/0:1H Not tainted 7.2.0-rc5-V2CTL-gf5098b6bae76 #10 PREEMPT(lazy)
Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: ib-comp-wq ib_cq_poll_work
RIP: 0010:target_submit+0xbe/0x390
Code: fa 48 c1 ea 03 80 3c 02 00 0f 85 89 02 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b 64 24 18 49 8d 7c 24 78 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 5a 02 00 00 48 8d 7b 78 4d 8b 6c 24 78 48 b8 00
RSP: 0018:ffff8881058cfa78 EFLAGS: 00010206
RAX: dffffc0000000000 RBX: ffff88810c78c6f0 RCX: ffffffff964bb363
RDX: 000000000000000f RSI: 00000000fffffe00 RDI: 0000000000000078
RBP: 1ffff11020b19f52 R08: 0000000000000001 R09: ffffed1020b19f52
R10: 0000000000000003 R11: ffff88810596c000 R12: 0000000000000000
R13: ffff88810c61b000 R14: ffff88810c6a3400 R15: ffff88810c61b044
FS: 0000000000000000(0000) GS:ffff8881822b2000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f1f1b83c000 CR3: 000000006fe72001 CR4: 0000000000770ef0
PKRU: 55555554
Call Trace:
<TASK>
? __pfx__raw_spin_lock_bh+0x10/0x10
? __pfx_target_submit+0x10/0x10
? mutex_lock+0x81/0xe0
? __pfx_mutex_lock+0x10/0x10
? iscsit_execute_cmd+0x650/0x850
iscsit_sequence_cmd+0x186/0x3d0
iscsit_process_scsi_cmd+0x87/0x300
isert_recv_done+0x1002/0x2390
? __pfx_isert_recv_done+0x10/0x10
? rxe_poll_cq+0x253/0x3d0
? finish_task_switch.isra.0+0x1dc/0xa70
__ib_process_cq+0xe1/0x390
ib_cq_poll_work+0x46/0x150
process_one_work+0x633/0x1030
? assign_work+0x11d/0x370
worker_thread+0x45b/0xd10
? __pfx_worker_thread+0x10/0x10
? __pfx_worker_thread+0x10/0x10
kthread+0x2c6/0x3b0
? recalc_sigpending+0x15c/0x1e0
? __pfx_kthread+0x10/0x10
ret_from_fork+0x36e/0x5a0
? __pfx_ret_from_fork+0x10/0x10
? __switch_to+0x572/0xdd0
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
Delay the final Login Response instead. isert_get_rx_pdu() runs from
iscsi_target_rx_thread() after conn->rx_login_comp, completed by
iscsi_post_login_handler() after __transport_register_session(); iscsi-TCP
and cxgbit already take PDUs from that thread, isert alone does not. The
buffers are still posted first, so the initiator's first command does not
meet an empty receive queue and nothing depends on RNR flow control, and
the header and payload live in isert_conn, not in the struct iscsi_login
that iscsi_target_nego_release() frees first.
Over rxe, 400 login cycles per run, the oops appeared in 10 of 20
unpatched runs and in none of 20 runs with this patch. An
initiator that never waits is handled by the next patch.
Not tested: iWARP, discovery sessions over iSER, and real HCAs.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c",
"drivers/infiniband/ulp/isert/ib_isert.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e148dbac43308d9e4313070bfc5b355d03134809",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "a18fb8d540b3e631cb7e50e55f3c462c05b3a114",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "0d2efc355982064855f24f73f9fbb6c65ca4a5c7",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "f84e9adf4d9f4c0c79ef4a7d9e0c5c08b1337033",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "11694889c4bab47047a60690ceb70d7551ed5b2e",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "a6c19af05c170f267eca1d01c3c72c84ba7860ae",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "4397ea31e3b0d017c2b9b876b326df0b3eb845bf",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "464f5afa92d071a226f88424803b0fcf88093ede",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c",
"drivers/infiniband/ulp/isert/ib_isert.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/isert: delay the final Login Response until the session is registered\n\nisert_put_login_tx() puts the final Login Response on the wire before\n__transport_register_session(), which iscsi_post_login_handler() reaches\nonly after iscsi_target_do_login() returns. An initiator that issues a\nSCSI command as soon as it sees that response can have it executed against\nan se_session whose se_tpg is still NULL, and the ib-comp-wq worker oopses\non the NULL dereference.\n\n Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI\n KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f]\n CPU: 0 UID: 0 PID: 178 Comm: kworker/0:1H Not tainted 7.2.0-rc5-V2CTL-gf5098b6bae76 #10 PREEMPT(lazy)\n Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\n Workqueue: ib-comp-wq ib_cq_poll_work\n RIP: 0010:target_submit+0xbe/0x390\n Code: fa 48 c1 ea 03 80 3c 02 00 0f 85 89 02 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b 64 24 18 49 8d 7c 24 78 48 89 fa 48 c1 ea 03 \u003c80\u003e 3c 02 00 0f 85 5a 02 00 00 48 8d 7b 78 4d 8b 6c 24 78 48 b8 00\n RSP: 0018:ffff8881058cfa78 EFLAGS: 00010206\n RAX: dffffc0000000000 RBX: ffff88810c78c6f0 RCX: ffffffff964bb363\n RDX: 000000000000000f RSI: 00000000fffffe00 RDI: 0000000000000078\n RBP: 1ffff11020b19f52 R08: 0000000000000001 R09: ffffed1020b19f52\n R10: 0000000000000003 R11: ffff88810596c000 R12: 0000000000000000\n R13: ffff88810c61b000 R14: ffff88810c6a3400 R15: ffff88810c61b044\n FS: 0000000000000000(0000) GS:ffff8881822b2000(0000) knlGS:0000000000000000\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 00007f1f1b83c000 CR3: 000000006fe72001 CR4: 0000000000770ef0\n PKRU: 55555554\n Call Trace:\n \u003cTASK\u003e\n ? __pfx__raw_spin_lock_bh+0x10/0x10\n ? __pfx_target_submit+0x10/0x10\n ? mutex_lock+0x81/0xe0\n ? __pfx_mutex_lock+0x10/0x10\n ? iscsit_execute_cmd+0x650/0x850\n iscsit_sequence_cmd+0x186/0x3d0\n iscsit_process_scsi_cmd+0x87/0x300\n isert_recv_done+0x1002/0x2390\n ? __pfx_isert_recv_done+0x10/0x10\n ? rxe_poll_cq+0x253/0x3d0\n ? finish_task_switch.isra.0+0x1dc/0xa70\n __ib_process_cq+0xe1/0x390\n ib_cq_poll_work+0x46/0x150\n process_one_work+0x633/0x1030\n ? assign_work+0x11d/0x370\n worker_thread+0x45b/0xd10\n ? __pfx_worker_thread+0x10/0x10\n ? __pfx_worker_thread+0x10/0x10\n kthread+0x2c6/0x3b0\n ? recalc_sigpending+0x15c/0x1e0\n ? __pfx_kthread+0x10/0x10\n ret_from_fork+0x36e/0x5a0\n ? __pfx_ret_from_fork+0x10/0x10\n ? __switch_to+0x572/0xdd0\n ? __pfx_kthread+0x10/0x10\n ret_from_fork_asm+0x1a/0x30\n \u003c/TASK\u003e\n Modules linked in:\n ---[ end trace 0000000000000000 ]---\n\nDelay the final Login Response instead. isert_get_rx_pdu() runs from\niscsi_target_rx_thread() after conn-\u003erx_login_comp, completed by\niscsi_post_login_handler() after __transport_register_session(); iscsi-TCP\nand cxgbit already take PDUs from that thread, isert alone does not. The\nbuffers are still posted first, so the initiator\u0027s first command does not\nmeet an empty receive queue and nothing depends on RNR flow control, and\nthe header and payload live in isert_conn, not in the struct iscsi_login\nthat iscsi_target_nego_release() frees first.\n\nOver rxe, 400 login cycles per run, the oops appeared in 10 of 20\nunpatched runs and in none of 20 runs with this patch. An\ninitiator that never waits is handled by the next patch.\n\nNot tested: iWARP, discovery sessions over iSER, and real HCAs."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The trigger is an ISCSI_OP_SCSI_CMD RDMA SEND handled by isert_recv_done after isert_put_login_tx already posted the final Login Response; those PDUs arrive from a remote initiator on the QP accepted by isert_connect_request after rdma_listen() in isert_setup_id, which binds RoCEv2 (UDP/IP) or iWARP (TCP).\nAC:L - The initiator completes login so isert_put_login_tx posts RX buffers and sends the Login Response, then immediately sends a SCSI command that isert_recv_done runs on ib-comp-wq before iscsi_post_login_handler calls __transport_register_session; the attacker controls both sides of that window and can retry.\nPR:N - login-\u003elogin_complete is set in iscsi_target_do_login CSG1 only after iscsi_conn_authenticated(); when tpg_attrib.authentication is 0, iscsi_handle_authentication() accepts AuthMethod=None with no secret, and generate_node_acls demo mode lets core_tpg_check_initiator_node_acl() admit a client-asserted InitiatorName.\nUI:N - The attacker is the iSER initiator that finishes login and posts the SCSI command on its own QP; no local user or administrator action is required.\nS:U - The NULL se_sess-\u003ese_tpg load in target_submit() oopses the same kernel that runs ib_isert; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - transport_alloc_session() kmem_cache_zallocs se_session so se_tpg stays NULL until __transport_register_session(); target_submit() only loads se_tpg-\u003ese_tpg_tfo and takes a GPF, with no out-of-bounds read.\nI:N - The fault is a NULL load of se_cmd-\u003ese_sess-\u003ese_tpg in target_submit(); this path does not write kernel memory or reuse a freed object.\nA:H - KASAN reports a null-ptr-deref in target_submit() on ib-comp-wq (ib_cq_poll_work \u2192 isert_recv_done \u2192 iscsit_process_scsi_cmd \u2192 iscsit_execute_cmd), producing a kernel oops."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:12.433Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e148dbac43308d9e4313070bfc5b355d03134809"
},
{
"url": "https://git.kernel.org/stable/c/a18fb8d540b3e631cb7e50e55f3c462c05b3a114"
},
{
"url": "https://git.kernel.org/stable/c/0d2efc355982064855f24f73f9fbb6c65ca4a5c7"
},
{
"url": "https://git.kernel.org/stable/c/f84e9adf4d9f4c0c79ef4a7d9e0c5c08b1337033"
},
{
"url": "https://git.kernel.org/stable/c/11694889c4bab47047a60690ceb70d7551ed5b2e"
},
{
"url": "https://git.kernel.org/stable/c/a6c19af05c170f267eca1d01c3c72c84ba7860ae"
},
{
"url": "https://git.kernel.org/stable/c/4397ea31e3b0d017c2b9b876b326df0b3eb845bf"
},
{
"url": "https://git.kernel.org/stable/c/464f5afa92d071a226f88424803b0fcf88093ede"
}
],
"title": "IB/isert: delay the final Login Response until the session is registered",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90294",
"datePublished": "2026-09-17T16:08:20.664Z",
"dateReserved": "2026-09-11T19:38:34.798Z",
"dateUpdated": "2026-10-19T09:01:12.433Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74580 (GCVE-0-2026-74580)
Vulnerability from cvelistv5
Published
2026-08-21 16:31
Modified
2026-10-28 19:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vhost: reset the vring metadata cache on vring reconfiguration
vq->meta_iotlb[] caches the vhost_iotlb_map that backs each vring
metadata region, and iotlb_access_ok() returns early on a cache hit,
taking the hit as proof that the region has already been validated:
if (vhost_vq_meta_fetch(vq, addr, len, type))
return true;
The cache is reset on VHOST_IOTLB_UPDATE and VHOST_IOTLB_INVALIDATE, on
device IOTLB (re)initialisation and on vq reset, but not when
VHOST_SET_VRING_ADDR replaces vq->desc, vq->avail and vq->used, nor when
VHOST_SET_VRING_NUM changes the region sizes.
With a device IOTLB attached both ioctls are accepted while the vq is
live, and neither validates the addresses at ioctl time: vq_access_ok()
and vq_log_used_access_ok() return true early because the addresses are
GIOVAs, deferring validation to prefetch time. Once the cache has been
populated that deferred validation no longer runs -- vq_meta_prefetch()
hits the stale entry and returns true -- and vhost_vq_meta_fetch() keeps
translating through the old mapping as
map->addr + addr - map->start
for an address the mapping no longer covers. vhost_copy_to_user() and
vhost_copy_from_user() consume the result with __copy_to_user() and
__copy_from_user(), which do not check it either, so a subsequent used
ring update or descriptor fetch accesses memory outside the region the
IOTLB actually maps.
Reset the metadata cache whenever the vring is reconfigured, so the new
addresses are pushed back through iotlb_access_ok()'s slow path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 Version: f889491380582b4ba2981cf0b0d7d6a40fb30ab7 |
||
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-10-14T04:09:02.550Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/10/14/2"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74580",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-28T19:08:13.521018Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-28T19:08:17.705Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/YounesHfa/CVE-2026-74580"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5224bd37e37d36076a550d99b2aebba33939fd95",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "54617e9119be2eb728ecdd8d977b99c99d4c498a",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "13fa6f32a56a386a82bd7451644c494beed034af",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "cf363a7a02ce132ef1f58084fdb13e1a3b7da7e7",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "6fa3e9b1fe856259555a7e22f3f3082e7827fd9b",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "f1e21108e3ddfcce62f6cad4ebd7b5674543c9e6",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "b70ebe0bba254e093dd5fd4c0c170941ce83eb85",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
},
{
"lessThan": "de845981da67a6b049080c87e605130b0c30adc5",
"status": "affected",
"version": "f889491380582b4ba2981cf0b0d7d6a40fb30ab7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vhost.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvhost: reset the vring metadata cache on vring reconfiguration\n\nvq-\u003emeta_iotlb[] caches the vhost_iotlb_map that backs each vring\nmetadata region, and iotlb_access_ok() returns early on a cache hit,\ntaking the hit as proof that the region has already been validated:\n\n\tif (vhost_vq_meta_fetch(vq, addr, len, type))\n\t\treturn true;\n\nThe cache is reset on VHOST_IOTLB_UPDATE and VHOST_IOTLB_INVALIDATE, on\ndevice IOTLB (re)initialisation and on vq reset, but not when\nVHOST_SET_VRING_ADDR replaces vq-\u003edesc, vq-\u003eavail and vq-\u003eused, nor when\nVHOST_SET_VRING_NUM changes the region sizes.\n\nWith a device IOTLB attached both ioctls are accepted while the vq is\nlive, and neither validates the addresses at ioctl time: vq_access_ok()\nand vq_log_used_access_ok() return true early because the addresses are\nGIOVAs, deferring validation to prefetch time. Once the cache has been\npopulated that deferred validation no longer runs -- vq_meta_prefetch()\nhits the stale entry and returns true -- and vhost_vq_meta_fetch() keeps\ntranslating through the old mapping as\n\n\tmap-\u003eaddr + addr - map-\u003estart\n\nfor an address the mapping no longer covers. vhost_copy_to_user() and\nvhost_copy_from_user() consume the result with __copy_to_user() and\n__copy_from_user(), which do not check it either, so a subsequent used\nring update or descriptor fetch accesses memory outside the region the\nIOTLB actually maps.\n\nReset the metadata cache whenever the vring is reconfigured, so the new\naddresses are pushed back through iotlb_access_ok()\u0027s slow path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires ioctl on /dev/vhost-net or /dev/vhost-vsock (VHOST_SET_OWNER, VHOST_SET_FEATURES with VIRTIO_F_ACCESS_PLATFORM, VHOST_SET_VRING_ADDR, IOTLB updates); although virtio kicks and network I/O trigger the corrupting copies, the stale-cache state is created only through local vhost character-device syscalls, not remote packets.\nAC:L - An attacker who controls the vhost owner process can deterministically populate meta_iotlb via normal virtqueue traffic, issue VHOST_SET_VRING_ADDR with new GIOVAs while the backend is live, then trigger descriptor/used-ring access; no races, special heap layout, or victim timing are required.\nPR:L - No host root is needed: exploitation is performed by the vhost device owner (standard libvirt/QEMU kvm-group account) or, in the highest-impact cloud scenario, an authorized malicious VM tenant whose virtio traffic drives vhost workers after QEMU updates live vring addresses under VIRTIO_F_ACCESS_PLATFORM.\nUI:N - No end-user or administrator action is required beyond routine automated VM operation (virtio I/O, vhost backend attachment, and vring setup) that the attacker or tenant controls directly.\nS:C - Stale IOTLB metadata translation makes the host kernel read/write outside the mapped vring regions in the VMM userspace address space (QEMU), crossing the guest-to-host virtualization boundary\u2014the same escape class as CVE-2025-38074, not mere in-guest kernel impact.\nC:H - vhost_copy_from_user and __vhost_get_user use vhost_vq_meta_fetch\u0027s stale map-\u003eaddr+addr-map-\u003estart translation without bounds checks, enabling out-of-bounds reads of adjacent VMM memory during descriptor and avail-ring fetches (arbitrary misdirected kernel reads from host userspace).\nI:H - vhost_copy_to_user and vhost_put_user write used-ring entries through the same stale translation, giving controlled out-of-bounds writes into the VMM process that can corrupt QEMU heap, IOTLB tables, or migration metadata for code-execution primitives.\nA:H - Misdirected __copy_to_user/__copy_from_user against unmapped or invalid VMM addresses can fault the vhost worker (host kernel oops/panic), and corrupting VMM control structures reliably crashes or kills the hypervisor process, terminating the VM."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:06.380Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5224bd37e37d36076a550d99b2aebba33939fd95"
},
{
"url": "https://git.kernel.org/stable/c/54617e9119be2eb728ecdd8d977b99c99d4c498a"
},
{
"url": "https://git.kernel.org/stable/c/13fa6f32a56a386a82bd7451644c494beed034af"
},
{
"url": "https://git.kernel.org/stable/c/cf363a7a02ce132ef1f58084fdb13e1a3b7da7e7"
},
{
"url": "https://git.kernel.org/stable/c/6fa3e9b1fe856259555a7e22f3f3082e7827fd9b"
},
{
"url": "https://git.kernel.org/stable/c/f1e21108e3ddfcce62f6cad4ebd7b5674543c9e6"
},
{
"url": "https://git.kernel.org/stable/c/b70ebe0bba254e093dd5fd4c0c170941ce83eb85"
},
{
"url": "https://git.kernel.org/stable/c/de845981da67a6b049080c87e605130b0c30adc5"
}
],
"title": "vhost: reset the vring metadata cache on vring reconfiguration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74580",
"datePublished": "2026-08-21T16:31:54.076Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-28T19:08:17.705Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80799 (GCVE-0-2026-80799)
Vulnerability from cvelistv5
Published
2026-09-04 15:13
Modified
2026-10-19 08:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers
nfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain
three related bugs in their TLV parsing loops:
1. 'offset' is declared u8 but tlv_array_len is u16. When TLV data
advances offset past 255 it silently wraps to zero, causing
infinite loops or double-processing of buffer data.
2. Before reading tlv[0] (type) and tlv[1] (length) there is no
check that offset+2 <= tlv_array_len. A truncated TLV causes
an OOB read of one byte past the buffer end.
3. After reading the length field, the value bytes are accessed
without checking offset+2+length <= tlv_array_len. A crafted
length=0xFF on a short buffer causes up to 255 bytes of OOB
read past the buffer end.
Both functions are reachable without authentication via
nfc_llcp_set_remote_gb() which feeds remote LLCP general bytes
directly into nfc_llcp_parse_gb_tlv() with no additional
validation.
Fix all three issues by widening offset from u8 to u16 and adding
bounds checks for both the TLV header and value field before each
access.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0be9de2ea01e8d52646e7310a7eef5459cf07ea8 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 Version: 1deacb5e031e289ca5636f2db4fcae6612c05d34 Version: 66a1be74230bbe098e651766c9a0cf4038db8442 Version: 5.10.188 ≤ Version: 4.19.291 ≤ Version: 5.4.251 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/nfc/llcp_commands.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1",
"status": "affected",
"version": "0be9de2ea01e8d52646e7310a7eef5459cf07ea8",
"versionType": "git"
},
{
"lessThan": "7f6f3d087c67a4346189ef2c36481455bbc59a74",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "9c47d667963542c3cf8e3007b7f10c0904d08238",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "a209334ed929941b20810c17c3a507445b0a7c85",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "382eaa770335acf4f16a5a55524500f2bb4207df",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "2d239590d1845a706304833d40dd6d4fec20ad88",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "e84cdfdc4a6c88e8b751144458f2e04e24415a28",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "875285a165fd3b402de2ab3be0deb355d6f4caf5",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"lessThan": "78b20c8eeacd2e44a2d8a4cb5316d3c521d90911",
"status": "affected",
"version": "3df40eb3a2ea58bf404a38f15a7a2768e4762cb0",
"versionType": "git"
},
{
"status": "affected",
"version": "1deacb5e031e289ca5636f2db4fcae6612c05d34",
"versionType": "git"
},
{
"status": "affected",
"version": "66a1be74230bbe098e651766c9a0cf4038db8442",
"versionType": "git"
},
{
"lessThan": "5.10.267",
"status": "affected",
"version": "5.10.188",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.291",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.251",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/nfc/llcp_commands.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "5.10.188",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.291",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.251",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: llcp: fix OOB read and u8 offset wrap in TLV parsers\n\nnfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain\nthree related bugs in their TLV parsing loops:\n\n1. \u0027offset\u0027 is declared u8 but tlv_array_len is u16. When TLV data\n advances offset past 255 it silently wraps to zero, causing\n infinite loops or double-processing of buffer data.\n\n2. Before reading tlv[0] (type) and tlv[1] (length) there is no\n check that offset+2 \u003c= tlv_array_len. A truncated TLV causes\n an OOB read of one byte past the buffer end.\n\n3. After reading the length field, the value bytes are accessed\n without checking offset+2+length \u003c= tlv_array_len. A crafted\n length=0xFF on a short buffer causes up to 255 bytes of OOB\n read past the buffer end.\n\nBoth functions are reachable without authentication via\nnfc_llcp_set_remote_gb() which feeds remote LLCP general bytes\ndirectly into nfc_llcp_parse_gb_tlv() with no additional\nvalidation.\n\nFix all three issues by widening offset from u8 to u16 and adding\nbounds checks for both the TLV header and value field before each\naccess."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:43:52.451Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1"
},
{
"url": "https://git.kernel.org/stable/c/7f6f3d087c67a4346189ef2c36481455bbc59a74"
},
{
"url": "https://git.kernel.org/stable/c/9c47d667963542c3cf8e3007b7f10c0904d08238"
},
{
"url": "https://git.kernel.org/stable/c/a209334ed929941b20810c17c3a507445b0a7c85"
},
{
"url": "https://git.kernel.org/stable/c/382eaa770335acf4f16a5a55524500f2bb4207df"
},
{
"url": "https://git.kernel.org/stable/c/2d239590d1845a706304833d40dd6d4fec20ad88"
},
{
"url": "https://git.kernel.org/stable/c/e84cdfdc4a6c88e8b751144458f2e04e24415a28"
},
{
"url": "https://git.kernel.org/stable/c/875285a165fd3b402de2ab3be0deb355d6f4caf5"
},
{
"url": "https://git.kernel.org/stable/c/78b20c8eeacd2e44a2d8a4cb5316d3c521d90911"
}
],
"title": "nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80799",
"datePublished": "2026-09-04T15:13:13.311Z",
"dateReserved": "2026-08-26T14:34:25.793Z",
"dateUpdated": "2026-10-19T08:43:52.451Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89930 (GCVE-0-2026-89930)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-19 08:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: nVMX: Service local TLB flushes on failed nested VM-Enter
KVM services local TLB flushes on "full" nested VM-Exits (through
__nested_vmx_vmexit()), but not if a nested VM-Enter fails (e.g. due to
failed VMCS checks in nested_vmx_enter_non_root_mode()).
However, it is possible that KVM had queued TLB flushes that need to be
performed, even if the nested VM-Enter was not successful. For example,
if VPID is disabled for L2 (via nested_vmx_transition_tlb_flush(), or if
via the MSR load lists, as the SDM says:
If any MSR is being loaded in such a way that would architecturally
require a TLB flush, the TLBs are updated so that, after VM entry, the
logical processor will not use any translations that were cached before
the transition.
The SDM is unclear about when the TLB flush should occur, and whether or
not a failed VM entry would flush the TLB, so it is safer to always
do the TLB flush in this case.
More concretely, KVM also updates the last VPID L1 used for L2 in
nested_vmx_transition_tlb_flush() (i.e. last_vpid), even if the VM entry
ultimately fails. With the current code, KVM could miss a TLB flush if
L1 changes L2's VPID, then does a failed VM entry followed by a
successful one, as the failed VM entry would update last_vpid but not
actually flush the TLB. Servicing local TLB flushes on failed VM entries
makes sure that the TLB is always flushed when last_vpid is updated.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 Version: 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c0c66cd575e31218da6a7d104c6ef80b0830b60c",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "1025b938dc439b75c720a568a855a13eeb245686",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "312cdb6d8940827dea63a7a52fb714a5049f06d1",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "f74fccdf4f7fb0780cd84944108d35f3d9dc46a7",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "c43563e7518e65ec6ccaa6a65f84c5af5ca5d379",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "62c3ee4c9f0e2efef5157358b3549e50ede96d73",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
},
{
"lessThan": "05a0b701d1089fb57beeb8982f23c3bbafe0fa8b",
"status": "affected",
"version": "5c614b3583e7b6dab0c86356fa36c2bcbb8322a0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/vmx/nested.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nVMX: Service local TLB flushes on failed nested VM-Enter\n\nKVM services local TLB flushes on \"full\" nested VM-Exits (through\n__nested_vmx_vmexit()), but not if a nested VM-Enter fails (e.g. due to\nfailed VMCS checks in nested_vmx_enter_non_root_mode()).\n\nHowever, it is possible that KVM had queued TLB flushes that need to be\nperformed, even if the nested VM-Enter was not successful. For example,\nif VPID is disabled for L2 (via nested_vmx_transition_tlb_flush(), or if\nvia the MSR load lists, as the SDM says:\n\n If any MSR is being loaded in such a way that would architecturally\n require a TLB flush, the TLBs are updated so that, after VM entry, the\n logical processor will not use any translations that were cached before\n the transition.\n\nThe SDM is unclear about when the TLB flush should occur, and whether or\nnot a failed VM entry would flush the TLB, so it is safer to always\ndo the TLB flush in this case.\n\nMore concretely, KVM also updates the last VPID L1 used for L2 in\nnested_vmx_transition_tlb_flush() (i.e. last_vpid), even if the VM entry\nultimately fails. With the current code, KVM could miss a TLB flush if\nL1 changes L2\u0027s VPID, then does a failed VM entry followed by a\nsuccessful one, as the failed VM entry would update last_vpid but not\nactually flush the TLB. Servicing local TLB flushes on failed VM entries\nmakes sure that the TLB is always flushed when last_vpid is updated."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - An L1 nested hypervisor reaches nested_vmx_enter_non_root_mode() by executing VMLAUNCH/VMRESUME (handle_vmlaunch/handle_vmresume) during KVM_RUN, or via KVM_SET_NESTED_STATE; this is local KVM ioctl/guest execution, not a network, adjacent-radio, or physical-device path.\nAC:L - L1 fully controls vmcs12, can change virtual_processor_id so nested_vmx_transition_tlb_flush() updates last_vpid and queues KVM_REQ_TLB_FLUSH_GUEST, then fail VM-Enter after that point (invalid guest state or MSR-load list failure) and retry successfully; nested=1 and enable_vpid=1 are kvm_intel defaults, with no attacker-uncontrollable race.\nPR:N - Exploitation requires no host root or init-namespace capabilities beyond running nested VMX in a tenant KVM guest; kvm_intel nested=1 is default, so a cloud tenant triggers the bug from guest CPL0 VMLAUNCH without host privileges or special capabilities.\nUI:N - No victim user or administrator action is required; the attacker drives the VPID change, the failed nested VM-Enter, and the subsequent successful enter entirely from their own nested-virtualization workload.\nS:C - Host KVM fails to INVVPID L2\u0027s hardware VPID (vpid02) on a failed nested VM-Enter after last_vpid is updated, so stale guest/combined TLB entries persist across nested contexts and can skip the first-use flush KVM relies on after VPID reuse, crossing the KVM nested guest-to-hypervisor isolation boundary.\nC:H - Missed INVVPID leaves stale combined GVA-to-HPA mappings for L2\u0027s hardware VPID; after a vpid12 change (or a skipped first-use flush when last_vpid is updated on a failed enter), nested code can read pages L1 already remapped to another L2 or to L1 hypervisor memory, a translation-cache use-after-invalidate disclosure primitive.\nI:H - The retained combined mappings remain writable, so L2 (or a later nested guest on the same hardware VPID) can write through stale translations into pages L1 already remapped, yielding a use-after-invalidate write primitive against nested-hypervisor or sibling-guest memory.\nA:H - Stale nested TLB entries produce wrong translations that can crash or hang the L1 hypervisor and L2 guests, and inconsistent KVM MMU/VPID state can oops the host; the attacker can repeat the failed-then-successful VM-Enter sequence at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:55:05.018Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c0c66cd575e31218da6a7d104c6ef80b0830b60c"
},
{
"url": "https://git.kernel.org/stable/c/1025b938dc439b75c720a568a855a13eeb245686"
},
{
"url": "https://git.kernel.org/stable/c/312cdb6d8940827dea63a7a52fb714a5049f06d1"
},
{
"url": "https://git.kernel.org/stable/c/f74fccdf4f7fb0780cd84944108d35f3d9dc46a7"
},
{
"url": "https://git.kernel.org/stable/c/c43563e7518e65ec6ccaa6a65f84c5af5ca5d379"
},
{
"url": "https://git.kernel.org/stable/c/62c3ee4c9f0e2efef5157358b3549e50ede96d73"
},
{
"url": "https://git.kernel.org/stable/c/05a0b701d1089fb57beeb8982f23c3bbafe0fa8b"
}
],
"title": "KVM: nVMX: Service local TLB flushes on failed nested VM-Enter",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89930",
"datePublished": "2026-09-16T10:32:21.535Z",
"dateReserved": "2026-09-11T19:38:34.775Z",
"dateUpdated": "2026-10-19T08:55:05.018Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-23199 (GCVE-0-2026-23199)
Vulnerability from cvelistv5
Published
2026-02-14 16:27
Modified
2026-05-11 22:02
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
procfs: avoid fetching build ID while holding VMA lock
Fix PROCMAP_QUERY to fetch optional build ID only after dropping mmap_lock
or per-VMA lock, whichever was used to lock VMA under question, to avoid
deadlock reported by syzbot:
-> #1 (&mm->mmap_lock){++++}-{4:4}:
__might_fault+0xed/0x170
_copy_to_iter+0x118/0x1720
copy_page_to_iter+0x12d/0x1e0
filemap_read+0x720/0x10a0
blkdev_read_iter+0x2b5/0x4e0
vfs_read+0x7f4/0xae0
ksys_read+0x12a/0x250
do_syscall_64+0xcb/0xf80
entry_SYSCALL_64_after_hwframe+0x77/0x7f
-> #0 (&sb->s_type->i_mutex_key#8){++++}-{4:4}:
__lock_acquire+0x1509/0x26d0
lock_acquire+0x185/0x340
down_read+0x98/0x490
blkdev_read_iter+0x2a7/0x4e0
__kernel_read+0x39a/0xa90
freader_fetch+0x1d5/0xa80
__build_id_parse.isra.0+0xea/0x6a0
do_procmap_query+0xd75/0x1050
procfs_procmap_ioctl+0x7a/0xb0
__x64_sys_ioctl+0x18e/0x210
do_syscall_64+0xcb/0xf80
entry_SYSCALL_64_after_hwframe+0x77/0x7f
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
rlock(&mm->mmap_lock);
lock(&sb->s_type->i_mutex_key#8);
lock(&mm->mmap_lock);
rlock(&sb->s_type->i_mutex_key#8);
*** DEADLOCK ***
This seems to be exacerbated (as we haven't seen these syzbot reports
before that) by the recent:
777a8560fd29 ("lib/buildid: use __kernel_read() for sleepable context")
To make this safe, we need to grab file refcount while VMA is still locked, but
other than that everything is pretty straightforward. Internal build_id_parse()
API assumes VMA is passed, but it only needs the underlying file reference, so
just add another variant build_id_parse_file() that expects file passed
directly.
[akpm@linux-foundation.org: fix up kerneldoc]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/proc/task_mmu.c",
"include/linux/buildid.h",
"lib/buildid.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b9b97e6aeb534315f9646b2090d1a5024c6a4e82",
"status": "affected",
"version": "ed5d583a88a9207b866c14ba834984c6f3c51d23",
"versionType": "git"
},
{
"lessThan": "cbc03ce3e6ce7e21214c3f02218213574c1a2d08",
"status": "affected",
"version": "ed5d583a88a9207b866c14ba834984c6f3c51d23",
"versionType": "git"
},
{
"lessThan": "b5cbacd7f86f4f62b8813688c8e73be94e8e1951",
"status": "affected",
"version": "ed5d583a88a9207b866c14ba834984c6f3c51d23",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/proc/task_mmu.c",
"include/linux/buildid.h",
"lib/buildid.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.70",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.19",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.70",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.10",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nprocfs: avoid fetching build ID while holding VMA lock\n\nFix PROCMAP_QUERY to fetch optional build ID only after dropping mmap_lock\nor per-VMA lock, whichever was used to lock VMA under question, to avoid\ndeadlock reported by syzbot:\n\n -\u003e #1 (\u0026mm-\u003emmap_lock){++++}-{4:4}:\n __might_fault+0xed/0x170\n _copy_to_iter+0x118/0x1720\n copy_page_to_iter+0x12d/0x1e0\n filemap_read+0x720/0x10a0\n blkdev_read_iter+0x2b5/0x4e0\n vfs_read+0x7f4/0xae0\n ksys_read+0x12a/0x250\n do_syscall_64+0xcb/0xf80\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\n -\u003e #0 (\u0026sb-\u003es_type-\u003ei_mutex_key#8){++++}-{4:4}:\n __lock_acquire+0x1509/0x26d0\n lock_acquire+0x185/0x340\n down_read+0x98/0x490\n blkdev_read_iter+0x2a7/0x4e0\n __kernel_read+0x39a/0xa90\n freader_fetch+0x1d5/0xa80\n __build_id_parse.isra.0+0xea/0x6a0\n do_procmap_query+0xd75/0x1050\n procfs_procmap_ioctl+0x7a/0xb0\n __x64_sys_ioctl+0x18e/0x210\n do_syscall_64+0xcb/0xf80\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\n other info that might help us debug this:\n\n Possible unsafe locking scenario:\n\n CPU0 CPU1\n ---- ----\n rlock(\u0026mm-\u003emmap_lock);\n lock(\u0026sb-\u003es_type-\u003ei_mutex_key#8);\n lock(\u0026mm-\u003emmap_lock);\n rlock(\u0026sb-\u003es_type-\u003ei_mutex_key#8);\n\n *** DEADLOCK ***\n\nThis seems to be exacerbated (as we haven\u0027t seen these syzbot reports\nbefore that) by the recent:\n\n\t777a8560fd29 (\"lib/buildid: use __kernel_read() for sleepable context\")\n\nTo make this safe, we need to grab file refcount while VMA is still locked, but\nother than that everything is pretty straightforward. Internal build_id_parse()\nAPI assumes VMA is passed, but it only needs the underlying file reference, so\njust add another variant build_id_parse_file() that expects file passed\ndirectly.\n\n[akpm@linux-foundation.org: fix up kerneldoc]"
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:02:14.489Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b9b97e6aeb534315f9646b2090d1a5024c6a4e82"
},
{
"url": "https://git.kernel.org/stable/c/cbc03ce3e6ce7e21214c3f02218213574c1a2d08"
},
{
"url": "https://git.kernel.org/stable/c/b5cbacd7f86f4f62b8813688c8e73be94e8e1951"
}
],
"title": "procfs: avoid fetching build ID while holding VMA lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-23199",
"datePublished": "2026-02-14T16:27:24.326Z",
"dateReserved": "2026-01-13T15:37:45.985Z",
"dateUpdated": "2026-05-11T22:02:14.489Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90426 (GCVE-0-2026-90426)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs
tegra241_cmdqv_remove() tears each VINTF down first, then calls free_irq().
Tearing a VINTF down frees vintf0 and clears cmdqv->vintfs[0]. An error in
that window makes tegra241_cmdqv_isr() read the stale slot and hand it to
tegra241_vintf0_handle_error(), which dereferences a NULL or freed pointer.
Free the IRQ before tearing the VINTFs down. free_irq() waits for in-flight
handlers to finish and blocks new ones, so no ISR can observe a VINTF as it
is torn down.
Note: a user-owned VINTF (viommu) could outlive this teardown, which unmaps
cmdqv->base and frees cmdqv->vintfs, so a later viommu close then touches
freed memory. This is neither introduced nor fixed here: a physical IOMMU
is not a pluggable device, so iommufd by design holds no reference on the
one behind a viommu, and this teardown is not expected while that viommu is
still alive.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "076a4f5b1fc2016b973a12bc2ebb9b730e5e1e48",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "735698e81f798b4c02dcb6291ffbdd1b962c8c66",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "421f5ab135cd4a1353891e5bf2602cfc3c01afc7",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "61f0d437988e5730b04442f6a7d30a9907339f2a",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs\n\ntegra241_cmdqv_remove() tears each VINTF down first, then calls free_irq().\nTearing a VINTF down frees vintf0 and clears cmdqv-\u003evintfs[0]. An error in\nthat window makes tegra241_cmdqv_isr() read the stale slot and hand it to\ntegra241_vintf0_handle_error(), which dereferences a NULL or freed pointer.\n\nFree the IRQ before tearing the VINTFs down. free_irq() waits for in-flight\nhandlers to finish and blocks new ones, so no ISR can observe a VINTF as it\nis torn down.\n\nNote: a user-owned VINTF (viommu) could outlive this teardown, which unmaps\ncmdqv-\u003ebase and frees cmdqv-\u003evintfs, so a later viommu close then touches\nfreed memory. This is neither introduced nor fixed here: a physical IOMMU\nis not a pluggable device, so iommufd by design holds no reference on the\none behind a viommu, and this teardown is not expected while that viommu is\nstill alive."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:29.972Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/076a4f5b1fc2016b973a12bc2ebb9b730e5e1e48"
},
{
"url": "https://git.kernel.org/stable/c/735698e81f798b4c02dcb6291ffbdd1b962c8c66"
},
{
"url": "https://git.kernel.org/stable/c/421f5ab135cd4a1353891e5bf2602cfc3c01afc7"
},
{
"url": "https://git.kernel.org/stable/c/61f0d437988e5730b04442f6a7d30a9907339f2a"
}
],
"title": "iommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90426",
"datePublished": "2026-09-17T16:09:48.460Z",
"dateReserved": "2026-09-11T19:38:34.814Z",
"dateUpdated": "2026-10-19T09:03:29.972Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72242 (GCVE-0-2026-72242)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-10-16 18:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
selinux: avoid sk_socket dereference in selinux_sctp_bind_connect()
selinux_sctp_bind_connect() dereferences sk->sk_socket to pass a
struct socket * to selinux_socket_bind() and
selinux_socket_connect_helper(). However, when the hook is invoked
from the ASCONF softirq path (sctp_process_asconf), there is no file
reference guaranteeing that sk->sk_socket is non-NULL. The setsockopt
callers (bindx, connectx, set_primary, sendmsg connect) hold a file
reference and are not affected.
Both selinux_socket_bind() and selinux_socket_connect_helper()
immediately resolve sock->sk, never using the struct socket * for
anything else. Refactor the inner logic into helpers that take a
struct sock * directly so that selinux_sctp_bind_connect() never needs
to touch sk->sk_socket at all.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a Version: d452930fd3b9031e59abfeddb2fa383f1403d61a |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72242",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:44:48.700097Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:45:04.443Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/selinux/hooks.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e4f3b8db1b0c5e9f6374b8996d9e1888d1042b55",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "2fcaf133a8fd88b69f32ebaecad93fd302da828f",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "a4bc2fb8536488b37680c0b66c59434a4b7f8c2f",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "5d4d93f9bfbc997ffbb03cd6107e8f6979dbb9b4",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "cc8bd47b35eca82393cbad08b1cc86f02e034439",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "d61a80b17254be7230bc5544f8e62ddf21ab38e2",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "37d642b37ccdc31e1947c2ebc8dc38f03d4a0ceb",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
},
{
"lessThan": "56acfeb10019e200ab6787d01f8d7cbe0f01526f",
"status": "affected",
"version": "d452930fd3b9031e59abfeddb2fa383f1403d61a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/selinux/hooks.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nselinux: avoid sk_socket dereference in selinux_sctp_bind_connect()\n\nselinux_sctp_bind_connect() dereferences sk-\u003esk_socket to pass a\nstruct socket * to selinux_socket_bind() and\nselinux_socket_connect_helper(). However, when the hook is invoked\nfrom the ASCONF softirq path (sctp_process_asconf), there is no file\nreference guaranteeing that sk-\u003esk_socket is non-NULL. The setsockopt\ncallers (bindx, connectx, set_primary, sendmsg connect) hold a file\nreference and are not affected.\n\nBoth selinux_socket_bind() and selinux_socket_connect_helper()\nimmediately resolve sock-\u003esk, never using the struct socket * for\nanything else. Refactor the inner logic into helpers that take a\nstruct sock * directly so that selinux_sctp_bind_connect() never needs\nto touch sk-\u003esk_socket at all."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable code runs in the SCTP receive softirq path when a remote peer sends an authenticated ASCONF chunk (ADD_IP/SET_PRIMARY) on an existing association; packets enter via sctp_rcv() from the network stack, not local syscalls.\nAC:L - An attacker with an established SCTP association controls ASCONF timing and can flood ADD_IP/SET_PRIMARY during the documented post-close() teardown window when sk_socket is NULL but associations still process shutdown-state packets.\nPR:N - Exploitation requires only the ability to complete a normal SCTP association handshake with a SELinux-protected peer; no Linux capabilities, root, or local shell access are needed to send the triggering ASCONF packets over the network.\nUI:N - No victim user action is required beyond normal server operation; the crash is triggered by attacker-sent ASCONF traffic arriving while the kernel processes socket teardown after application close(), not by opening files or clicking links.\nS:U - Impact is a kernel NULL pointer dereference panic/oops within the same kernel security domain; it does not cross VM, container, or IOMMU boundaries and is a standard remote denial-of-service against the host kernel.\nC:N - The failure mode is a direct NULL pointer dereference of sk-\u003esk_socket before reading sock-\u003esk; there is no use-after-free, out-of-bounds access, or memory corruption that could yield information disclosure.\nI:N - The bug does not write or corrupt memory; selinux_socket_bind()/connect_helper() crash immediately on the NULL socket pointer without modifying kernel data structures or achieving code execution.\nA:H - Dereferencing a NULL sk_socket in softirq causes a kernel oops/panic, crashing the entire system; this is repeatable whenever ASCONF arrives during the post-close() window on SCTP associations in shutdown states."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:05.827Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e4f3b8db1b0c5e9f6374b8996d9e1888d1042b55"
},
{
"url": "https://git.kernel.org/stable/c/2fcaf133a8fd88b69f32ebaecad93fd302da828f"
},
{
"url": "https://git.kernel.org/stable/c/a4bc2fb8536488b37680c0b66c59434a4b7f8c2f"
},
{
"url": "https://git.kernel.org/stable/c/5d4d93f9bfbc997ffbb03cd6107e8f6979dbb9b4"
},
{
"url": "https://git.kernel.org/stable/c/cc8bd47b35eca82393cbad08b1cc86f02e034439"
},
{
"url": "https://git.kernel.org/stable/c/d61a80b17254be7230bc5544f8e62ddf21ab38e2"
},
{
"url": "https://git.kernel.org/stable/c/37d642b37ccdc31e1947c2ebc8dc38f03d4a0ceb"
},
{
"url": "https://git.kernel.org/stable/c/56acfeb10019e200ab6787d01f8d7cbe0f01526f"
}
],
"title": "selinux: avoid sk_socket dereference in selinux_sctp_bind_connect()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72242",
"datePublished": "2026-08-15T05:54:30.378Z",
"dateReserved": "2026-08-09T03:40:39.914Z",
"dateUpdated": "2026-10-16T18:45:04.443Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74667 (GCVE-0-2026-74667)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/packet: reset the MAC header on the packet-socket transmit path
packet_parse_headers() resets the MAC header only for a SOCK_RAW frame
whose socket did not bind a protocol. A protocol-bound SOCK_RAW socket,
any SOCK_DGRAM frame, and the legacy SOCK_PACKET path therefore leave
skb->mac_header unset here.
For frames sent via __dev_queue_xmit() this is harmless: it resets the
MAC header unconditionally. But the packet-socket PACKET_QDISC_BYPASS
path uses dev_direct_xmit(), which does not, so the frame reaches
ndo_start_xmit() with the MAC header unset. A driver that reads
eth_hdr(skb) on transmit then dereferences skb->head + (u16)~0, an
out-of-bounds access ~64 KiB past the head -- the same class fixed for
one consumer in commit f5089008f90c ("macsec: do not read an unset MAC
header in macsec_encrypt()").
packet_parse_headers() runs only on the transmit path, where skb->data
points at the start of the L2 header for every packet-socket type
regardless of its length: SOCK_RAW and SOCK_PACKET carry a user-supplied
header and SOCK_DGRAM has one built by dev_hard_header(). Reset the MAC
header unconditionally, mirroring __dev_queue_xmit(), so the frame is
anchored on the bypass path too.
Found by 0sec (https://0sec.ai) using automated source analysis;
verified against source and matched to the macsec KASAN report in
f5089008f90c. Compile-tested.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 Version: 75c65772c3d18447d62d3aca5f91b06c16cc25e4 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74667",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:14.644201Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:08.261Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1e43a1d66615f411d427f9df1f46dd049d9e3681",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "4057853a91fb796c4f47c7d1baf1aa085394148e",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "2610ed4e86a4590234a9d70518c469751c5af231",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "b47ba8fe6e1d2df8c92048de5afafd059447dc30",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "971aa7d99242bbf09513e27b7a243f0b29ff23ae",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "fdd4d7d52358a58e351dd9d82530c04eba8ccd7a",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
},
{
"lessThan": "c2707480cfbf19c7619acc9c089d17f20869821f",
"status": "affected",
"version": "75c65772c3d18447d62d3aca5f91b06c16cc25e4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/packet/af_packet.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/packet: reset the MAC header on the packet-socket transmit path\n\npacket_parse_headers() resets the MAC header only for a SOCK_RAW frame\nwhose socket did not bind a protocol. A protocol-bound SOCK_RAW socket,\nany SOCK_DGRAM frame, and the legacy SOCK_PACKET path therefore leave\nskb-\u003emac_header unset here.\n\nFor frames sent via __dev_queue_xmit() this is harmless: it resets the\nMAC header unconditionally. But the packet-socket PACKET_QDISC_BYPASS\npath uses dev_direct_xmit(), which does not, so the frame reaches\nndo_start_xmit() with the MAC header unset. A driver that reads\neth_hdr(skb) on transmit then dereferences skb-\u003ehead + (u16)~0, an\nout-of-bounds access ~64 KiB past the head -- the same class fixed for\none consumer in commit f5089008f90c (\"macsec: do not read an unset MAC\nheader in macsec_encrypt()\").\n\npacket_parse_headers() runs only on the transmit path, where skb-\u003edata\npoints at the start of the L2 header for every packet-socket type\nregardless of its length: SOCK_RAW and SOCK_PACKET carry a user-supplied\nheader and SOCK_DGRAM has one built by dev_hard_header(). Reset the MAC\nheader unconditionally, mirroring __dev_queue_xmit(), so the frame is\nanchored on the bypass path too.\n\nFound by 0sec (https://0sec.ai) using automated source analysis;\nverified against source and matched to the macsec KASAN report in\nf5089008f90c. Compile-tested."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only via local AF_PACKET transmit syscalls (sendmsg on SOCK_DGRAM/bound SOCK_RAW with PACKET_QDISC_BYPASS); remote network input cannot trigger packet_parse_headers() on this TX path.\nAC:L - The attacker controls socket type, enables PACKET_QDISC_BYPASS via setsockopt, selects a vulnerable netdev (macsec/macvlan/tap), and sends frames to reliably hit dev_direct_xmit() without races or external victim state.\nPR:L - packet_create() requires CAP_NET_RAW, which unprivileged users commonly obtain inside user+network namespaces (unshare -Urn) per kernel capability rules, not solely real root in the init namespace.\nUI:N - Exploitation requires only the attacker opening a packet socket, enabling bypass, and transmitting; no victim user action such as opening files or mounting filesystems is needed.\nS:U - Impact is kernel heap/slab disclosure and transmit-time corruption within the same kernel security authority; it is not a VM escape, IOMMU bypass, or other cross-boundary scope change.\nC:H - Unset mac_header makes eth_hdr(skb) a large out-of-bounds kernel memory read (~64 KiB past skb-\u003ehead); macsec KASAN confirmed slab data leakage and bytes can be emitted on the wire in the frame.\nI:H - Affected TX drivers consume the bogus eth_hdr() pointer to modify skbs (e.g., macsec memmove of OOB MAC bytes into the frame, vxlan header rewrites), giving attacker-influenced corruption beyond a pure read.\nA:H - The invalid mac_header dereference can fault or trigger KASAN/driver failures during ndo_start_xmit(), causing kernel oops/panic or repeated transmit failure on the bypass path."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:21.641Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1e43a1d66615f411d427f9df1f46dd049d9e3681"
},
{
"url": "https://git.kernel.org/stable/c/4057853a91fb796c4f47c7d1baf1aa085394148e"
},
{
"url": "https://git.kernel.org/stable/c/2610ed4e86a4590234a9d70518c469751c5af231"
},
{
"url": "https://git.kernel.org/stable/c/b47ba8fe6e1d2df8c92048de5afafd059447dc30"
},
{
"url": "https://git.kernel.org/stable/c/284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d"
},
{
"url": "https://git.kernel.org/stable/c/971aa7d99242bbf09513e27b7a243f0b29ff23ae"
},
{
"url": "https://git.kernel.org/stable/c/fdd4d7d52358a58e351dd9d82530c04eba8ccd7a"
},
{
"url": "https://git.kernel.org/stable/c/c2707480cfbf19c7619acc9c089d17f20869821f"
}
],
"title": "net/packet: reset the MAC header on the packet-socket transmit path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74667",
"datePublished": "2026-08-22T15:32:38.862Z",
"dateReserved": "2026-08-15T05:44:03.924Z",
"dateUpdated": "2026-10-16T19:16:08.261Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74302 (GCVE-0-2026-74302)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_core: Fix UAF in hci_unregister_dev()
hci_unregister_dev() does not disable cmd_timer and ncmd_timer
before the hci_dev structure is freed. If a timeout fires
during device teardown, the callback dereferences freed memory
(including the hdev->reset function pointer), leading to a
use-after-free.
Add disable_delayed_work_sync() calls alongside the existing
disable_work_sync() calls to ensure both timers are fully
quiesced before teardown proceeds.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d6cbce18370641a21dd889e8613d8153df15eb39 Version: 0d151a103775dd9645c78c97f77d6e2a5298d913 Version: 0d151a103775dd9645c78c97f77d6e2a5298d913 Version: 0d151a103775dd9645c78c97f77d6e2a5298d913 Version: 0d151a103775dd9645c78c97f77d6e2a5298d913 Version: 48542881997e17b49dc16b93fe910e0cfcf7a9f9 Version: 9cfc84b1d464cc024286f42a090718f9067b80ed Version: ddeda6ca5f218b668b560d90fc31ae469adbfd92 Version: d2ce562a5aff1dcd0c50d9808ea825ef90da909f Version: 96600c2e5ee8213dbab5df1617293d8e847bb4fa Version: 3f939bd73fed12dddc2a32a76116c19ca47c7678 Version: 6.6.42 ≤ Version: 4.19.319 ≤ Version: 5.4.281 ≤ Version: 5.10.223 ≤ Version: 5.15.164 ≤ Version: 6.1.101 ≤ Version: 6.9.11 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74302",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:48.387407Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:31.734Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/hci_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bce2eec05bce548b548aca52c1834540f97d5d60",
"status": "affected",
"version": "d6cbce18370641a21dd889e8613d8153df15eb39",
"versionType": "git"
},
{
"lessThan": "48c7ad6afcc58c2cda11fed39791708103b6a644",
"status": "affected",
"version": "0d151a103775dd9645c78c97f77d6e2a5298d913",
"versionType": "git"
},
{
"lessThan": "a0fd1086a57b982f8c24ae4ab165c2af39fe1735",
"status": "affected",
"version": "0d151a103775dd9645c78c97f77d6e2a5298d913",
"versionType": "git"
},
{
"lessThan": "672d52d9412252e61b8de8d773ccdf5a277cf540",
"status": "affected",
"version": "0d151a103775dd9645c78c97f77d6e2a5298d913",
"versionType": "git"
},
{
"lessThan": "5edcc018fa6e80b2c478454a4a8229c23d67c181",
"status": "affected",
"version": "0d151a103775dd9645c78c97f77d6e2a5298d913",
"versionType": "git"
},
{
"status": "affected",
"version": "48542881997e17b49dc16b93fe910e0cfcf7a9f9",
"versionType": "git"
},
{
"status": "affected",
"version": "9cfc84b1d464cc024286f42a090718f9067b80ed",
"versionType": "git"
},
{
"status": "affected",
"version": "ddeda6ca5f218b668b560d90fc31ae469adbfd92",
"versionType": "git"
},
{
"status": "affected",
"version": "d2ce562a5aff1dcd0c50d9808ea825ef90da909f",
"versionType": "git"
},
{
"status": "affected",
"version": "96600c2e5ee8213dbab5df1617293d8e847bb4fa",
"versionType": "git"
},
{
"status": "affected",
"version": "3f939bd73fed12dddc2a32a76116c19ca47c7678",
"versionType": "git"
},
{
"lessThan": "6.6.160",
"status": "affected",
"version": "6.6.42",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.319",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.281",
"versionType": "semver"
},
{
"lessThan": "5.11",
"status": "affected",
"version": "5.10.223",
"versionType": "semver"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.164",
"versionType": "semver"
},
{
"lessThan": "6.2",
"status": "affected",
"version": "6.1.101",
"versionType": "semver"
},
{
"lessThan": "6.10",
"status": "affected",
"version": "6.9.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/hci_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.6.42",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.319",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.281",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.10.223",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.164",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.101",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.9.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_core: Fix UAF in hci_unregister_dev()\n\nhci_unregister_dev() does not disable cmd_timer and ncmd_timer\nbefore the hci_dev structure is freed. If a timeout fires\nduring device teardown, the callback dereferences freed memory\n(including the hdev-\u003ereset function pointer), leading to a\nuse-after-free.\n\nAdd disable_delayed_work_sync() calls alongside the existing\ndisable_work_sync() calls to ensure both timers are fully\nquiesced before teardown proceeds."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only during hci_unregister_dev() teardown (e.g. closing /dev/vhci, USB/btusb disconnect, hci_ldisc detach, or driver removal); adjacent Bluetooth peers can arm cmd_timer/ncmd_timer via HCI timeouts but cannot invoke unregister, so exploitation requires local device/syscall access.\nAC:L - An attacker controls both sides of the race\u2014arming cmd_timer (2s) or ncmd_timer (4s) by withholding HCI command completions while closing /dev/vhci to run hci_unregister_dev(), and disable_work_sync(cmd_work) can queue cmd_timer immediately before teardown; the cycle is repeatable.\nPR:L - vhci_open() has no capable() check, so any principal granted /dev/vhci (syzkaller, containers, Android bluetooth uid, permissive udev) can create/destroy virtual HCI controllers and inject frames without init-namespace root, matching prior hci_unregister_dev teardown UAF scores.\nUI:N - The attacker performs device creation, HCI traffic injection, and teardown from its own process via open/write/close on /dev/vhci or equivalent local transport; no victim interaction or cooperation is required beyond existing device-node access.\nS:U - Corruption is confined to kernel slab memory and workqueue/timer state within the same kernel security authority; exploitation yields standard kernel privilege escalation, not VM escape, IOMMU bypass, or cross-sandbox boundary crossing.\nC:H - hci_cmd_timeout() and hci_ncmd_timeout() dereference the freed hci_dev (req_skb, flags, workqueue, name) after kfree(); UAF on the hci_dev slab enables controlled reallocation and arbitrary kernel memory read/pointer disclosure via heap spraying.\nI:H - hci_cmd_timeout() invokes the freed hdev-\u003ereset function pointer and re-queues cmd_work on hdev-\u003eworkqueue; attacker-controlled contents in the reclaimed hci_dev object provide arbitrary write and control-flow hijack primitives per kernel UAF scoring guidance.\nA:H - Timer callbacks operating on freed hci_dev memory cause KASAN slab-use-after-free reports, kernel oops/panic, and can queue work onto destroyed workqueues; even failed exploitation reliably crashes or hangs the affected controller path."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:17.382Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bce2eec05bce548b548aca52c1834540f97d5d60"
},
{
"url": "https://git.kernel.org/stable/c/48c7ad6afcc58c2cda11fed39791708103b6a644"
},
{
"url": "https://git.kernel.org/stable/c/a0fd1086a57b982f8c24ae4ab165c2af39fe1735"
},
{
"url": "https://git.kernel.org/stable/c/672d52d9412252e61b8de8d773ccdf5a277cf540"
},
{
"url": "https://git.kernel.org/stable/c/5edcc018fa6e80b2c478454a4a8229c23d67c181"
}
],
"title": "Bluetooth: hci_core: Fix UAF in hci_unregister_dev()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74302",
"datePublished": "2026-08-15T05:58:04.638Z",
"dateReserved": "2026-08-15T05:44:03.882Z",
"dateUpdated": "2026-10-21T12:45:17.382Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64009 (GCVE-0-2026-64009)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-10-19 20:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: Check for underflow in xfrm_state_mtu
Leo Lin reported OOB write issue in esp component:
xfrm_state_mtu() returns u32 but performs its arithmetic in unsigned
modulo-2^32 space using an attacker-influenced "header_len + authsize +
net_adj" subtracted from a small "mtu" argument. A nobody user can
install an IPv4 ESP tunnel SA with a large authentication key
(XFRMA_ALG_AUTH_TRUNC, e.g. hmac(sha512), 64-byte key, 64-byte trunc),
configure a small interface MTU (68 bytes), and set XFRMA_TFCPAD to a
large value. When a single UDP datagram is then sent through the
tunnel, xfrm_state_mtu() underflows to a near-2^32 value, and
esp_output() consumes it as a signed int via:
padto = min(x->tfcpad, xfrm_state_mtu(x, mtu_cached))
esp.tfclen = padto - skb->len (assigned to int)
esp.tfclen ends up negative (e.g. -207). It is sign-extended to size_t
when passed to memset() inside esp_output_fill_trailer(), producing a
~16 EB write of zeroes at skb_tail_pointer(skb). KASAN logs it as
"Write of size 18446744073709551537 at addr ffff888...".
Check for underflow and return 1. This causes the sendmsg attempt to
fail with ENETUNREACH.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 Version: c5c2523893747f88a83376abad310c8ad13f7197 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64009",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:35:15.345325Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-191",
"description": "CWE-191 Integer Underflow (Wrap or Wraparound)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:28:08.230Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8014f70c4e6e5ab101ae3860a614e65e988372e3",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "1021d2877b689a648b27815c854557a917122e93",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "2a41b1b31c61c52b972278ce1732a1443f5e89ed",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "fccd685b32df5aaf6bad4381eeda216468e283f0",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "820e501be8aee4b365d218d83227b314309c5fda",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "82ac903e0b519849647657b8c48d21237ada06a2",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "3db50ceeacb52806d8fe86fb1dfe944df0b9f789",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
},
{
"lessThan": "742b04d0550b0ec89dcbc99537ec88653bd1ad90",
"status": "affected",
"version": "c5c2523893747f88a83376abad310c8ad13f7197",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: Check for underflow in xfrm_state_mtu\n\nLeo Lin reported OOB write issue in esp component:\n\n xfrm_state_mtu() returns u32 but performs its arithmetic in unsigned\n modulo-2^32 space using an attacker-influenced \"header_len + authsize +\n net_adj\" subtracted from a small \"mtu\" argument. A nobody user can\n install an IPv4 ESP tunnel SA with a large authentication key\n (XFRMA_ALG_AUTH_TRUNC, e.g. hmac(sha512), 64-byte key, 64-byte trunc),\n configure a small interface MTU (68 bytes), and set XFRMA_TFCPAD to a\n large value. When a single UDP datagram is then sent through the\n tunnel, xfrm_state_mtu() underflows to a near-2^32 value, and\n esp_output() consumes it as a signed int via:\n\n padto = min(x-\u003etfcpad, xfrm_state_mtu(x, mtu_cached))\n esp.tfclen = padto - skb-\u003elen (assigned to int)\n\n esp.tfclen ends up negative (e.g. -207). It is sign-extended to size_t\n when passed to memset() inside esp_output_fill_trailer(), producing a\n ~16 EB write of zeroes at skb_tail_pointer(skb). KASAN logs it as\n \"Write of size 18446744073709551537 at addr ffff888...\".\n\nCheck for underflow and return 1. This causes the sendmsg attempt to\nfail with ENETUNREACH."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerability is triggered on the local ESP output path when a process sends a UDP datagram through an attacker-configured XFRM tunnel via sendmsg(); remote peers cannot install XFRM SAs, set interface MTU, or control XFRMA_TFCPAD on the victim system.\nAC:L - The attacker fully controls all preconditions (ESP tunnel SA with large HMAC-SHA512 auth, MTU 68, XFRMA_TFCPAD, and UDP payload size) and can trigger the underflow deterministically with a single datagram as demonstrated in the fix commit.\nPR:L - XFRM state/policy installation and interface MTU configuration require CAP_NET_ADMIN, which an unprivileged local user can obtain in a user namespace via unshare -Urn; this is the most severe reasonable deployment scenario on multi-tenant hosts.\nUI:N - Exploitation requires only the attacker\u0027s own netlink configuration and socket send operations; no action from another user or administrator is needed.\nS:U - The vulnerability corrupts kernel heap memory from a local attacker\u0027s security context, constituting standard kernel privilege escalation rather than crossing a VM or hypervisor boundary.\nC:H - The bug produces a massive out-of-bounds write via memset() at the skb tail pointer; such heap corruption is exploitable for arbitrary kernel memory disclosure in addition to the demonstrated KASAN-detected write primitive.\nI:H - A negative tfclen sign-extended to size_t causes an enormous memset() OOB write at skb_tail_pointer(skb), providing a memory corruption primitive that can be leveraged for arbitrary kernel writes and code execution.\nA:H - The OOB write reliably triggers kernel oops/panic (KASAN reports a write of size 18446744073709551537 bytes), causing immediate system crash and denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:38:09.114Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8014f70c4e6e5ab101ae3860a614e65e988372e3"
},
{
"url": "https://git.kernel.org/stable/c/1021d2877b689a648b27815c854557a917122e93"
},
{
"url": "https://git.kernel.org/stable/c/2a41b1b31c61c52b972278ce1732a1443f5e89ed"
},
{
"url": "https://git.kernel.org/stable/c/fccd685b32df5aaf6bad4381eeda216468e283f0"
},
{
"url": "https://git.kernel.org/stable/c/820e501be8aee4b365d218d83227b314309c5fda"
},
{
"url": "https://git.kernel.org/stable/c/82ac903e0b519849647657b8c48d21237ada06a2"
},
{
"url": "https://git.kernel.org/stable/c/3db50ceeacb52806d8fe86fb1dfe944df0b9f789"
},
{
"url": "https://git.kernel.org/stable/c/742b04d0550b0ec89dcbc99537ec88653bd1ad90"
}
],
"title": "xfrm: Check for underflow in xfrm_state_mtu",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64009",
"datePublished": "2026-07-19T14:56:24.448Z",
"dateReserved": "2026-07-19T07:54:57.026Z",
"dateUpdated": "2026-10-19T20:28:08.230Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80747 (GCVE-0-2026-80747)
Vulnerability from cvelistv5
Published
2026-09-03 08:26
Modified
2026-10-21 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Add bounds check for CRAT subtype length
The CRAT parser validates that the subtype header fits within the image,
but does not verify that the advertised subtype length fits. A malformed
CRAT table with an oversized length field causes out-of-bounds reads when
kfd_parse_subtype() casts the header to specific subtype structures.
Add validation that sub_type_hdr + length does not exceed the image
boundary before parsing the subtype contents.
(cherry picked from commit 48e1d1e6e8798aef0312e68d8e586021b5b3cf4d)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_crat.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fef8c8afcb85dce5ff115f82a148cdf87a9617b9",
"status": "affected",
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"versionType": "git"
},
{
"lessThan": "77b659fb104eb069ea7a61960699e4d1eea6567a",
"status": "affected",
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"versionType": "git"
},
{
"lessThan": "69164d6bdad5d6657e51436a3f602822f620a46a",
"status": "affected",
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"versionType": "git"
},
{
"lessThan": "ca91e0cc8087568e4b791648a7c01e804f48cb73",
"status": "affected",
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"versionType": "git"
},
{
"lessThan": "6e7566ba4739dd573c331adde1c96690f7a567bd",
"status": "affected",
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_crat.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.19"
},
{
"lessThan": "3.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "3.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: Add bounds check for CRAT subtype length\n\nThe CRAT parser validates that the subtype header fits within the image,\nbut does not verify that the advertised subtype length fits. A malformed\nCRAT table with an oversized length field causes out-of-bounds reads when\nkfd_parse_subtype() casts the header to specific subtype structures.\n\nAdd validation that sub_type_hdr + length does not exceed the image\nboundary before parsing the subtype contents.\n\n(cherry picked from commit 48e1d1e6e8798aef0312e68d8e586021b5b3cf4d)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable kfd_parse_crat_table() runs only during amdgpu/amdkfd bring-up (kfd_topology_init at module load and kfd_topology_add_device on GPU probe). On affected kernels, ACPI CRAT is copied from firmware via acpi_get_table(\"CRAT\"); there is no network, ioctl, or /dev/kfd path to this parser.\nAC:L - A malicious ACPI CRAT can set subtype length so only the 8-byte generic header fits in the remaining image while kfd_parse_subtype() casts to larger structs (cache, CU, iolink). The out-of-bounds read is deterministic at boot with no races or attacker-uncontrollable memory layout.\nPR:N - Exploitation requires only a crafted ACPI CRAT in platform firmware/UEFI parsed automatically at boot via kfd_create_crat_image_acpi(). No Linux user account, capability, or /dev/kfd access is needed; only control of firmware-supplied CRAT contents before KFD topology initialization.\nUI:N - CRAT parsing occurs automatically during kernel boot and amdgpu/KFD module initialization when topology is built. No user mount, file open, or other discretionary action is required beyond powering on hardware that contains the malicious ACPI table.\nS:U - Impact is confined to kernel heap out-of-bounds reads and corrupted topology metadata within the host kernel security domain. This is not a guest/host VM escape, container sandbox breakout, or IOMMU/DMA boundary bypass.\nC:H - kfd_parse_subtype() casts the generic header to large subtype structures and reads past the CRAT buffer boundary (e.g., cache sibling_map[32], iolink, computeunit fields). Leaked adjacent kernel heap bytes populate topology objects exposed via world-readable /sys/class/kfd/kfd/topology/ attributes (0444).\nI:L - Out-of-bounds read values (sizes, proximity domains, sibling maps, bandwidth fields) are stored into kmalloc\u0027d kernel topology structures (mem_props, cache_props, io_link_props), modifying kernel metadata with attacker-influenced data derived from reads past the allocation.\nA:H - Out-of-bounds reads during early init can dereference unmapped pages and trigger a kernel oops or panic during amdgpu/KFD bring-up. Related malformed-CRAT parser bugs at the same code path also cause infinite-loop denial of service, confirming high availability impact from CRAT parsing flaws."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:47:02.807Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fef8c8afcb85dce5ff115f82a148cdf87a9617b9"
},
{
"url": "https://git.kernel.org/stable/c/77b659fb104eb069ea7a61960699e4d1eea6567a"
},
{
"url": "https://git.kernel.org/stable/c/69164d6bdad5d6657e51436a3f602822f620a46a"
},
{
"url": "https://git.kernel.org/stable/c/ca91e0cc8087568e4b791648a7c01e804f48cb73"
},
{
"url": "https://git.kernel.org/stable/c/6e7566ba4739dd573c331adde1c96690f7a567bd"
}
],
"title": "drm/amdkfd: Add bounds check for CRAT subtype length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80747",
"datePublished": "2026-09-03T08:26:28.938Z",
"dateReserved": "2026-08-26T14:34:25.790Z",
"dateUpdated": "2026-10-21T12:47:02.807Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89508 (GCVE-0-2026-89508)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/ucma: Lock the handler in ucma_set_ib_path()
ucma_set_ib_path() calls ucma_event_handler() straight from the write()
path, without the handler lock that keeps ctx->file stable while a uevent
is queued. The handler re-reads ctx->file for every dereference:
mutex_lock(&ctx->file->mut); /* file A */
list_add_tail(&uevent->list, &ctx->file->event_list); /* file B */
mutex_unlock(&ctx->file->mut); /* file B */
wake_up_interruptible(&ctx->file->poll_wait); /* file B */
A concurrent ucma_migrate_id() reassigns ctx->file while the SET_OPTION
caller sleeps in mutex_lock(), so the list_add_tail() lands on file B's
event_list while only file A's mutex is held, racing every other user of
that list:
BUG: KASAN: slab-use-after-free in __list_add_valid_or_report+0x1aa/0x1c0
Read of size 8 at addr ffff888153c6a418 by task poc_corr/486
Call Trace:
__list_add_valid_or_report+0x1aa/0x1c0
ucma_event_handler+0x1be/0xc00
ucma_set_ib_path+0x45e/0x710
ucma_set_option+0x32e/0x590
ucma_write+0x1f9/0x330
Allocated by task 505:
ucma_write_cm_event+0x1a1/0x660
Freed by task 505:
kfree+0x1da/0x4c0
ucma_get_event+0x5d5/0x7e0
The freed object is a ucma_event that another thread dequeued from file B's
list under file B's mutex. File A's mut is left held on top of that,
wedging its next writer in uninterruptible sleep.
This path needs a bound and address-resolved cm_id, so it requires an RDMA
device to be present.
Take the handler lock around the call.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 Version: 09e328e47a695b0d346598f5d6593ee598e64885 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/ucma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3dd07b369371a2f29e1c3caf1ade85bb92b4c551",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "b2da0d488a1c72956ebb0a57015ee8ee6a2f7748",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "a7f8d26e653ee43b0b572984b8ec544d3b3b6f3c",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "71dc206f2e2a645dac78879768762451aa1799f7",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "764586f8f6180084c5a7d622120f526acc6ce0c9",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "28ac2dd416482d1c763c4af5d61af465b387fb50",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "43a7d8ae9f645dc00235cfa4bf57673c20b769f8",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
},
{
"lessThan": "ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820",
"status": "affected",
"version": "09e328e47a695b0d346598f5d6593ee598e64885",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/ucma.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/ucma: Lock the handler in ucma_set_ib_path()\n\nucma_set_ib_path() calls ucma_event_handler() straight from the write()\npath, without the handler lock that keeps ctx-\u003efile stable while a uevent\nis queued. The handler re-reads ctx-\u003efile for every dereference:\n\n\tmutex_lock(\u0026ctx-\u003efile-\u003emut);\t\t\t/* file A */\n\tlist_add_tail(\u0026uevent-\u003elist, \u0026ctx-\u003efile-\u003eevent_list);\t/* file B */\n\tmutex_unlock(\u0026ctx-\u003efile-\u003emut);\t\t\t/* file B */\n\twake_up_interruptible(\u0026ctx-\u003efile-\u003epoll_wait);\t/* file B */\n\nA concurrent ucma_migrate_id() reassigns ctx-\u003efile while the SET_OPTION\ncaller sleeps in mutex_lock(), so the list_add_tail() lands on file B\u0027s\nevent_list while only file A\u0027s mutex is held, racing every other user of\nthat list:\n\n BUG: KASAN: slab-use-after-free in __list_add_valid_or_report+0x1aa/0x1c0\n Read of size 8 at addr ffff888153c6a418 by task poc_corr/486\n Call Trace:\n __list_add_valid_or_report+0x1aa/0x1c0\n ucma_event_handler+0x1be/0xc00\n ucma_set_ib_path+0x45e/0x710\n ucma_set_option+0x32e/0x590\n ucma_write+0x1f9/0x330\n Allocated by task 505:\n ucma_write_cm_event+0x1a1/0x660\n Freed by task 505:\n kfree+0x1da/0x4c0\n ucma_get_event+0x5d5/0x7e0\n\nThe freed object is a ucma_event that another thread dequeued from file B\u0027s\nlist under file B\u0027s mutex. File A\u0027s mut is left held on top of that,\nwedging its next writer in uninterruptible sleep.\n\nThis path needs a bound and address-resolved cm_id, so it requires an RDMA\ndevice to be present.\n\nTake the handler lock around the call."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via write() on /dev/infiniband/rdma_cm (SET_OPTION -\u003e ucma_set_option -\u003e ucma_set_ib_path). A remote RDMA peer cannot invoke this path; in-kernel CM event delivery already holds the handler lock that this write path omitted.\nAC:L - The attacker controls both sides of the race: one thread issues SET_OPTION (RDMA_OPTION_IB_PATH) while another MIGRATE_IDs the cm_id to a second fd and a third GET_EVENTs to free the uevent. The window is the mutex_lock() sleep in ucma_event_handler, which the attacker can widen, and it was reproduced by poc_corr.\nPR:L - ucma is a miscdevice with mode 0666 and ucma_write() has no capability check. Any unprivileged local user can open /dev/infiniband/rdma_cm, CREATE_ID, resolve an address on an existing RDMA device, then issue SET_OPTION and MIGRATE_ID.\nUI:N - The attacker opens rdma_cm, creates and migrates their own cm_id, and issues the concurrent SET_OPTION and GET_EVENT writes themselves; no other user or administrator action is required.\nS:U - The use-after-free and list corruption are confined to host-kernel objects (ucma_event and file event_list). This is a standard local kernel compromise and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - The race is a slab use-after-free of struct ucma_event (KASAN in __list_add_valid_or_report after GET_EVENT kfree). Reclaiming the freed object gives the attacker control over list pointers and event contents, enabling disclosure of kernel memory.\nI:H - list_add_tail runs on file B\u0027s event_list while only file A\u0027s mutex is held, corrupting list pointers. Combined with UAF reclaim of ucma_event, this is a classic kernel list-unlink arbitrary-write primitive suitable for control-flow hijacking.\nA:H - The UAF and list_debug BUG can oops the kernel, and the mismatched mutex_unlock leaves file A\u0027s mut held so the next writer sleeps uninterruptibly in D state, hanging the system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:59.672Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3dd07b369371a2f29e1c3caf1ade85bb92b4c551"
},
{
"url": "https://git.kernel.org/stable/c/b2da0d488a1c72956ebb0a57015ee8ee6a2f7748"
},
{
"url": "https://git.kernel.org/stable/c/a7f8d26e653ee43b0b572984b8ec544d3b3b6f3c"
},
{
"url": "https://git.kernel.org/stable/c/71dc206f2e2a645dac78879768762451aa1799f7"
},
{
"url": "https://git.kernel.org/stable/c/764586f8f6180084c5a7d622120f526acc6ce0c9"
},
{
"url": "https://git.kernel.org/stable/c/28ac2dd416482d1c763c4af5d61af465b387fb50"
},
{
"url": "https://git.kernel.org/stable/c/43a7d8ae9f645dc00235cfa4bf57673c20b769f8"
},
{
"url": "https://git.kernel.org/stable/c/ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820"
}
],
"title": "RDMA/ucma: Lock the handler in ucma_set_ib_path()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89508",
"datePublished": "2026-09-11T19:43:54.682Z",
"dateReserved": "2026-09-11T19:38:34.716Z",
"dateUpdated": "2026-10-19T08:47:59.672Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89542 (GCVE-0-2026-89542)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: harden gss_krb5_unwrap_v2 against short tokens
gss_krb5_unwrap_v2() reads the EC and RRC header fields at ptr+4 and
ptr+6 before validating that the token is at least GSS_KRB5_TOK_HDR_LEN
(16) bytes long, and its rotate_left() helper passes buf->len - base
to xdr_buf_subsegment() without verifying that base <= buf->len. When
a caller hands in a sub-16-byte token, or a token whose declared len
leaves base past the end of the buffer, three distinct failures follow:
gss_krb5_unwrap_v2(offset, len, buf)
ptr = buf->head[0].iov_base + offset
ec = *(ptr + 4) /* OOB read on short head */
rrc = *(ptr + 6) /* OOB read on short head */
rotate_left(offset + 16, buf, rrc)
xdr_buf_subsegment(buf, &subbuf,
base, buf->len - base) /* u32 wrap when base > len */
_rotate_left(&subbuf, shift)
shift %= buf->len /* divide-by-zero when base == len */
After decryption, the cleanup arithmetic has the same shape:
movelen = min_t(unsigned int, buf->head[0].iov_len, len);
movelen -= offset + GSS_KRB5_TOK_HDR_LEN + headskip;
BUG_ON(offset + GSS_KRB5_TOK_HDR_LEN + headskip + movelen >
buf->head[0].iov_len);
The BUG_ON re-adds the value just subtracted, so it reduces to
min(A, B) > A and is permanently false; it cannot catch the unsigned
underflow of movelen, which then drives a ~UINT_MAX-byte memmove().
Add four defense-in-depth guards inside the unwrap core so it is safe
regardless of what its callers validate:
- reject tokens with len - offset < GSS_KRB5_TOK_HDR_LEN before
touching ptr+4/ptr+6;
- bail from rotate_left() when buf->len <= base, covering both the
underflow and zero-length cases;
- return early from _rotate_left() when buf->len is zero, so the
shift %= buf->len modulo cannot fault;
- replace the dead BUG_ON with a live check that returns
GSS_S_DEFECTIVE_TOKEN before the movelen subtraction.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 Version: de9c17eb4a912c9028f7b470eb80815144883b26 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89542",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:31.016705Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.330Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_krb5_wrap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "299d281c7225ded15b28cb861a98d818d82787fc",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "84ddbc8d084c0251d534f14f5d1a7da05be56404",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "075d7cfc4df8c54cb202ba8b28420370c03ba9b6",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "f2591660e0eb263c9415bf0d0bb1b111e62df7a4",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "dddcb0f4b7e27fac16a78ea9a1c8ec2e8a241087",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "806584a4b67a7233870c33e5b8f872e76dd02988",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "a7894e10572d53eb10109b8d07459cc8d3435811",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
},
{
"lessThan": "6959297aaa9572783d620a226d73c3fb94494888",
"status": "affected",
"version": "de9c17eb4a912c9028f7b470eb80815144883b26",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/auth_gss/gss_krb5_wrap.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.35"
},
{
"lessThan": "2.6.35",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.35",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.35",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: harden gss_krb5_unwrap_v2 against short tokens\n\ngss_krb5_unwrap_v2() reads the EC and RRC header fields at ptr+4 and\nptr+6 before validating that the token is at least GSS_KRB5_TOK_HDR_LEN\n(16) bytes long, and its rotate_left() helper passes buf-\u003elen - base\nto xdr_buf_subsegment() without verifying that base \u003c= buf-\u003elen. When\na caller hands in a sub-16-byte token, or a token whose declared len\nleaves base past the end of the buffer, three distinct failures follow:\n\n gss_krb5_unwrap_v2(offset, len, buf)\n ptr = buf-\u003ehead[0].iov_base + offset\n ec = *(ptr + 4) /* OOB read on short head */\n rrc = *(ptr + 6) /* OOB read on short head */\n rotate_left(offset + 16, buf, rrc)\n xdr_buf_subsegment(buf, \u0026subbuf,\n base, buf-\u003elen - base) /* u32 wrap when base \u003e len */\n _rotate_left(\u0026subbuf, shift)\n shift %= buf-\u003elen /* divide-by-zero when base == len */\n\nAfter decryption, the cleanup arithmetic has the same shape:\n\n movelen = min_t(unsigned int, buf-\u003ehead[0].iov_len, len);\n movelen -= offset + GSS_KRB5_TOK_HDR_LEN + headskip;\n BUG_ON(offset + GSS_KRB5_TOK_HDR_LEN + headskip + movelen \u003e\n buf-\u003ehead[0].iov_len);\n\nThe BUG_ON re-adds the value just subtracted, so it reduces to\nmin(A, B) \u003e A and is permanently false; it cannot catch the unsigned\nunderflow of movelen, which then drives a ~UINT_MAX-byte memmove().\n\nAdd four defense-in-depth guards inside the unwrap core so it is safe\nregardless of what its callers validate:\n\n - reject tokens with len - offset \u003c GSS_KRB5_TOK_HDR_LEN before\n touching ptr+4/ptr+6;\n - bail from rotate_left() when buf-\u003elen \u003c= base, covering both the\n underflow and zero-length cases;\n - return early from _rotate_left() when buf-\u003elen is zero, so the\n shift %= buf-\u003elen modulo cannot fault;\n - replace the dead BUG_ON with a live check that returns\n GSS_S_DEFECTIVE_TOKEN before the movelen subtraction."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - gss_krb5_unwrap_v2() is reached from nfsd RPCSEC_GSS privacy unwrap (svcauth_gss_accept \u2192 svcauth_gss_unwrap_priv \u2192 gss_unwrap) on TCP/2049 and from the NFS client gss_unwrap_resp_priv() path on a krb5p Reply, so a remote RPCSEC_GSS peer delivers the crafted wrap token over the network.\nAC:L - A single crafted RPCSEC_GSS DATA/Reply with a sub-16-byte wrap token (KG2_TOK_WRAP, sealed flags, non-zero RRC) deterministically hits the pre-decrypt ptr+4/ptr+6 reads, rotate_left() u32 wrap, and shift%=0 divide-by-zero; no race or attacker-uncontrollable layout is required.\nPR:N - A malicious NFS server on an existing krb5p session needs no account or capability on the victim client to send the crafted Reply into gss_unwrap_resp_priv(). That client-victim path is the highest-severity reachability and requires no privileges on the target.\nUI:N - nfsd unwraps the Call in the service thread with no local user action. On the client, gss_unwrap_resp_priv() runs automatically from the RPC receive path once an NFS/RPCSEC_GSS mount exists; no additional mount, click, or open is required at attack time.\nS:U - The out-of-bounds accesses, divide-by-zero, and underflowed memmove corrupt host kernel SUNRPC/GSS state on the machine processing the RPC. This is ordinary same-host kernel impact, not a VM escape, IOMMU bypass, or other changed-scope boundary.\nC:H - Short tokens make gss_krb5_unwrap_v2() read EC/RRC past the token, and the dead BUG_ON lets unsigned movelen underflow into a ~UINT_MAX-byte memmove() that copies kernel memory beyond the receive head; that unbounded read is C:H per kernel CNA memory-corruption guidance.\nI:H - The same underflowed memmove() writes near 4GiB through the RPC receive head, an out-of-bounds write exploitable for control-flow hijack. rotate_left() also ignores xdr_buf_subsegment() failure after u32 wrap and then writes through a subbuf whose length has wrapped.\nA:H - _rotate_left() does shift %= buf-\u003elen on a zero-length subbuffer (header-only token at the XDR boundary), a divide-by-zero oops/panic; the UINT_MAX memmove and wrapped-length rotate loop hang or oops nfsd/rpciod, and the attacker can repeat the RPC to deny service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:33.941Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/299d281c7225ded15b28cb861a98d818d82787fc"
},
{
"url": "https://git.kernel.org/stable/c/84ddbc8d084c0251d534f14f5d1a7da05be56404"
},
{
"url": "https://git.kernel.org/stable/c/075d7cfc4df8c54cb202ba8b28420370c03ba9b6"
},
{
"url": "https://git.kernel.org/stable/c/f2591660e0eb263c9415bf0d0bb1b111e62df7a4"
},
{
"url": "https://git.kernel.org/stable/c/dddcb0f4b7e27fac16a78ea9a1c8ec2e8a241087"
},
{
"url": "https://git.kernel.org/stable/c/806584a4b67a7233870c33e5b8f872e76dd02988"
},
{
"url": "https://git.kernel.org/stable/c/a7894e10572d53eb10109b8d07459cc8d3435811"
},
{
"url": "https://git.kernel.org/stable/c/6959297aaa9572783d620a226d73c3fb94494888"
}
],
"title": "SUNRPC: harden gss_krb5_unwrap_v2 against short tokens",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89542",
"datePublished": "2026-09-11T19:44:18.931Z",
"dateReserved": "2026-09-11T19:38:34.722Z",
"dateUpdated": "2026-10-19T08:48:33.941Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90358 (GCVE-0-2026-90358)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-21 12:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf, x86: Fix trampoline stack size for 128-bit arguments
btf_distill_func_proto() accepts a function argument up to 16 bytes, so a
128-bit scalar such as __int128 reaches the x86 trampoline with
arg_size == 16. But the current implementation assumes an __int128
argument only needs one register, so the register save area is
under-allocated and save_args() overwrites adjacent stack slots.
Compute the register count from arg_size for all arguments to fix it.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/net/bpf_jit_comp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7f96bf0d24b2acc0732906b60a10f06783f2470d",
"status": "affected",
"version": "a9c5ad31fbdc4dec6d266fe22e51de1ad6d1bcf2",
"versionType": "git"
},
{
"lessThan": "4aed2346fa9b88d458eeb8c01123f3c07585a675",
"status": "affected",
"version": "a9c5ad31fbdc4dec6d266fe22e51de1ad6d1bcf2",
"versionType": "git"
},
{
"lessThan": "40f3bfbbb222b92278f3797614b70f68d46824ac",
"status": "affected",
"version": "a9c5ad31fbdc4dec6d266fe22e51de1ad6d1bcf2",
"versionType": "git"
},
{
"lessThan": "a6d7d7a253c550e74b0651897fe313c2f9b2301f",
"status": "affected",
"version": "a9c5ad31fbdc4dec6d266fe22e51de1ad6d1bcf2",
"versionType": "git"
},
{
"lessThan": "814cba835ef648e0c5eb79505c96c0493b29eea6",
"status": "affected",
"version": "a9c5ad31fbdc4dec6d266fe22e51de1ad6d1bcf2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/net/bpf_jit_comp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf, x86: Fix trampoline stack size for 128-bit arguments\n\nbtf_distill_func_proto() accepts a function argument up to 16 bytes, so a\n128-bit scalar such as __int128 reaches the x86 trampoline with\narg_size == 16. But the current implementation assumes an __int128\nargument only needs one register, so the register save area is\nunder-allocated and save_args() overwrites adjacent stack slots.\n\nCompute the register count from arg_size for all arguments to fix it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The under-allocation is in __arch_prepare_bpf_trampoline()/save_args() in arch/x86/net/bpf_jit_comp.c and is reached only when a local process issues bpf(BPF_PROG_LOAD) for BPF_PROG_TYPE_TRACING fentry/fexit and bpf(BPF_LINK_CREATE) against a BTF function with a 16-byte integer argument. BPF is a local syscall vector, not a network protocol parser.\nAC:L - The attacker selects an attach target whose BTF has arg_size==16 without BTF_FMODEL_STRUCT_ARG (e.g. bpf_testmod_test_int128_arg). __arch_prepare_bpf_trampoline() then under-counts nr_regs by one slot per such argument and save_args() deterministically overwrites the next stack slot; no race or uninfluenced layout is required.\nPR:L - bpf_prog_load() rejects BPF_PROG_TYPE_TRACING unless bpf_token_capable(CAP_BPF) and, via is_perfmon_prog_type(), bpf_token_capable(CAP_PERFMON). Those capabilities are delegable with BPF tokens and are scored Low, not init-namespace root, consistent with other BPF trampoline CVEs.\nUI:N - The attacker loads the fentry/fexit program, attaches it with BPF_LINK_CREATE, and invokes the target themselves (for bpf_testmod, a read of the module sysfs test file that calls bpf_testmod_test_int128_arg). No separate victim mount or click is required.\nS:U - save_args() overwrites the trampoline\u0027s own saved RBP and adjacent slots in the host kernel stack. That is in-kernel memory corruption on the same authority, not a KVM/Xen guest-to-host, IOMMU, or sandbox boundary crossing.\nC:H - The extra 8-byte store of the __int128\u0027s second register (RSI) lands in adjacent trampoline slots. On an fentry trampoline without a return-value slot that is saved RBP, so leave pivots RSP through argument contents and subsequent pops/unwinds can disclose kernel stack/memory.\nI:H - The same OOB store overwrites saved RBP (and with two 16-byte scalars, the return address at RBP+8). The trampoline epilogue then executes leave; ret on a corrupted frame, which is kernel stack memory corruption exploitable for a stack pivot and control-flow hijack.\nA:H - Overwriting saved RBP with the high half of a small __int128 (0 for bpf_testmod_test_int128_arg((__int128)1,...)) makes leave load a bogus frame pointer, so the following pop/ret oopses or panics the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:51:15.658Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7f96bf0d24b2acc0732906b60a10f06783f2470d"
},
{
"url": "https://git.kernel.org/stable/c/4aed2346fa9b88d458eeb8c01123f3c07585a675"
},
{
"url": "https://git.kernel.org/stable/c/40f3bfbbb222b92278f3797614b70f68d46824ac"
},
{
"url": "https://git.kernel.org/stable/c/a6d7d7a253c550e74b0651897fe313c2f9b2301f"
},
{
"url": "https://git.kernel.org/stable/c/814cba835ef648e0c5eb79505c96c0493b29eea6"
}
],
"title": "bpf, x86: Fix trampoline stack size for 128-bit arguments",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90358",
"datePublished": "2026-09-17T16:09:03.531Z",
"dateReserved": "2026-09-11T19:38:34.806Z",
"dateUpdated": "2026-10-21T12:51:15.658Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72218 (GCVE-0-2026-72218)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-17 05:10
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
lockd: Plug nlm_file refcount leak on cached nlm_do_fopen() failure
The cached-file path in nlm_lookup_file() reaches the found: label
unconditionally, even when nlm_do_fopen() fails. At that label
*result and file->f_count are updated before the error is returned.
The wrappers nlm3svc_lookup_file() and nlm4svc_lookup_file() then
bail out of their switch without copying *result back to their
caller, so the proc handler's local nlm_file pointer remains NULL
and the cleanup path skips nlm_release_file(). The f_count
increment is never released, and nlm_traverse_files() can no
longer reap the file because its refcount never returns to zero
between requests.
Short-circuit the cached path so neither *result nor f_count is
touched when nlm_do_fopen() fails on a hashed nlm_file.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e580323ac0b51ad10ec2e181d1f777479b7983e7 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 7f024fcd5c97dc70bb9121c80407cf3cf9be7159 Version: 5.10.220 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6cd84cefd8b73e85b9eda17b319bd40a670f3a38",
"status": "affected",
"version": "e580323ac0b51ad10ec2e181d1f777479b7983e7",
"versionType": "git"
},
{
"lessThan": "fe3b45b56b6c3d4b6b341de27fa291005287a21c",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "cb3420c047957e565101585bb4f15e1a6e3de6b0",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "7ce4c23e783e766507b2cef27bbf97e9ca944f1a",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "84008bf1860e0ef8059a7583a1163f36b704d08a",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "46d59ff421824b6483549d87f14efffbbbd1f6cb",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "3a5c55a19cad62f2973be25fe96a1a9e7f618e8a",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "70a38f87bed7f0694fd07988b47b2db1e10d8df3",
"status": "affected",
"version": "7f024fcd5c97dc70bb9121c80407cf3cf9be7159",
"versionType": "git"
},
{
"lessThan": "5.10.261",
"status": "affected",
"version": "5.10.220",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/lockd/svcsubs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "5.10.220",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlockd: Plug nlm_file refcount leak on cached nlm_do_fopen() failure\n\nThe cached-file path in nlm_lookup_file() reaches the found: label\nunconditionally, even when nlm_do_fopen() fails. At that label\n*result and file-\u003ef_count are updated before the error is returned.\nThe wrappers nlm3svc_lookup_file() and nlm4svc_lookup_file() then\nbail out of their switch without copying *result back to their\ncaller, so the proc handler\u0027s local nlm_file pointer remains NULL\nand the cleanup path skips nlm_release_file(). The f_count\nincrement is never released, and nlm_traverse_files() can no\nlonger reap the file because its refcount never returns to zero\nbetween requests.\n\nShort-circuit the cached path so neither *result nor f_count is\ntouched when nlm_do_fopen() fails on a hashed nlm_file."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:10:33.204Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6cd84cefd8b73e85b9eda17b319bd40a670f3a38"
},
{
"url": "https://git.kernel.org/stable/c/fe3b45b56b6c3d4b6b341de27fa291005287a21c"
},
{
"url": "https://git.kernel.org/stable/c/cb3420c047957e565101585bb4f15e1a6e3de6b0"
},
{
"url": "https://git.kernel.org/stable/c/7ce4c23e783e766507b2cef27bbf97e9ca944f1a"
},
{
"url": "https://git.kernel.org/stable/c/84008bf1860e0ef8059a7583a1163f36b704d08a"
},
{
"url": "https://git.kernel.org/stable/c/46d59ff421824b6483549d87f14efffbbbd1f6cb"
},
{
"url": "https://git.kernel.org/stable/c/3a5c55a19cad62f2973be25fe96a1a9e7f618e8a"
},
{
"url": "https://git.kernel.org/stable/c/70a38f87bed7f0694fd07988b47b2db1e10d8df3"
}
],
"title": "lockd: Plug nlm_file refcount leak on cached nlm_do_fopen() failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72218",
"datePublished": "2026-08-15T05:54:11.672Z",
"dateReserved": "2026-08-09T03:40:39.913Z",
"dateUpdated": "2026-08-17T05:10:33.204Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74536 (GCVE-0-2026-74536)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-17 05:21
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: fix leaking sk after socket release
iso_sock_kill() tests !sock_flag(sk, SOCK_ZAPPED) || sk->sk_socket ||
sock_flag(sk, SOCK_DEAD) for early return, but this is always true since
sock_orphan(sk) sets SOCK_DEAD, so the sk reference released by socket
always leaks, iso_sock_destruct is never called.
The socket reference also leaks when __iso_sock_close() does not set
SOCK_ZAPPED, since iso_conn_del() does not call iso_sock_kill() after
zapping.
Fix by replacing SOCK_DEAD by BT_SK_KILLED flag that is not used for
something else, and lock_sock to ensure iso_sock_kill() puts sk only
after socket release only once. Release and iso_conn_del may run
concurrently. Call iso_sock_kill() from iso_conn_del() to clean sk up
after zapping.
Remove call to iso_sock_kill() from iso_sock_close(), as it's generally
no-op there.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "96ed3c772c08e7a91c399567f412618e43231023",
"status": "affected",
"version": "ccf74f2390d60a2f9a75ef496d2564abb478f46a",
"versionType": "git"
},
{
"lessThan": "e76a0ae6542ae43241b2147bacf4990e7ae5316a",
"status": "affected",
"version": "ccf74f2390d60a2f9a75ef496d2564abb478f46a",
"versionType": "git"
},
{
"lessThan": "e30e5ca63c8fbe3cd505fbb419bb547760cda633",
"status": "affected",
"version": "ccf74f2390d60a2f9a75ef496d2564abb478f46a",
"versionType": "git"
},
{
"lessThan": "ce57442a379212fe3fda59c9437ee8217eceb5b1",
"status": "affected",
"version": "ccf74f2390d60a2f9a75ef496d2564abb478f46a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: fix leaking sk after socket release\n\niso_sock_kill() tests !sock_flag(sk, SOCK_ZAPPED) || sk-\u003esk_socket ||\nsock_flag(sk, SOCK_DEAD) for early return, but this is always true since\nsock_orphan(sk) sets SOCK_DEAD, so the sk reference released by socket\nalways leaks, iso_sock_destruct is never called.\n\nThe socket reference also leaks when __iso_sock_close() does not set\nSOCK_ZAPPED, since iso_conn_del() does not call iso_sock_kill() after\nzapping.\n\nFix by replacing SOCK_DEAD by BT_SK_KILLED flag that is not used for\nsomething else, and lock_sock to ensure iso_sock_kill() puts sk only\nafter socket release only once. Release and iso_conn_del may run\nconcurrently. Call iso_sock_kill() from iso_conn_del() to clean sk up\nafter zapping.\n\nRemove call to iso_sock_kill() from iso_sock_close(), as it\u0027s generally\nno-op there."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:21:20.361Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/96ed3c772c08e7a91c399567f412618e43231023"
},
{
"url": "https://git.kernel.org/stable/c/e76a0ae6542ae43241b2147bacf4990e7ae5316a"
},
{
"url": "https://git.kernel.org/stable/c/e30e5ca63c8fbe3cd505fbb419bb547760cda633"
},
{
"url": "https://git.kernel.org/stable/c/ce57442a379212fe3fda59c9437ee8217eceb5b1"
}
],
"title": "Bluetooth: ISO: fix leaking sk after socket release",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74536",
"datePublished": "2026-08-15T12:27:49.054Z",
"dateReserved": "2026-08-15T05:44:03.913Z",
"dateUpdated": "2026-08-17T05:21:20.361Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74310 (GCVE-0-2026-74310)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vhost/net: complete zerocopy ubufs only once
vhost-net initializes one ubuf_info per outstanding zerocopy TX
descriptor and hands it to the backend socket. The networking stack may
then clone a zerocopy skb before all skb references are released. For
example, batman-adv fragmentation reaches skb_split(), which calls
skb_zerocopy_clone() and increments the same ubuf_info refcount.
vhost_zerocopy_complete() currently treats every ubuf callback as a
completed vhost descriptor. It dereferences ubuf->ctx, writes the
descriptor completion state, and drops the vhost_net_ubuf_ref even when
the callback only releases a cloned skb reference. A backend reset can
therefore wait for and free the vhost_net_ubuf_ref while another cloned
skb still carries the same ubuf_info. A later completion then
dereferences the freed ubufs pointer.
KASAN reports the stale completion as:
BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x1d7/0x1f0
BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x101/0x1f0
vhost_zerocopy_complete
skb_copy_ubufs
__dev_forward_skb2
veth_xmit
The freed object was allocated from vhost_net_ioctl() while setting the
backend and freed through kfree_rcu()/kvfree_rcu_bulk after backend
removal, while delayed skb completion still reached
vhost_zerocopy_complete().
Honor the generic ubuf_info refcount before touching vhost state, and run
the vhost descriptor completion only for the final ubuf reference. This
matches the msg_zerocopy_complete() ownership rule for cloned zerocopy
skbs.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bab632d69ee48a106e779b60cc01adfe80a72807 Version: bab632d69ee48a106e779b60cc01adfe80a72807 Version: bab632d69ee48a106e779b60cc01adfe80a72807 Version: bab632d69ee48a106e779b60cc01adfe80a72807 Version: bab632d69ee48a106e779b60cc01adfe80a72807 Version: bab632d69ee48a106e779b60cc01adfe80a72807 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74310",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:52:56.702664Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:32.036Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vhost/net.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ea71f873423fb73e66ad88936d6759ac0ad4aa53",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
},
{
"lessThan": "6445b945024f4c7675ae5352b2d5885cb1deea71",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
},
{
"lessThan": "a9f8a1d2e3ff511eafd4c5462481950c2f4d2b5d",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
},
{
"lessThan": "321c73baf54d971ce3771fea275c98a247f7ee35",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
},
{
"lessThan": "c069437924663539a93a1e5afe90838d9ccee284",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
},
{
"lessThan": "8f6898fe80794f2d7c3d38c1158c806e4074a1c4",
"status": "affected",
"version": "bab632d69ee48a106e779b60cc01adfe80a72807",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vhost/net.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.1"
},
{
"lessThan": "3.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvhost/net: complete zerocopy ubufs only once\n\nvhost-net initializes one ubuf_info per outstanding zerocopy TX\ndescriptor and hands it to the backend socket. The networking stack may\nthen clone a zerocopy skb before all skb references are released. For\nexample, batman-adv fragmentation reaches skb_split(), which calls\nskb_zerocopy_clone() and increments the same ubuf_info refcount.\n\nvhost_zerocopy_complete() currently treats every ubuf callback as a\ncompleted vhost descriptor. It dereferences ubuf-\u003ectx, writes the\ndescriptor completion state, and drops the vhost_net_ubuf_ref even when\nthe callback only releases a cloned skb reference. A backend reset can\ntherefore wait for and free the vhost_net_ubuf_ref while another cloned\nskb still carries the same ubuf_info. A later completion then\ndereferences the freed ubufs pointer.\n\nKASAN reports the stale completion as:\n\n BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x1d7/0x1f0\n BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x101/0x1f0\n vhost_zerocopy_complete\n skb_copy_ubufs\n __dev_forward_skb2\n veth_xmit\n\nThe freed object was allocated from vhost_net_ioctl() while setting the\nbackend and freed through kfree_rcu()/kvfree_rcu_bulk after backend\nremoval, while delayed skb completion still reached\nvhost_zerocopy_complete().\n\nHonor the generic ubuf_info refcount before touching vhost state, and run\nthe vhost descriptor completion only for the final ubuf reference. This\nmatches the msg_zerocopy_complete() ownership rule for cloned zerocopy\nskbs."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is only reachable on the vhost-net TX zerocopy path via /dev/vhost-net ioctls or virtio-net TX descriptors handled by the host vhost worker; remote wire packets do not carry vhost ubuf_info state, so no network-facing host protocol reaches vhost_zerocopy_complete().\nAC:L - Once experimental_zcopytx is enabled, an attacker can reliably send \u003e=256-byte zerocopy TX frames through a tap/veth backend so skb_zerocopy_clone/skb_copy_ubufs fires, then force backend teardown via VHOST_NET_SET_BACKEND or VM stop/migration while cloned completions remain pending.\nPR:N - A malicious KVM guest on a host using vhost-net needs no host root, capabilities, or /dev/vhost-net access\u2014only control of virtio TX descriptors and normal VM networking; a host-side attacker can also open /dev/vhost-net with only device-node permissions because drivers/vhost performs no capable() checks.\nUI:N - No victim user interaction is required beyond standard VM or vhost-net operation; the attacker directly drives virtio TX traffic, optional veth forwarding that clones zerocopy skbs, and backend reset/teardown that frees vhost_net_ubuf_ref while stale ubuf completions are still outstanding.\nS:C - In the standard KVM deployment, vhost-net is host-kernel code enforcing the guest NIC boundary; the slab use-after-free in vhost_zerocopy_complete executes in host context from guest-supplied zerocopy TX, corrupting host vhost/virtqueue state outside the guest security authority.\nC:H - This is a slab use-after-free: after premature completion frees vhost_net_ubuf_ref, a later skb_zcopy_clear callback dereferences freed ubuf-\u003ectx/ubufs memory in vhost_zerocopy_complete, giving attacker-influenced UAF primitives suitable for arbitrary kernel memory disclosure.\nI:H - The stale completion writes vq-\u003eheads[ubuf-\u003edesc].len and decrements vhost_net_ubuf_ref on freed structures; UAF heap corruption of this class is leveragable into arbitrary write and host control-flow hijacking, including potential VM-to-host privilege escalation.\nA:H - KASAN reports slab-use-after-free in vhost_zerocopy_complete during skb_copy_ubufs/veth_xmit completion; this readily causes host kernel oops or panic and can be retriggered from a virtio guest TX loop or repeated backend resets until the host or hypervisor is unavailable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:42.723Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ea71f873423fb73e66ad88936d6759ac0ad4aa53"
},
{
"url": "https://git.kernel.org/stable/c/6445b945024f4c7675ae5352b2d5885cb1deea71"
},
{
"url": "https://git.kernel.org/stable/c/a9f8a1d2e3ff511eafd4c5462481950c2f4d2b5d"
},
{
"url": "https://git.kernel.org/stable/c/321c73baf54d971ce3771fea275c98a247f7ee35"
},
{
"url": "https://git.kernel.org/stable/c/c069437924663539a93a1e5afe90838d9ccee284"
},
{
"url": "https://git.kernel.org/stable/c/8f6898fe80794f2d7c3d38c1158c806e4074a1c4"
}
],
"title": "vhost/net: complete zerocopy ubufs only once",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74310",
"datePublished": "2026-08-15T05:58:10.043Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-10-16T18:55:32.036Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2024-26730 (GCVE-0-2024-26730)
Vulnerability from cvelistv5
Published
2024-04-03 17:00
Modified
2026-08-19 16:27
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (nct6775) Fix access to temperature configuration registers
The number of temperature configuration registers does
not always match the total number of temperature registers.
This can result in access errors reported if KASAN is enabled.
BUG: KASAN: global-out-of-bounds in nct6775_probe+0x5654/0x6fe9 nct6775_core
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T00:14:12.970Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/f006c45a3ea424f8f6c8e4b9283bc245ce2a4d0f"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/c196387820c9214c5ceaff56d77303c82514b8b1"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/d56e460e19ea8382f813eb489730248ec8d7eb73"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-26730",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-09-10T15:52:03.714243Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-11T17:33:21.224Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nct6775-core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "745aa03c513f1ba12cb98495467676f7acf3fffd",
"status": "affected",
"version": "4283b0e29d58c6b11e2e45a5afcab401da4e7994",
"versionType": "git"
},
{
"lessThan": "f006c45a3ea424f8f6c8e4b9283bc245ce2a4d0f",
"status": "affected",
"version": "b7f1f7b2523a6a4382f12fe953380b847b80e09d",
"versionType": "git"
},
{
"lessThan": "c196387820c9214c5ceaff56d77303c82514b8b1",
"status": "affected",
"version": "b7f1f7b2523a6a4382f12fe953380b847b80e09d",
"versionType": "git"
},
{
"lessThan": "d56e460e19ea8382f813eb489730248ec8d7eb73",
"status": "affected",
"version": "b7f1f7b2523a6a4382f12fe953380b847b80e09d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/nct6775-core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"lessThan": "6.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"version": "6.7.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.8",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.19",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.7.7",
"versionStartIncluding": "6.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.8",
"versionStartIncluding": "6.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (nct6775) Fix access to temperature configuration registers\n\nThe number of temperature configuration registers does\nnot always match the total number of temperature registers.\nThis can result in access errors reported if KASAN is enabled.\n\nBUG: KASAN: global-out-of-bounds in nct6775_probe+0x5654/0x6fe9 nct6775_core"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is in the nct6775 Super-I/O hardware monitoring driver and is reached only through local driver probe on the LPC/ISA or I2C bus; there is no network, adjacent-network, or physical-access component since the monitoring chip is soldered to the board.\nAC:L - On any system with an NCT6796D-S/NCT6798D/NCT6799D-R Super-I/O chip the mismatched array bound is hit deterministically on every probe, with no race, no memory-layout dependency, and no rare kernel config involved (CONFIG_SENSORS_NCT6775 is shipped as a module by mainstream distributions).\nPR:L - The vulnerable loop is in the probe path, which executes automatically during boot or module load rather than in response to any unprivileged request; a local low-privileged context is the most that can be attributed, and PR:H is not chosen since no attacker action or elevated capability is actually needed for the defect to manifest.\nUI:N - The out-of-bounds access occurs automatically during device probe with no victim action required \u2014 no file must be opened, no filesystem mounted, and no sysfs attribute touched.\nS:U - The out-of-bounds read and the resulting bad register accesses are entirely contained within the kernel\u0027s own security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - This is a genuine out-of-bounds read of kernel memory past the end of NCT6779_REG_TEMP_CONFIG, and the disclosed adjacent .rodata contents propagate into persistent driver state (data-\u003ereg_temp_config[]) where they drive further hardware register reads, so the read is treated as a High confidentiality impact per out-of-bounds-read guidance.\nI:L - The out-of-bounds values are consumed as hardware register addresses and written back via nct6775_write_value(), so the driver modifies unintended Super-I/O monitoring registers; this is real but bounded state modification, not an arbitrary kernel write or control-flow hijack primitive.\nA:H - The defect produces a KASAN global-out-of-bounds report that panics the system under panic_on_warn, and the resulting bit-clearing writes to unintended monitoring registers can misconfigure temperature sensing and fan-control state on the hwmon chip, risking thermal instability on embedded and industrial x86 platforms."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:27:42.828Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/745aa03c513f1ba12cb98495467676f7acf3fffd"
},
{
"url": "https://git.kernel.org/stable/c/f006c45a3ea424f8f6c8e4b9283bc245ce2a4d0f"
},
{
"url": "https://git.kernel.org/stable/c/c196387820c9214c5ceaff56d77303c82514b8b1"
},
{
"url": "https://git.kernel.org/stable/c/d56e460e19ea8382f813eb489730248ec8d7eb73"
}
],
"title": "hwmon: (nct6775) Fix access to temperature configuration registers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-26730",
"datePublished": "2024-04-03T17:00:18.186Z",
"dateReserved": "2024-02-19T14:20:24.164Z",
"dateUpdated": "2026-08-19T16:27:42.828Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74261 (GCVE-0-2026-74261)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: seq: avoid stale FIFO cells during resize
snd_seq_fifo_resize() still needs to publish the replacement pool
before it waits for FIFO users. A blocking snd_seq_read() holds
f->use_lock while it sleeps, so concurrent senders must be able to
queue to the new pool and wake that reader instead of failing against a
closing old pool.
However, snd_seq_fifo_event_in() duplicates an event before it takes
f->lock, and snd_seq_read() can dequeue a cell and later call
snd_seq_fifo_cell_putback() if copy_to_user() or
snd_seq_expand_var_event() fails. If resize swaps f->pool and detaches
oldhead in between, either path can relink an old-pool cell after the
snapshot. That stale cell sits outside the drained oldhead list, keeps
oldpool->counter elevated, and can leave snd_seq_pool_delete() waiting
for the retired pool to drain.
Keep the existing swap-before-wait ordering in snd_seq_fifo_resize(),
but reject stale cells before any FIFO relink. Revalidate event-in cells
under f->lock and retry them against the published replacement pool, and
free stale putback cells instead of linking them back into the FIFO.
The buggy scenario involves two paths, with each column showing the
order within that path:
resize path: relink path:
1. Allocate newpool. 1. Take f->use_lock.
2. Swap f->pool to newpool and 2. Duplicate or dequeue an old-pool
detach oldhead. cell before oldpool closes.
3. Mark oldpool closing and 3. Reach a later relink point after
wait for FIFO users. resize published newpool.
4. Free oldhead and delete 4. Relink the old-pool cell after
oldpool. resize detached oldhead.
5. Drop f->use_lock.
The reproducer reports a resize ioctl blocked in the expected pool
teardown path:
signal: resize iteration=98 target_pool=4 exceeded 250ms
(elapsed=251ms)
diagnostic: resize_tid=651 wchan=snd_seq_pool_done
diagnostic: resize_tid=651 stack=
snd_seq_pool_done+0x5b/0x140
snd_seq_pool_delete+0x7a/0x90
snd_seq_fifo_resize+0x193/0x1e0
snd_seq_ioctl_set_client_pool+0x214/0x260
snd_seq_ioctl+0x119/0x540
__x64_sys_ioctl+0xd1/0x120
do_syscall_64+0xbb/0x2f0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
A second run with larger pools hit the same target path:
signal: resize iteration=32 target_pool=64 exceeded 250ms
(elapsed=251ms)
diagnostic: resize_tid=663 wchan=snd_seq_pool_done
diagnostic: resize_tid=663 stack=
snd_seq_pool_done+0x5b/0x140
snd_seq_pool_delete+0x7a/0x90
snd_seq_fifo_resize+0x193/0x1e0
snd_seq_ioctl_set_client_pool+0x214/0x260
snd_seq_ioctl+0x119/0x540
__x64_sys_ioctl+0xd1/0x120
do_syscall_64+0xbb/0x2f0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2d7d54002e396c180db0c800c1046f0a3c471597 Version: 2d7d54002e396c180db0c800c1046f0a3c471597 Version: 2d7d54002e396c180db0c800c1046f0a3c471597 Version: 2d7d54002e396c180db0c800c1046f0a3c471597 Version: 2d7d54002e396c180db0c800c1046f0a3c471597 Version: df7a2d0af9f7ab73cf22a7b62bbc0bad93a02110 Version: 28e0ebdd57cd3287ac821068364b74c70af3861c Version: d4b8e8a32d74052fe292618ae19f794944ddc673 Version: e91325f27c4d98d1088e9e86b3ab475f752eeb80 Version: 9ebfed203c0d93449a074c5c2fd5bb3e58518f0d Version: 3492352e1f34673708fa7409b4b1d97545aa2f1c Version: a90d7447e4a154ad26e3b9e09a0878680be49339 Version: 74a2c1ff88a4e0960623d17f7db56ac5a60bb0cf Version: c36ef6467420f8982e6d4d6f93d0634a85a5ee45 Version: 3.2.91 ≤ Version: 3.10.107 ≤ Version: 3.12.73 ≤ Version: 3.16.46 ≤ Version: 3.18.50 ≤ Version: 4.1.40 ≤ Version: 4.4.60 ≤ Version: 4.9.21 ≤ Version: 4.10.9 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/seq/seq_fifo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ae429220c7f9747579bc4682c574585230e971cc",
"status": "affected",
"version": "2d7d54002e396c180db0c800c1046f0a3c471597",
"versionType": "git"
},
{
"lessThan": "dcf784abee6df2f5c47e36a1d9e400065993bc04",
"status": "affected",
"version": "2d7d54002e396c180db0c800c1046f0a3c471597",
"versionType": "git"
},
{
"lessThan": "98a965cb1e767b54b6bbd831b6cea26f521a8f51",
"status": "affected",
"version": "2d7d54002e396c180db0c800c1046f0a3c471597",
"versionType": "git"
},
{
"lessThan": "1c4c35fb68d520241f7d9f1c356b5e2370fd8364",
"status": "affected",
"version": "2d7d54002e396c180db0c800c1046f0a3c471597",
"versionType": "git"
},
{
"lessThan": "e546128291f8d688dcb931827e2efd2aa6c0734d",
"status": "affected",
"version": "2d7d54002e396c180db0c800c1046f0a3c471597",
"versionType": "git"
},
{
"status": "affected",
"version": "df7a2d0af9f7ab73cf22a7b62bbc0bad93a02110",
"versionType": "git"
},
{
"status": "affected",
"version": "28e0ebdd57cd3287ac821068364b74c70af3861c",
"versionType": "git"
},
{
"status": "affected",
"version": "d4b8e8a32d74052fe292618ae19f794944ddc673",
"versionType": "git"
},
{
"status": "affected",
"version": "e91325f27c4d98d1088e9e86b3ab475f752eeb80",
"versionType": "git"
},
{
"status": "affected",
"version": "9ebfed203c0d93449a074c5c2fd5bb3e58518f0d",
"versionType": "git"
},
{
"status": "affected",
"version": "3492352e1f34673708fa7409b4b1d97545aa2f1c",
"versionType": "git"
},
{
"status": "affected",
"version": "a90d7447e4a154ad26e3b9e09a0878680be49339",
"versionType": "git"
},
{
"status": "affected",
"version": "74a2c1ff88a4e0960623d17f7db56ac5a60bb0cf",
"versionType": "git"
},
{
"status": "affected",
"version": "c36ef6467420f8982e6d4d6f93d0634a85a5ee45",
"versionType": "git"
},
{
"lessThan": "3.3",
"status": "affected",
"version": "3.2.91",
"versionType": "semver"
},
{
"lessThan": "3.11",
"status": "affected",
"version": "3.10.107",
"versionType": "semver"
},
{
"lessThan": "3.13",
"status": "affected",
"version": "3.12.73",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.46",
"versionType": "semver"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.50",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.40",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.60",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.21",
"versionType": "semver"
},
{
"lessThan": "4.11",
"status": "affected",
"version": "4.10.9",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/seq/seq_fifo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2.91",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.10.107",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.12.73",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.46",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.50",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.40",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.60",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.21",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.10.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: seq: avoid stale FIFO cells during resize\n\nsnd_seq_fifo_resize() still needs to publish the replacement pool\nbefore it waits for FIFO users. A blocking snd_seq_read() holds\nf-\u003euse_lock while it sleeps, so concurrent senders must be able to\nqueue to the new pool and wake that reader instead of failing against a\nclosing old pool.\n\nHowever, snd_seq_fifo_event_in() duplicates an event before it takes\nf-\u003elock, and snd_seq_read() can dequeue a cell and later call\nsnd_seq_fifo_cell_putback() if copy_to_user() or\nsnd_seq_expand_var_event() fails. If resize swaps f-\u003epool and detaches\noldhead in between, either path can relink an old-pool cell after the\nsnapshot. That stale cell sits outside the drained oldhead list, keeps\noldpool-\u003ecounter elevated, and can leave snd_seq_pool_delete() waiting\nfor the retired pool to drain.\n\nKeep the existing swap-before-wait ordering in snd_seq_fifo_resize(),\nbut reject stale cells before any FIFO relink. Revalidate event-in cells\nunder f-\u003elock and retry them against the published replacement pool, and\nfree stale putback cells instead of linking them back into the FIFO.\n\nThe buggy scenario involves two paths, with each column showing the\norder within that path:\n\nresize path: relink path:\n1. Allocate newpool. 1. Take f-\u003euse_lock.\n2. Swap f-\u003epool to newpool and 2. Duplicate or dequeue an old-pool\n detach oldhead. cell before oldpool closes.\n3. Mark oldpool closing and 3. Reach a later relink point after\n wait for FIFO users. resize published newpool.\n4. Free oldhead and delete 4. Relink the old-pool cell after\n oldpool. resize detached oldhead.\n 5. Drop f-\u003euse_lock.\n\nThe reproducer reports a resize ioctl blocked in the expected pool\nteardown path:\n\nsignal: resize iteration=98 target_pool=4 exceeded 250ms\n (elapsed=251ms)\ndiagnostic: resize_tid=651 wchan=snd_seq_pool_done\ndiagnostic: resize_tid=651 stack=\n snd_seq_pool_done+0x5b/0x140\n snd_seq_pool_delete+0x7a/0x90\n snd_seq_fifo_resize+0x193/0x1e0\n snd_seq_ioctl_set_client_pool+0x214/0x260\n snd_seq_ioctl+0x119/0x540\n __x64_sys_ioctl+0xd1/0x120\n do_syscall_64+0xbb/0x2f0\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nA second run with larger pools hit the same target path:\n\nsignal: resize iteration=32 target_pool=64 exceeded 250ms\n (elapsed=251ms)\ndiagnostic: resize_tid=663 wchan=snd_seq_pool_done\ndiagnostic: resize_tid=663 stack=\n snd_seq_pool_done+0x5b/0x140\n snd_seq_pool_delete+0x7a/0x90\n snd_seq_fifo_resize+0x193/0x1e0\n snd_seq_ioctl_set_client_pool+0x214/0x260\n snd_seq_ioctl+0x119/0x540\n __x64_sys_ioctl+0xd1/0x120\n do_syscall_64+0xbb/0x2f0\n entry_SYSCALL_64_after_hwframe+0x77/0x7f"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:10.790Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ae429220c7f9747579bc4682c574585230e971cc"
},
{
"url": "https://git.kernel.org/stable/c/dcf784abee6df2f5c47e36a1d9e400065993bc04"
},
{
"url": "https://git.kernel.org/stable/c/98a965cb1e767b54b6bbd831b6cea26f521a8f51"
},
{
"url": "https://git.kernel.org/stable/c/1c4c35fb68d520241f7d9f1c356b5e2370fd8364"
},
{
"url": "https://git.kernel.org/stable/c/e546128291f8d688dcb931827e2efd2aa6c0734d"
}
],
"title": "ALSA: seq: avoid stale FIFO cells during resize",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74261",
"datePublished": "2026-08-15T05:57:38.311Z",
"dateReserved": "2026-08-15T05:44:03.877Z",
"dateUpdated": "2026-10-21T12:45:10.790Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97934 (GCVE-0-2026-97934)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-21 12:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix memory corruption from a "STACKTRACE" histogram key
"cpu", "CPU", "stacktrace" and "STACKTRACE" are generic fields, defined
with an offset and a size of zero so that the filter code can match them
by name. parse_field() maps them onto their common_* equivalents for
backward compatibility, but unlike the common_* names it hands the
placeholder back to the caller instead of NULL.
create_hist_field() takes a non-NULL field as a promise that the record
carries a stacktrace and picks HIST_FIELD_FN_STACK, so the __data_loc
word is read from offset 0, that is from common_type, and its low 16
bits are followed as an offset into the record. What is found there
becomes the length of an unbounded memcpy. Pick an event whose id is
small enough that the offset stays inside its own record and the length
is a kernel text address:
# cd /sys/kernel/tracing
# echo 'hist:keys=STACKTRACE' > events/ftrace/print/trigger
# echo hello > trace_marker
Oops: general protection fault, probably for non-canonical address
RIP: 0010:rb_next+0x23/0x60
</IRQ>
RIP: 0010:memcpy+0xc/0x30
event_hist_trigger+0x2e7/0x12c0
Kernel panic - not syncing: Fatal exception in interrupt
Leave the field NULL, which is what the comment above the branch says
the code does and what common_stacktrace already does. FILTER_CPU and
FILTER_COMM are left alone, their create_hist_field() branches never
look at the field.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events_hist.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c94985e4fd77eb8634f44fb42e551563c68c55b3",
"status": "affected",
"version": "4b512860bdbdddcf41467ebd394f27cb8dfb528c",
"versionType": "git"
},
{
"lessThan": "b6cc6ec5f032ea6fd5cce94fb83baab4d1c02e33",
"status": "affected",
"version": "4b512860bdbdddcf41467ebd394f27cb8dfb528c",
"versionType": "git"
},
{
"lessThan": "9e026a91fe79966e2baabd4345c6e3a26975c729",
"status": "affected",
"version": "4b512860bdbdddcf41467ebd394f27cb8dfb528c",
"versionType": "git"
},
{
"lessThan": "c27f8b68c05808bb4f2bcde0e6d1c954a4b65f8a",
"status": "affected",
"version": "4b512860bdbdddcf41467ebd394f27cb8dfb528c",
"versionType": "git"
},
{
"lessThan": "7f711e62355bb3123a2ca2f97a2facbfebc678c6",
"status": "affected",
"version": "4b512860bdbdddcf41467ebd394f27cb8dfb528c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_events_hist.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.4"
},
{
"lessThan": "6.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix memory corruption from a \"STACKTRACE\" histogram key\n\n\"cpu\", \"CPU\", \"stacktrace\" and \"STACKTRACE\" are generic fields, defined\nwith an offset and a size of zero so that the filter code can match them\nby name. parse_field() maps them onto their common_* equivalents for\nbackward compatibility, but unlike the common_* names it hands the\nplaceholder back to the caller instead of NULL.\n\ncreate_hist_field() takes a non-NULL field as a promise that the record\ncarries a stacktrace and picks HIST_FIELD_FN_STACK, so the __data_loc\nword is read from offset 0, that is from common_type, and its low 16\nbits are followed as an offset into the record. What is found there\nbecomes the length of an unbounded memcpy. Pick an event whose id is\nsmall enough that the offset stays inside its own record and the length\nis a kernel text address:\n\n # cd /sys/kernel/tracing\n # echo \u0027hist:keys=STACKTRACE\u0027 \u003e events/ftrace/print/trigger\n # echo hello \u003e trace_marker\n\n Oops: general protection fault, probably for non-canonical address\n RIP: 0010:rb_next+0x23/0x60\n \u003c/IRQ\u003e\n RIP: 0010:memcpy+0xc/0x30\n event_hist_trigger+0x2e7/0x12c0\n Kernel panic - not syncing: Fatal exception in interrupt\n\nLeave the field NULL, which is what the comment above the branch says\nthe code does and what common_stacktrace already does. FILTER_CPU and\nFILTER_COMM are left alone, their create_hist_field() branches never\nlook at the field."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:53:43.241Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c94985e4fd77eb8634f44fb42e551563c68c55b3"
},
{
"url": "https://git.kernel.org/stable/c/b6cc6ec5f032ea6fd5cce94fb83baab4d1c02e33"
},
{
"url": "https://git.kernel.org/stable/c/9e026a91fe79966e2baabd4345c6e3a26975c729"
},
{
"url": "https://git.kernel.org/stable/c/c27f8b68c05808bb4f2bcde0e6d1c954a4b65f8a"
},
{
"url": "https://git.kernel.org/stable/c/7f711e62355bb3123a2ca2f97a2facbfebc678c6"
}
],
"title": "tracing: Fix memory corruption from a \"STACKTRACE\" histogram key",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97934",
"datePublished": "2026-09-25T10:22:49.212Z",
"dateReserved": "2026-09-25T10:18:58.203Z",
"dateUpdated": "2026-10-21T12:53:43.241Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74388 (GCVE-0-2026-74388)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-10-21 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data
The OSS sequencer processes the input MIDI bytes into a sequencer
event to be dispatched later (in snd_seq_oss_midi_putc() called from
snd_seq_oss_process_event()). When it's a SysEx data, the event
record contains data.ext.ptr pointer to the original SysEx bytes, and
the referred data is copied into the pool afterwards at dispatching.
The problem is that, if the sequencer port gets closed concurrently
before the dispatch, the OSS sequencer core also releases the
resources (in snd_seq_oss_midi_check_exit_port()), while the pending
event may hold a stale pointer, eventually leading to a UAF at a later
dispatch.
Fortunately, there is already a refcounting mechanism (snd_use_lock_t)
for the OSS MIDI device access, and for addressing the issue above, we
just need to extend the refcount until the event gets dispatched.
This patch extends snd_seq_oss_process_event() to give back the
refcount object, which is in turn released after calling the sequencer
dispatcher with the given event in the caller side.
According to the original report, KASAN report as below:
KASAN slab-use-after-free in snd_seq_event_dup+0x40c/0x470
RIP: 0033:0x7f2cb66a6340
Read of size 6
Call trace:
dump_stack_lvl+0x73/0xb0 (?:?)
print_report+0xd1/0x650 (?:?)
srso_alias_return_thunk+0x5/0xfbef5 (?:?)
__virt_addr_valid+0x1a7/0x340 (?:?)
kasan_complete_mode_report_info+0x64/0x200 (?:?)
kasan_report+0xf7/0x130 (?:?)
snd_seq_event_dup+0x40c/0x470 (?:?)
kasan_check_range+0x10c/0x1c0 (?:?)
__asan_memcpy+0x27/0x70 (?:?)
snd_seq_event_dup+0x9/0x470 (?:?)
snd_seq_client_enqueue_event+0x139/0x240 (?:?)
_raw_spin_unlock_irqrestore+0x4b/0x60 (?:?)
snd_seq_kernel_client_enqueue+0x102/0x120 (?:?)
snd_seq_oss_write+0x416/0x4e0 (?:?)
apparmor_file_permission+0x20/0x30 (?:?)
odev_write+0x3b/0x60 (?:?)
vfs_write+0x1ce/0x850 (?:?)
lock_release+0xc8/0x2a0 (?:?)
__kasan_check_write+0x18/0x20 (?:?)
__mutex_unlock_slowpath+0x129/0x510 (?:?)
ksys_write+0xe1/0x180 (?:?)
mutex_unlock+0x16/0x20 (?:?)
odev_ioctl+0x65/0xc0 (?:?)
__x64_sys_write+0x46/0x60 (?:?)
x64_sys_call+0x7d/0x20d0 (?:?)
do_syscall_64+0xc1/0x360 (arch/x86/entry/syscall_64.c:87)
entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74388",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:11.498813Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:40.548Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/seq/oss/seq_oss_event.c",
"sound/core/seq/oss/seq_oss_event.h",
"sound/core/seq/oss/seq_oss_ioctl.c",
"sound/core/seq/oss/seq_oss_midi.c",
"sound/core/seq/oss/seq_oss_midi.h",
"sound/core/seq/oss/seq_oss_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bc963e193b314f1441082e8b1ffe15eb255d0a44",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e96824274239ae4cd2f7b712644441cdc72c81a3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6dc781778b595be94c31395b2cb167f65145d91f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7aad70cabd8f34cf11a9593fcd3f2ac3f5496943",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7c349b4f2a603202fb8c363bd2774a22ac2fddf3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/seq/oss/seq_oss_event.c",
"sound/core/seq/oss/seq_oss_event.h",
"sound/core/seq/oss/seq_oss_ioctl.c",
"sound/core/seq/oss/seq_oss_midi.c",
"sound/core/seq/oss/seq_oss_midi.h",
"sound/core/seq/oss/seq_oss_rw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: seq: oss: Fix UAF at handling events with embedded SysEx data\n\nThe OSS sequencer processes the input MIDI bytes into a sequencer\nevent to be dispatched later (in snd_seq_oss_midi_putc() called from\nsnd_seq_oss_process_event()). When it\u0027s a SysEx data, the event\nrecord contains data.ext.ptr pointer to the original SysEx bytes, and\nthe referred data is copied into the pool afterwards at dispatching.\nThe problem is that, if the sequencer port gets closed concurrently\nbefore the dispatch, the OSS sequencer core also releases the\nresources (in snd_seq_oss_midi_check_exit_port()), while the pending\nevent may hold a stale pointer, eventually leading to a UAF at a later\ndispatch.\n\nFortunately, there is already a refcounting mechanism (snd_use_lock_t)\nfor the OSS MIDI device access, and for addressing the issue above, we\njust need to extend the refcount until the event gets dispatched.\n\nThis patch extends snd_seq_oss_process_event() to give back the\nrefcount object, which is in turn released after calling the sequencer\ndispatcher with the given event in the caller side.\n\nAccording to the original report, KASAN report as below:\n\nKASAN slab-use-after-free in snd_seq_event_dup+0x40c/0x470\nRIP: 0033:0x7f2cb66a6340\nRead of size 6\nCall trace:\n dump_stack_lvl+0x73/0xb0 (?:?)\n print_report+0xd1/0x650 (?:?)\n srso_alias_return_thunk+0x5/0xfbef5 (?:?)\n __virt_addr_valid+0x1a7/0x340 (?:?)\n kasan_complete_mode_report_info+0x64/0x200 (?:?)\n kasan_report+0xf7/0x130 (?:?)\n snd_seq_event_dup+0x40c/0x470 (?:?)\n kasan_check_range+0x10c/0x1c0 (?:?)\n __asan_memcpy+0x27/0x70 (?:?)\n snd_seq_event_dup+0x9/0x470 (?:?)\n snd_seq_client_enqueue_event+0x139/0x240 (?:?)\n _raw_spin_unlock_irqrestore+0x4b/0x60 (?:?)\n snd_seq_kernel_client_enqueue+0x102/0x120 (?:?)\n snd_seq_oss_write+0x416/0x4e0 (?:?)\n apparmor_file_permission+0x20/0x30 (?:?)\n odev_write+0x3b/0x60 (?:?)\n vfs_write+0x1ce/0x850 (?:?)\n lock_release+0xc8/0x2a0 (?:?)\n __kasan_check_write+0x18/0x20 (?:?)\n __mutex_unlock_slowpath+0x129/0x510 (?:?)\n ksys_write+0xe1/0x180 (?:?)\n mutex_unlock+0x16/0x20 (?:?)\n odev_ioctl+0x65/0xc0 (?:?)\n __x64_sys_write+0x46/0x60 (?:?)\n x64_sys_call+0x7d/0x20d0 (?:?)\n do_syscall_64+0xc1/0x360 (arch/x86/entry/syscall_64.c:87)\n entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only via local OSS sequencer character devices (/dev/sequencer, /dev/music) through write(2) or SNDCTL_SEQ_OUTOFBAND ioctl into snd_seq_oss_write(); there is no network, Bluetooth, or physical-device input path to this OSS sequencer code.\nAC:L - The attacker controls both sides of the race: one thread streams SysEx MIDI bytes (SEQ_MIDIPUTC) while another concurrently deletes the backing ALSA sequencer port via /dev/snd/seq or triggers PORT_EXIT teardown, and the window is freely repeatable.\nPR:L - Exploitation requires only a local unprivileged account with access to OSS sequencer and ALSA sequencer device nodes, routinely granted via the audio group or seat ACLs on desktop, studio, and kiosk systems; no capability or init-namespace root is checked on this path.\nUI:N - The attacker\u0027s own process(es) perform the SysEx write and concurrent port-close/delete sequence; no separate victim action such as opening files, mounting filesystems, or plugging in hardware is required beyond the attacker\u0027s own device access.\nS:U - The use-after-free corrupts kernel heap memory within the same kernel security authority, enabling local privilege escalation or denial of service, but does not cross a VM, IOMMU, or sandbox security boundary.\nC:H - This is a slab use-after-free where snd_seq_event_dup() memcpy-reads from a freed MIDI coder buffer (KASAN: read of size 6); UAF on kernel heap objects enables controlled reuse and arbitrary kernel memory disclosure via heap grooming.\nI:H - Freed seq_oss_midi/coder objects can be reallocated and corrupted through continued SysEx traffic, providing standard kernel heap overwrite primitives that can be leveraged for arbitrary write and local privilege escalation.\nA:H - The UAF is observed as a KASAN slab-use-after-free during event enqueue and reliably causes kernel oops or panic on the vulnerable path; even without full exploitation, triggering the bug causes high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:36.081Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bc963e193b314f1441082e8b1ffe15eb255d0a44"
},
{
"url": "https://git.kernel.org/stable/c/e96824274239ae4cd2f7b712644441cdc72c81a3"
},
{
"url": "https://git.kernel.org/stable/c/6dc781778b595be94c31395b2cb167f65145d91f"
},
{
"url": "https://git.kernel.org/stable/c/7aad70cabd8f34cf11a9593fcd3f2ac3f5496943"
},
{
"url": "https://git.kernel.org/stable/c/7c349b4f2a603202fb8c363bd2774a22ac2fddf3"
}
],
"title": "ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74388",
"datePublished": "2026-08-15T05:59:03.147Z",
"dateReserved": "2026-08-15T05:44:03.891Z",
"dateUpdated": "2026-10-21T12:45:36.081Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74726 (GCVE-0-2026-74726)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-16 19:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bonding: alb: re-check primary_is_promisc under RTNL in bond_alb_monitor
bond_alb_monitor() reads primary_is_promisc under RCU, then drops RCU and
takes RTNL via rtnl_trylock() before undoing the promiscuity it set on the
active slave. In that window the active slave can change under RTNL
(RTM_DELLINK -> __bond_release_one() -> bond_alb_handle_active_change()),
which already drops the promiscuity and clears primary_is_promisc. The
monitor still acts on the stale decision: if the slave was removed with no
failover, curr_active_slave is now NULL and the deref faults; if it failed
over, the stale dev_set_promiscuity(-1) underflows the new slave's
promiscuity counter and pins it in IFF_PROMISC.
Oops: general protection fault, probably for non-canonical address ...
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
Workqueue: b42 bond_alb_monitor
RIP: 0010:bond_alb_monitor (drivers/net/bonding/bond_alb.c:1600)
process_one_work (kernel/workqueue.c:3322)
worker_thread (kernel/workqueue.c:3486)
kthread (kernel/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
Kernel panic - not syncing: Fatal exception
Re-check primary_is_promisc (and curr_active_slave) after taking RTNL so
the monitor only undoes an increment it still owns. The other bonding
monitors already re-read state under RTNL in their commit phase
(bond_miimon_commit/bond_ab_arp_commit); bond_alb_monitor() was the only
one acting on the pre-trylock decision.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 Version: d0e81b7e2246a41d068ecaf15aac9de570816d63 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74726",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:46.761836Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:12.256Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/bonding/bond_alb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f7668762bf5fd6db9397de5c0514407489d9d815",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "09add8d5cfa9c46828f51eaad162c36e86366b71",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "b82f51681a7a88c7d3c865e817a3340d42b5fa2a",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "dd148539fb4741d01c06b7d2c8bd84b01920756c",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "dccec0227ed8d9e36936d66e256b957dc2858468",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "2faf75a8a06504071b4c0aea7e45a9cc49a4e187",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "257c4a3a34d8f51efb00f35375a0c6ce3c8f6ce2",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
},
{
"lessThan": "683c6ba6e58e6ed1037831ea97dd58d9c0e76b8d",
"status": "affected",
"version": "d0e81b7e2246a41d068ecaf15aac9de570816d63",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/bonding/bond_alb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.24"
},
{
"lessThan": "2.6.24",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.24",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbonding: alb: re-check primary_is_promisc under RTNL in bond_alb_monitor\n\nbond_alb_monitor() reads primary_is_promisc under RCU, then drops RCU and\ntakes RTNL via rtnl_trylock() before undoing the promiscuity it set on the\nactive slave. In that window the active slave can change under RTNL\n(RTM_DELLINK -\u003e __bond_release_one() -\u003e bond_alb_handle_active_change()),\nwhich already drops the promiscuity and clears primary_is_promisc. The\nmonitor still acts on the stale decision: if the slave was removed with no\nfailover, curr_active_slave is now NULL and the deref faults; if it failed\nover, the stale dev_set_promiscuity(-1) underflows the new slave\u0027s\npromiscuity counter and pins it in IFF_PROMISC.\n\n Oops: general protection fault, probably for non-canonical address ...\n KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]\n Workqueue: b42 bond_alb_monitor\n RIP: 0010:bond_alb_monitor (drivers/net/bonding/bond_alb.c:1600)\n process_one_work (kernel/workqueue.c:3322)\n worker_thread (kernel/workqueue.c:3486)\n kthread (kernel/kthread.c:436)\n ret_from_fork (arch/x86/kernel/process.c:158)\n Kernel panic - not syncing: Fatal exception\n\nRe-check primary_is_promisc (and curr_active_slave) after taking RTNL so\nthe monitor only undoes an increment it still owns. The other bonding\nmonitors already re-read state under RTNL in their commit phase\n(bond_miimon_commit/bond_ab_arp_commit); bond_alb_monitor() was the only\none acting on the pre-trylock decision."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.3,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local RTNL netlink (RTM_DELLINK) or bonding ioctl (SIOCBONDRELEASE) to remove/reconfigure slaves while bond_alb_monitor runs; the bug is in a delayed workqueue, not in packet receive or any remote network protocol path.\nAC:L - An attacker with CAP_NET_ADMIN controls both race sides\u2014timing slave removal/failover against the periodic ALB monitor after primary_is_promisc is set\u2014and can retry rapidly when rtnl_trylock fails, making NULL deref or promiscuity-counter underflow reliably winnable.\nPR:L - Triggering ALB bond setup and slave release requires CAP_NET_ADMIN, which unprivileged users can obtain inside a user+network namespace (unshare -Urn), enabling host-wide kernel panic without init-namespace root on typical distributions.\nUI:N - No victim interaction is required; the attacker programmatically creates an ALB bond, drives primary_is_promisc via slave disable/removal, and races bond_alb_monitor without any other user or administrator action.\nS:U - Impact is confined to kernel networking state and causes host kernel panic or netdev promiscuity corruption; it does not cross VM, container, or IOMMU security boundaries into another security authority.\nC:H - Beyond the NULL-deref crash path, the failover race underflows dev-\u003epromiscuity and permanently pins IFF_PROMISC on the new active slave, enabling sustained capture of all traffic on that bonded interface/segment\u2014a broad confidentiality impact on server/cloud HA deployments.\nI:L - The stale dev_set_promiscuity(-1) corrupts the netdev promiscuity counter (unsigned underflow to a huge value), improperly modifying kernel network device state even though it does not provide arbitrary memory write or code-execution primitives.\nA:H - If the active slave is removed without failover, the monitor dereferences a NULL curr_active_slave and panics the kernel, as confirmed by KASAN null-ptr-deref and \"Kernel panic - not syncing: Fatal exception\" in the fix commit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:42:07.173Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f7668762bf5fd6db9397de5c0514407489d9d815"
},
{
"url": "https://git.kernel.org/stable/c/09add8d5cfa9c46828f51eaad162c36e86366b71"
},
{
"url": "https://git.kernel.org/stable/c/b82f51681a7a88c7d3c865e817a3340d42b5fa2a"
},
{
"url": "https://git.kernel.org/stable/c/dd148539fb4741d01c06b7d2c8bd84b01920756c"
},
{
"url": "https://git.kernel.org/stable/c/dccec0227ed8d9e36936d66e256b957dc2858468"
},
{
"url": "https://git.kernel.org/stable/c/2faf75a8a06504071b4c0aea7e45a9cc49a4e187"
},
{
"url": "https://git.kernel.org/stable/c/257c4a3a34d8f51efb00f35375a0c6ce3c8f6ce2"
},
{
"url": "https://git.kernel.org/stable/c/683c6ba6e58e6ed1037831ea97dd58d9c0e76b8d"
}
],
"title": "bonding: alb: re-check primary_is_promisc under RTNL in bond_alb_monitor",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74726",
"datePublished": "2026-08-22T15:33:17.128Z",
"dateReserved": "2026-08-15T05:44:03.929Z",
"dateUpdated": "2026-10-16T19:16:12.256Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90430 (GCVE-0-2026-90430)
Vulnerability from cvelistv5
Published
2026-09-17 16:09
Modified
2026-10-19 09:03
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iommu/tegra241-cmdqv: Publish an LVCMDQ only after it is fully initialized
tegra241_vintf_init_lvcmdq() stores the freshly allocated vcmdq pointer to
the vintf->lvcmdqs[] array, before tegra241_vcmdq_alloc_smmu_cmdq() builds
the vcmdq->cmdq. The error ISR dereferences that cmdq, so a latched LVCMDQ
error (e.g. one inherited across a kexec) firing in this window would make
tegra241_vintf0_handle_error() pass the still-zeroed arm_smmu_cmdq down to
__arm_smmu_cmdq_skip_err(), dereferencing NULL queue register pointers.
Drop the store from tegra241_vintf_init_lvcmdq() and publish the vcmdq at
the end of the allocation instead, with an smp_store_release() that pairs
with an smp_load_acquire() in the ISR, which can see a fully built LVCMDQ
or NULL.
The user-owned LVCMDQ allocation moves accordingly, publishing the vcmdq
once tegra241_vcmdq_hw_init_user() succeeds, using a plain store since a
user VINTF's lvcmdqs[] has no lockless reader -- the error ISR only walks
the VINTF0 array.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d5ec248ee1c79354979c23f7f390e856e9535651",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "792f720fc23fe5bd6508d40ed73ae739debd6dcb",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "b4535b403d6bf9bcc24dbd62096711329b9c612c",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
},
{
"lessThan": "cbc41aacd49e695338940196e7084770365e1b68",
"status": "affected",
"version": "918eb5c856f6ce4cf93b4b38e4b5e156905c5943",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/tegra241-cmdqv: Publish an LVCMDQ only after it is fully initialized\n\ntegra241_vintf_init_lvcmdq() stores the freshly allocated vcmdq pointer to\nthe vintf-\u003elvcmdqs[] array, before tegra241_vcmdq_alloc_smmu_cmdq() builds\nthe vcmdq-\u003ecmdq. The error ISR dereferences that cmdq, so a latched LVCMDQ\nerror (e.g. one inherited across a kexec) firing in this window would make\ntegra241_vintf0_handle_error() pass the still-zeroed arm_smmu_cmdq down to\n__arm_smmu_cmdq_skip_err(), dereferencing NULL queue register pointers.\n\nDrop the store from tegra241_vintf_init_lvcmdq() and publish the vcmdq at\nthe end of the allocation instead, with an smp_store_release() that pairs\nwith an smp_load_acquire() in the ISR, which can see a fully built LVCMDQ\nor NULL.\n\nThe user-owned LVCMDQ allocation moves accordingly, publishing the vcmdq\nonce tegra241_vcmdq_hw_init_user() succeeds, using a plain store since a\nuser VINTF\u0027s lvcmdqs[] has no lockless reader -- the error ISR only walks\nthe VINTF0 array."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:03:33.781Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d5ec248ee1c79354979c23f7f390e856e9535651"
},
{
"url": "https://git.kernel.org/stable/c/792f720fc23fe5bd6508d40ed73ae739debd6dcb"
},
{
"url": "https://git.kernel.org/stable/c/b4535b403d6bf9bcc24dbd62096711329b9c612c"
},
{
"url": "https://git.kernel.org/stable/c/cbc41aacd49e695338940196e7084770365e1b68"
}
],
"title": "iommu/tegra241-cmdqv: Publish an LVCMDQ only after it is fully initialized",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90430",
"datePublished": "2026-09-17T16:09:51.101Z",
"dateReserved": "2026-09-11T19:38:34.815Z",
"dateUpdated": "2026-10-19T09:03:33.781Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64528 (GCVE-0-2026-64528)
Vulnerability from cvelistv5
Published
2026-07-25 09:20
Modified
2026-07-25 09:20
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tty: serial: samsung: Remove redundant port lock acquisition in rx helpers
Sashiko identified a deadlock when the console flow is engaged [1].
When console flow control is enabled (UPF_CONS_FLOW),
s3c24xx_serial_stop_tx() calls s3c24xx_serial_rx_enable() and
s3c24xx_serial_start_tx() calls s3c24xx_serial_rx_disable().
The serial core framework invokes the .stop_tx() and .start_tx()
callbacks with the port->lock spinlock already held. Furthermore, all
internal driver paths that invoke stop_tx (such as the DMA TX
completion handler s3c24xx_serial_tx_dma_complete() or the PIO TX IRQ
handler s3c24xx_serial_tx_irq()) also acquire port->lock prior to
calling it. (Note that s3c24xx_serial_start_tx() is only invoked by the
serial core).
However, s3c24xx_serial_rx_enable() and s3c24xx_serial_rx_disable()
unconditionally attempt to acquire port->lock again using
uart_port_lock_irqsave(). Since spinlocks are not recursive, this
causes a deadlock on the same CPU when console flow control is engaged.
Remove the redundant lock acquisition from both rx helper functions.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 Version: b497549a035c2a81b71c7a27f2b00c8a16c09423 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/samsung_tty.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ee9eb72be95490602c493db050c73d925c3a4d74",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "10014eb7eee351f7b587f8ac85830f0c9343cb9a",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "f4c3e63fa8639aedf96fb200d9939945a9eed51e",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "a9c22e0f93ba18322a6623ecdda2f0cd858ca350",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "14143ec10d69f42806b5d7b046f0fd1b835831ae",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "9fd48937046efc9abb89379d63ee9cc5c661d711",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "9c92b42207978559e32903c3098aaf5c5b5788b2",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
},
{
"lessThan": "a3bb136bff5e6a5e48cdd813246c9c4686feaaa9",
"status": "affected",
"version": "b497549a035c2a81b71c7a27f2b00c8a16c09423",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/samsung_tty.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.27"
},
{
"lessThan": "2.6.27",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.27",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntty: serial: samsung: Remove redundant port lock acquisition in rx helpers\n\nSashiko identified a deadlock when the console flow is engaged [1].\n\nWhen console flow control is enabled (UPF_CONS_FLOW),\ns3c24xx_serial_stop_tx() calls s3c24xx_serial_rx_enable() and\ns3c24xx_serial_start_tx() calls s3c24xx_serial_rx_disable().\n\nThe serial core framework invokes the .stop_tx() and .start_tx()\ncallbacks with the port-\u003elock spinlock already held. Furthermore, all\ninternal driver paths that invoke stop_tx (such as the DMA TX\ncompletion handler s3c24xx_serial_tx_dma_complete() or the PIO TX IRQ\nhandler s3c24xx_serial_tx_irq()) also acquire port-\u003elock prior to\ncalling it. (Note that s3c24xx_serial_start_tx() is only invoked by the\nserial core).\n\nHowever, s3c24xx_serial_rx_enable() and s3c24xx_serial_rx_disable()\nunconditionally attempt to acquire port-\u003elock again using\nuart_port_lock_irqsave(). Since spinlocks are not recursive, this\ncauses a deadlock on the same CPU when console flow control is engaged.\n\nRemove the redundant lock acquisition from both rx helper functions."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-25T09:20:51.774Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ee9eb72be95490602c493db050c73d925c3a4d74"
},
{
"url": "https://git.kernel.org/stable/c/10014eb7eee351f7b587f8ac85830f0c9343cb9a"
},
{
"url": "https://git.kernel.org/stable/c/f4c3e63fa8639aedf96fb200d9939945a9eed51e"
},
{
"url": "https://git.kernel.org/stable/c/a9c22e0f93ba18322a6623ecdda2f0cd858ca350"
},
{
"url": "https://git.kernel.org/stable/c/14143ec10d69f42806b5d7b046f0fd1b835831ae"
},
{
"url": "https://git.kernel.org/stable/c/9fd48937046efc9abb89379d63ee9cc5c661d711"
},
{
"url": "https://git.kernel.org/stable/c/9c92b42207978559e32903c3098aaf5c5b5788b2"
},
{
"url": "https://git.kernel.org/stable/c/a3bb136bff5e6a5e48cdd813246c9c4686feaaa9"
}
],
"title": "tty: serial: samsung: Remove redundant port lock acquisition in rx helpers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64528",
"datePublished": "2026-07-25T09:20:51.774Z",
"dateReserved": "2026-07-19T15:36:31.794Z",
"dateUpdated": "2026-07-25T09:20:51.774Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68273 (GCVE-0-2026-68273)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: Fix context pstate override handling
There are several problems in the context pstate handling code.
The most serious ones are potential use-after-free and NULL pointer
dereferences at context initialization time. Both are due
amdgpu_ctx_init() not holding the adev->pm.stable_pstate_ctx_lock, which
is otherwise used from both sysfs and the context code itself for
modifying and clearing the stored context pointer.
Second issue is that context fini can trample over the pstate
configuration set via sysfs. This is due the restore state
(ctx->stable_pstate) being saved at context init time, and not if, or when
the context actually changes the pstate. As the context exits it will
therefore incorrectly restore to what was set before the sysfs override
was requested.
The simplest fix is to drastically simplify how the state is tracked, by
clearly defining the points at which pstate ownership is taken and
released, and to handle all transitions under the correct lock.
Instead of at context init time, the previous state is saved only at the
point the context overrides the current state, and is restored on context
exit only if the context is still the owner of the current override state.
(cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 Version: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 Version: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 Version: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 Version: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 Version: 6607901fce79959130db485e7549dacaaeef034e Version: 6.0.7 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68273",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:29.006507Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-362",
"description": "CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization (\u0027Race Condition\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:59.089Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3531910845165dcf1a213267199ccc97e03cd58a",
"status": "affected",
"version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
"versionType": "git"
},
{
"lessThan": "23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a",
"status": "affected",
"version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
"versionType": "git"
},
{
"lessThan": "e06c39cc1c48dca68a5ffd971c23025a52d46634",
"status": "affected",
"version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
"versionType": "git"
},
{
"lessThan": "9f9c88eb298c54348be3ca4087f4f4c615065b87",
"status": "affected",
"version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
"versionType": "git"
},
{
"lessThan": "c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351",
"status": "affected",
"version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
"versionType": "git"
},
{
"status": "affected",
"version": "6607901fce79959130db485e7549dacaaeef034e",
"versionType": "git"
},
{
"lessThan": "6.1",
"status": "affected",
"version": "6.0.7",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.0.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: Fix context pstate override handling\n\nThere are several problems in the context pstate handling code.\n\nThe most serious ones are potential use-after-free and NULL pointer\ndereferences at context initialization time. Both are due\namdgpu_ctx_init() not holding the adev-\u003epm.stable_pstate_ctx_lock, which\nis otherwise used from both sysfs and the context code itself for\nmodifying and clearing the stored context pointer.\n\nSecond issue is that context fini can trample over the pstate\nconfiguration set via sysfs. This is due the restore state\n(ctx-\u003estable_pstate) being saved at context init time, and not if, or when\nthe context actually changes the pstate. As the context exits it will\ntherefore incorrectly restore to what was set before the sysfs override\nwas requested.\n\nThe simplest fix is to drastically simplify how the state is tracked, by\nclearly defining the points at which pstate ownership is taken and\nreleased, and to handle all transitions under the correct lock.\n\nInstead of at context init time, the previous state is saved only at the\npoint the context overrides the current state, and is restored on context\nexit only if the context is still the owner of the current override state.\n\n(cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through the DRM_IOCTL_AMDGPU_CTX ioctl on a local /dev/dri/renderD* or card* node (registered DRM_AUTH|DRM_RENDER_ALLOW in amdgpu_drv.c:3063), and the racing writer is the local sysfs power_dpm_force_performance_level path. No network or adjacent-network path reaches amdgpu context pstate handling.\nAC:L - The attacker owns both sides of the race \u2014 one thread loops AMDGPU_CTX_OP_SET_STABLE_PSTATE and context free while another loops AMDGPU_CTX_OP_ALLOC_CTX \u2014 and can retry indefinitely. The dangling-pointer variant (fini re-assigning adev-\u003epm.stable_pstate_ctx = ctx just before kfree) needs no race at all: once latched, every later context creation dereferences freed memory deterministically.\nPR:L - No capability or authorization check exists anywhere on the path (amdgpu_ctx_ioctl -\u003e amdgpu_ctx_alloc/amdgpu_ctx_stable_pstate -\u003e amdgpu_ctx_init); an unprivileged local user only needs an open render node fd, which is routinely granted to desktop users in the render/video group, to containers, sandboxed GPU processes, and to ordinary apps on Android/Chrome OS.\nUI:N - The attacker triggers everything with its own ioctls on its own file descriptors and its own threads; no action by another user or administrator is required, and the crash or freed-object read happens synchronously in the attacker\u0027s own syscall.\nS:U - The corrupted state (adev-\u003epm.stable_pstate_ctx and the freed struct amdgpu_ctx) and all consequences stay within the kernel of the machine running the amdgpu driver; no VM, IOMMU, or sandbox security boundary is crossed.\nC:H - amdgpu_ctx_init() dereferences a stale adev-\u003epm.stable_pstate_ctx pointer after the context has been kfree()d, reading a field out of a freed kmalloc object that the attacker can reclaim and control via heap spraying; per kernel scoring guidance a use-after-free is treated as High since freed-object access can be leveraged toward kernel memory disclosure.\nI:H - The unlocked read/write of the global pstate-owner pointer leaves a dangling kernel pointer in adev-\u003epm.stable_pstate_ctx and lets a freed, attacker-reclaimable object drive amdgpu_dpm_force_performance_level(); the commit also documents context teardown trampling the DPM configuration set through root-only sysfs, so an unprivileged user corrupts privileged device state.\nA:H - The unlocked check-then-use of adev-\u003epm.stable_pstate_ctx yields a NULL pointer dereference when a concurrent fini or sysfs write clears it, and the stale-pointer case faults on freed or unmapped slab memory \u2014 either produces a kernel oops and a wedged GPU, repeatable at will by an unprivileged local user."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:42.336Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3531910845165dcf1a213267199ccc97e03cd58a"
},
{
"url": "https://git.kernel.org/stable/c/23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a"
},
{
"url": "https://git.kernel.org/stable/c/e06c39cc1c48dca68a5ffd971c23025a52d46634"
},
{
"url": "https://git.kernel.org/stable/c/9f9c88eb298c54348be3ca4087f4f4c615065b87"
},
{
"url": "https://git.kernel.org/stable/c/c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351"
}
],
"title": "drm/amdgpu: Fix context pstate override handling",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68273",
"datePublished": "2026-08-10T12:01:48.734Z",
"dateReserved": "2026-07-30T09:28:09.379Z",
"dateUpdated": "2026-10-21T12:43:42.336Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89669 (GCVE-0-2026-89669)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-19 08:50
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: initialize copy-notify stateid before publishing it
nfsd4_copy_notify() finished initializing the cpntf state after
nfs4_alloc_init_cpntf_state() had already linked it into the
s2s_cp_stateids IDR and the parent's sc_cp_list, with cs_count == 1 (the
membership reference) and none held for the caller. A racing
OFFLOAD_CANCEL (crafted cl_id == nn->s2s_cp_cl_id plus the guessable
so_id) could reach manage_cpntf_state() and free the entry, turning the
caller's subsequent cpn_cnr_stateid read and cp_p_stateid/cp_p_clid
writes into use-after-free. The owning clientid was also only recorded
after publication, so it could not gate an ownership check in that window.
Record cp_p_stateid and cp_p_clid inside nfs4_alloc_init_cpntf_state()
before nfs4_init_cp_state() publishes the entry, and return it with an
extra reference. The caller reads the stateid under that reference and
drops it with nfs4_put_cpntf_state(); on a late error the laundromat
reaps the entry.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 Version: 624322f1adc58acd0b69f77a6ddc764207e97241 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c",
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "863b6e995665472f2af5be2436a874ab6a9e5ac6",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "d18d36395d973ef7372c8e6724970585f75b5c0b",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "4415a692346a39fdb647cbd717eda510159aaf55",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "9caad13b7cfe9ccb90cc405ac77335800e086595",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "e08a3dcaca0505f861e344a387f37f94d95dbdc2",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "a4d7fedcaaf33e60a01e53eafca9041ef966212f",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "4cdef96892f4fa6e70c405b6e8f2fd6972f3b64b",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
},
{
"lessThan": "129643893b79f8a3c6b72045f933fbab5ee424ca",
"status": "affected",
"version": "624322f1adc58acd0b69f77a6ddc764207e97241",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c",
"fs/nfsd/nfs4state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: initialize copy-notify stateid before publishing it\n\nnfsd4_copy_notify() finished initializing the cpntf state after\nnfs4_alloc_init_cpntf_state() had already linked it into the\ns2s_cp_stateids IDR and the parent\u0027s sc_cp_list, with cs_count == 1 (the\nmembership reference) and none held for the caller. A racing\nOFFLOAD_CANCEL (crafted cl_id == nn-\u003es2s_cp_cl_id plus the guessable\nso_id) could reach manage_cpntf_state() and free the entry, turning the\ncaller\u0027s subsequent cpn_cnr_stateid read and cp_p_stateid/cp_p_clid\nwrites into use-after-free. The owning clientid was also only recorded\nafter publication, so it could not gate an ownership check in that window.\n\nRecord cp_p_stateid and cp_p_clid inside nfs4_alloc_init_cpntf_state()\nbefore nfs4_init_cp_state() publishes the entry, and return it with an\nextra reference. The caller reads the stateid under that reference and\ndrops it with nfs4_put_cpntf_state(); on a late error the laundromat\nreaps the entry."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is in nfsd COPY_NOTIFY (nfsd4_copy_notify/nfs4_alloc_init_cpntf_state). NFSv4.2 COPY_NOTIFY and a racing OFFLOAD_CANCEL are processed from compounds over TCP/2049 via nfsd4_proc_compound, so a remote NFS client reaches the published cpntf object over the network.\nAC:L - The attacker controls both sides: one compound publishes the cpntf IDR entry via COPY_NOTIFY while a concurrent OFFLOAD_CANCEL uses the leaked nn-\u003es2s_cp_cl_id and a cyclic guessable so_id to kfree it before initialization finishes; the race is retryable on multiple session slots with no condition outside attacker control.\nPR:N - Default AUTH_SYS/AUTH_NULL nfsd exports do no cryptographic authentication; any host allowed by the export ACL can EXCHANGE_ID/CREATE_SESSION, OPEN a readable file, and issue COPY_NOTIFY and OFFLOAD_CANCEL. No local account or capability on the NFS server is required.\nUI:N - The attacking NFS client drives COPY_NOTIFY and the concurrent OFFLOAD_CANCEL on its own connections; no victim user or administrator action on the NFS server is required at attack time.\nS:U - The use-after-free corrupts a kmalloc\u0027d nfs4_cpntf_state in the host kernel\u0027s nfsd copy-notify tables. Impact stays in that kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After OFFLOAD_CANCEL kfree\u0027s the object (cs_count was 1), nfsd4_copy_notify memcpy\u0027s the freed cp_stateid.cs_stid into the RPC reply; reclaim of that kmalloc slab lets the attacker disclose kernel memory. Per kernel guidance a use-after-free is C:H.\nI:H - The same path then writes cp_p_stateid and cp_p_clid into the freed nfs4_cpntf_state, a use-after-free write primitive usable for heap corruption and control-flow hijacking. Per kernel guidance a use-after-free is I:H.\nA:H - Use-after-free of nfs4_cpntf_state in an nfsd worker oopses or panics the NFS server even without full exploitation, and the attacker can repeat the concurrent RPC sequence to deny service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:50:42.637Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/863b6e995665472f2af5be2436a874ab6a9e5ac6"
},
{
"url": "https://git.kernel.org/stable/c/d18d36395d973ef7372c8e6724970585f75b5c0b"
},
{
"url": "https://git.kernel.org/stable/c/4415a692346a39fdb647cbd717eda510159aaf55"
},
{
"url": "https://git.kernel.org/stable/c/9caad13b7cfe9ccb90cc405ac77335800e086595"
},
{
"url": "https://git.kernel.org/stable/c/e08a3dcaca0505f861e344a387f37f94d95dbdc2"
},
{
"url": "https://git.kernel.org/stable/c/a4d7fedcaaf33e60a01e53eafca9041ef966212f"
},
{
"url": "https://git.kernel.org/stable/c/4cdef96892f4fa6e70c405b6e8f2fd6972f3b64b"
},
{
"url": "https://git.kernel.org/stable/c/129643893b79f8a3c6b72045f933fbab5ee424ca"
}
],
"title": "nfsd: initialize copy-notify stateid before publishing it",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89669",
"datePublished": "2026-09-11T19:45:55.111Z",
"dateReserved": "2026-09-11T19:38:34.746Z",
"dateUpdated": "2026-10-19T08:50:42.637Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64594 (GCVE-0-2026-64594)
Vulnerability from cvelistv5
Published
2026-08-06 07:13
Modified
2026-08-17 04:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_fs: initialize reset_work at allocation time
ffs_fs_kill_sb() unconditionally calls cancel_work_sync() on
ffs->reset_work when a functionfs instance is unmounted:
ffs_data_reset(ffs);
cancel_work_sync(&ffs->reset_work);
However ffs->reset_work is only ever initialized via INIT_WORK() in
ffs_func_set_alt() and ffs_func_disable(), and only on the
FFS_DEACTIVATED path. That state is reached solely by ffs_data_closed()
when the instance is mounted with the "no_disconnect" option, so for the
common case (no "no_disconnect", or mounted and unmounted without ever
being deactivated) reset_work is never initialized.
ffs_data_new() allocates the ffs_data with kzalloc_obj() and does not
initialize reset_work, and ffs_data_reset()/ffs_data_clear() do not touch
it either, so reset_work.func is left NULL. cancel_work_sync() on such a
work then trips the WARN_ON(!work->func) guard in __flush_work():
WARNING: kernel/workqueue.c:4301 at __flush_work+0x330/0x360, CPU#3: umount
Call trace:
__flush_work
cancel_work_sync
ffs_fs_kill_sb [usb_f_fs]
deactivate_locked_super
deactivate_super
cleanup_mnt
__cleanup_mnt
task_work_run
exit_to_user_mode_loop
el0_svc
On older kernels cancel_work_sync() on a zero-initialized work struct was
a silent no-op, which hid the missing initialization.
Initialize reset_work once in ffs_data_new() so it is always valid for
the lifetime of the ffs_data, and drop the now-redundant INIT_WORK()
calls from the two deactivation paths.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 Version: 18d6b32fca3841f7cd9479b4024abd8a9b299281 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/function/f_fs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7fe895e0a9651518c4fc082487da770ff9c14c7f",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "cb19e54ebe9baf3c3243083ade65c937339ccb7b",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "d5631081be07f20e764d3cb5c98ac0a1004fba51",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "c36393b0d14e1e9783888f821ffe29381b8f46dc",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "69faa3779250df14f51d5084f938a99809546e52",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "ba1867999dbc4085e6d8c52ac5266005b8b2bf07",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
},
{
"lessThan": "3137b243c93982fe3460335e12f9247739766e10",
"status": "affected",
"version": "18d6b32fca3841f7cd9479b4024abd8a9b299281",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/function/f_fs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.0"
},
{
"lessThan": "4.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: f_fs: initialize reset_work at allocation time\n\nffs_fs_kill_sb() unconditionally calls cancel_work_sync() on\nffs-\u003ereset_work when a functionfs instance is unmounted:\n\n\tffs_data_reset(ffs);\n\tcancel_work_sync(\u0026ffs-\u003ereset_work);\n\nHowever ffs-\u003ereset_work is only ever initialized via INIT_WORK() in\nffs_func_set_alt() and ffs_func_disable(), and only on the\nFFS_DEACTIVATED path. That state is reached solely by ffs_data_closed()\nwhen the instance is mounted with the \"no_disconnect\" option, so for the\ncommon case (no \"no_disconnect\", or mounted and unmounted without ever\nbeing deactivated) reset_work is never initialized.\n\nffs_data_new() allocates the ffs_data with kzalloc_obj() and does not\ninitialize reset_work, and ffs_data_reset()/ffs_data_clear() do not touch\nit either, so reset_work.func is left NULL. cancel_work_sync() on such a\nwork then trips the WARN_ON(!work-\u003efunc) guard in __flush_work():\n\n WARNING: kernel/workqueue.c:4301 at __flush_work+0x330/0x360, CPU#3: umount\n Call trace:\n __flush_work\n cancel_work_sync\n ffs_fs_kill_sb [usb_f_fs]\n deactivate_locked_super\n deactivate_super\n cleanup_mnt\n __cleanup_mnt\n task_work_run\n exit_to_user_mode_loop\n el0_svc\n\nOn older kernels cancel_work_sync() on a zero-initialized work struct was\na silent no-op, which hid the missing initialization.\n\nInitialize reset_work once in ffs_data_new() so it is always valid for\nthe lifetime of the ffs_data, and drop the now-redundant INIT_WORK()\ncalls from the two deactivation paths."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:16.410Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7fe895e0a9651518c4fc082487da770ff9c14c7f"
},
{
"url": "https://git.kernel.org/stable/c/0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7"
},
{
"url": "https://git.kernel.org/stable/c/cb19e54ebe9baf3c3243083ade65c937339ccb7b"
},
{
"url": "https://git.kernel.org/stable/c/d5631081be07f20e764d3cb5c98ac0a1004fba51"
},
{
"url": "https://git.kernel.org/stable/c/c36393b0d14e1e9783888f821ffe29381b8f46dc"
},
{
"url": "https://git.kernel.org/stable/c/69faa3779250df14f51d5084f938a99809546e52"
},
{
"url": "https://git.kernel.org/stable/c/ba1867999dbc4085e6d8c52ac5266005b8b2bf07"
},
{
"url": "https://git.kernel.org/stable/c/3137b243c93982fe3460335e12f9247739766e10"
}
],
"title": "usb: gadget: f_fs: initialize reset_work at allocation time",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64594",
"datePublished": "2026-08-06T07:13:50.309Z",
"dateReserved": "2026-07-19T15:36:31.799Z",
"dateUpdated": "2026-08-17T04:58:16.410Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72147 (GCVE-0-2026-72147)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-08-17 05:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: dw-edma-pcie: Reject devices without driver data
dw_edma_pcie_probe() treats the PCI device ID driver_data as the
template for the controller layout and copies it unconditionally. A
device bound dynamically via sysfs can match the driver without that
data, which leads to a NULL pointer dereference.
Reject such matches before enabling the device.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dma/dw-edma/dw-edma-pcie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2733b5dcb5a4ba4446f7bac954b97e4501dcaa64",
"status": "affected",
"version": "41aaff2a2ac01c5f5415f9de9cd7015ac2b8d569",
"versionType": "git"
},
{
"lessThan": "a1042599fa8f9e313be176eb1ea1ae199f983419",
"status": "affected",
"version": "41aaff2a2ac01c5f5415f9de9cd7015ac2b8d569",
"versionType": "git"
},
{
"lessThan": "043acb00e4edd4b9ffb9dd0e357482dcd9086486",
"status": "affected",
"version": "41aaff2a2ac01c5f5415f9de9cd7015ac2b8d569",
"versionType": "git"
},
{
"lessThan": "044f7b3252d4fb2143d4999eec2800c08f1001ed",
"status": "affected",
"version": "41aaff2a2ac01c5f5415f9de9cd7015ac2b8d569",
"versionType": "git"
},
{
"lessThan": "11d7cfe0c119691b2dafbb699bbca90258c678aa",
"status": "affected",
"version": "41aaff2a2ac01c5f5415f9de9cd7015ac2b8d569",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dma/dw-edma/dw-edma-pcie.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: dw-edma-pcie: Reject devices without driver data\n\ndw_edma_pcie_probe() treats the PCI device ID driver_data as the\ntemplate for the controller layout and copies it unconditionally. A\ndevice bound dynamically via sysfs can match the driver without that\ndata, which leads to a NULL pointer dereference.\n\nReject such matches before enabling the device."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:09:06.340Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2733b5dcb5a4ba4446f7bac954b97e4501dcaa64"
},
{
"url": "https://git.kernel.org/stable/c/a1042599fa8f9e313be176eb1ea1ae199f983419"
},
{
"url": "https://git.kernel.org/stable/c/043acb00e4edd4b9ffb9dd0e357482dcd9086486"
},
{
"url": "https://git.kernel.org/stable/c/044f7b3252d4fb2143d4999eec2800c08f1001ed"
},
{
"url": "https://git.kernel.org/stable/c/11d7cfe0c119691b2dafbb699bbca90258c678aa"
}
],
"title": "dmaengine: dw-edma-pcie: Reject devices without driver data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72147",
"datePublished": "2026-08-15T05:53:19.170Z",
"dateReserved": "2026-08-09T03:40:39.908Z",
"dateUpdated": "2026-08-17T05:09:06.340Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74616 (GCVE-0-2026-74616)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xdp: reject clones that overrun skb_shared_info tailroom
xdpf_clone() clones broadcast copies into a single page and sets
frame_sz to PAGE_SIZE. __xdp_build_skb_from_frame() later treats that
page like a normal XDP frame and expects the usual skb_shared_info
tailroom at the end of the buffer.
The current check only rejects frames whose linear xdp_frame header,
headroom, and packet data exceed PAGE_SIZE. A source frame backed by a
larger allocation can still satisfy that check while extending into the
clone's required shared-info area. When such a clone is converted back
into an skb, build_skb_around() places skb_shared_info over live packet
bytes and later writes can corrupt XDP return metadata.
Reject clones unless their linear area fits inside
SKB_WITH_OVERHEAD(PAGE_SIZE), matching the tailroom requirement already
enforced by the XDP-to-skb conversion path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 Version: e624d4ed4aa8cc3c69d1359b0aaea539203ed266 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74616",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:32.968446Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:02.219Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/xdp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "58408982fa39f9758124cec169f42854d6f98f35",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "685edea27ac68d08fe4dbd3de74b858d2ad8e830",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "ba13763d667e008e185fedf592d53846a5b457d1",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "ef4b7c7046d29a67090de15af0da0d1ae8d1b192",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "fab820f1691a9e26d9031f18aae1e9ce09078f92",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "f463b6f4957c9c3fd1c75f8d3e5af4879fa609c0",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
},
{
"lessThan": "e48e8edbef2eb824201495daa5234560f632b23c",
"status": "affected",
"version": "e624d4ed4aa8cc3c69d1359b0aaea539203ed266",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/xdp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxdp: reject clones that overrun skb_shared_info tailroom\n\nxdpf_clone() clones broadcast copies into a single page and sets\nframe_sz to PAGE_SIZE. __xdp_build_skb_from_frame() later treats that\npage like a normal XDP frame and expects the usual skb_shared_info\ntailroom at the end of the buffer.\n\nThe current check only rejects frames whose linear xdp_frame header,\nheadroom, and packet data exceed PAGE_SIZE. A source frame backed by a\nlarger allocation can still satisfy that check while extending into the\nclone\u0027s required shared-info area. When such a clone is converted back\ninto an skb, build_skb_around() places skb_shared_info over live packet\nbytes and later writes can corrupt XDP return metadata.\n\nReject clones unless their linear area fits inside\nSKB_WITH_OVERHEAD(PAGE_SIZE), matching the tailroom requirement already\nenforced by the XDP-to-skb conversion path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Remote packets on an XDP ingress netdev whose program calls bpf_xdp_redirect_map() with BPF_F_BROADCAST reach xdpf_clone() through dev_map_enqueue_multi(); edge L4 load balancers and container fan-out to veth peers are common deployments where cloned frames later hit __xdp_build_skb_from_frame() without any local attacker access.\nAC:L - Once broadcast devmap redirect is deployed, an attacker can reliably craft linear frames whose headroom plus payload fall in the SKB_WITH_OVERHEAD(PAGE_SIZE)..PAGE_SIZE window; no race, timing luck, or uncontrollable memory layout is required and the condition can be retried with each packet.\nPR:N - Loading/attaching the XDP program and populating the devmap requires CAP_BPF and CAP_NET_ADMIN on the host, but an unauthenticated remote sender on the already-configured datapath needs no privileges on the victim system, matching the CNA pattern used for the related devmap broadcast clone issue CVE-2026-64355.\nUI:N - Exploitation is driven entirely by network traffic processed in NAPI/softirq after XDP redirect; no victim mount, file open, or other interactive action is required beyond packets reaching the configured interface.\nS:U - The flaw corrupts skb_shared_info placement and metadata within the host kernel address space during skb construction; it does not inherently cross VM, hypervisor, or IOMMU security boundaries.\nC:H - build_skb_around() places skb_shared_info over live packet bytes and memset initializes it there; subsequent skb/shinfo access can read kernel metadata and adjacent buffer contents beyond intended bounds, constituting exploitable out-of-bounds memory disclosure.\nI:H - Overlapping skb_shared_info tailroom lets kernel writes corrupt packet data and lets attacker-influenced bytes corrupt shinfo fields used by later stack, GRO, and transmit paths, giving an out-of-bounds write primitive over frame metadata.\nA:H - Tailroom overlap during __xdp_build_skb_from_frame() can fault or corrupt state during skb construction and downstream processing, producing kernel oops/panic; an attacker can trigger this repeatedly with crafted packets on the broadcast redirect path."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:43.432Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/58408982fa39f9758124cec169f42854d6f98f35"
},
{
"url": "https://git.kernel.org/stable/c/685edea27ac68d08fe4dbd3de74b858d2ad8e830"
},
{
"url": "https://git.kernel.org/stable/c/ba13763d667e008e185fedf592d53846a5b457d1"
},
{
"url": "https://git.kernel.org/stable/c/ef4b7c7046d29a67090de15af0da0d1ae8d1b192"
},
{
"url": "https://git.kernel.org/stable/c/fab820f1691a9e26d9031f18aae1e9ce09078f92"
},
{
"url": "https://git.kernel.org/stable/c/f463b6f4957c9c3fd1c75f8d3e5af4879fa609c0"
},
{
"url": "https://git.kernel.org/stable/c/e48e8edbef2eb824201495daa5234560f632b23c"
}
],
"title": "xdp: reject clones that overrun skb_shared_info tailroom",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74616",
"datePublished": "2026-08-22T15:32:01.313Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:02.219Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74330 (GCVE-0-2026-74330)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
configfs: fix lockless traversals of ->s_children
Having the parent directory locked protects entries from removal
by another thread, but it does *not* protect cursors from being
moved around by lseek() - or freed, for that matter.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 Version: 6f61076406251626be39651d114fac412b1e0c39 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74330",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:53:38.426729Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:33.381Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/configfs/dir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "77fd6f50f633a52c2db061e7d71d8cb486b0265e",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "91f289728ec706b7ff1ca0ee845dd73ff2253488",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "b166ab78dc3f48e83d2c80bdfde4159b31fdc5fb",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "9e57e2863872e82e7c7237bc32299f67ebebc543",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "459860529c109c5ce08b81c0776ca1200eaaeb4a",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "637ef4961470e04455102b34ac484a34d8eca0a4",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "e6d93108e0a27d7e6f95c7e45017d14ba2900d32",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
},
{
"lessThan": "9b9e8bb81c41fd27e7b57a1c936fde140548535f",
"status": "affected",
"version": "6f61076406251626be39651d114fac412b1e0c39",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/configfs/dir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.27"
},
{
"lessThan": "2.6.27",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.27",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs: fix lockless traversals of -\u003es_children\n\nHaving the parent directory locked protects entries from removal\nby another thread, but it does *not* protect cursors from being\nmoved around by lseek() - or freed, for that matter."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only through local VFS syscalls (openat, getdents, lseek, close, mkdir, rmdir) against configfs, typically mounted at /sys/kernel/config; it is not reachable via network-facing kernel services such as ksmbd, nfsd, or packet-receive paths.\nAC:L - The attacker controls both sides of the race: opening a configfs directory inserts a readdir cursor into s_children, and concurrent lseek() or close() moves or frees that cursor while detach_attrs, detach_groups, or configfs_find_subsys_dentry traverse the list without configfs_dirent_lock; the window is attacker-driven and retryable.\nPR:L - Default configfs trees are root-owned, but 0755 directories let any local user open and lseek while teardown races proceed; USB gadget, target/LIO, gpio-aggregator, and embedded deployments commonly grant configfs mkdir/rmdir/write to service accounts or expose world-writable (S_IWUGO) gadget attributes.\nUI:N - Exploitation requires only the attacker issuing syscalls and spawning concurrent threads against configfs paths mounted at boot; no victim must mount filesystems, click prompts, or open files on the attacker\u0027s behalf.\nS:U - Slab use-after-free and list corruption impact kernel memory within the same security domain; this enables local privilege escalation, not VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - Lockless s_children traversal can follow a freed readdir cursor (the fix commit notes cursors can be \"freed\"), dereferencing kmem_cache_freed configfs_dirent objects and yielding standard slab UAF read primitives over adjacent kernel heap contents.\nI:H - The dangling cursor and list corruption enable heap grooming to reclaim freed configfs_dirent slabs and convert the race into arbitrary kernel writes or control-flow hijack, not merely incorrect metadata updates.\nA:H - Concurrent cursor free or move during unlocked list iteration causes kernel oops or panic via invalid list pointers or UAF dereferences; the race is repeatable for sustained denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:56.848Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/77fd6f50f633a52c2db061e7d71d8cb486b0265e"
},
{
"url": "https://git.kernel.org/stable/c/91f289728ec706b7ff1ca0ee845dd73ff2253488"
},
{
"url": "https://git.kernel.org/stable/c/b166ab78dc3f48e83d2c80bdfde4159b31fdc5fb"
},
{
"url": "https://git.kernel.org/stable/c/9e57e2863872e82e7c7237bc32299f67ebebc543"
},
{
"url": "https://git.kernel.org/stable/c/459860529c109c5ce08b81c0776ca1200eaaeb4a"
},
{
"url": "https://git.kernel.org/stable/c/637ef4961470e04455102b34ac484a34d8eca0a4"
},
{
"url": "https://git.kernel.org/stable/c/e6d93108e0a27d7e6f95c7e45017d14ba2900d32"
},
{
"url": "https://git.kernel.org/stable/c/9b9e8bb81c41fd27e7b57a1c936fde140548535f"
}
],
"title": "configfs: fix lockless traversals of -\u003es_children",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74330",
"datePublished": "2026-08-15T05:58:23.722Z",
"dateReserved": "2026-08-15T05:44:03.885Z",
"dateUpdated": "2026-10-16T18:55:33.381Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74255 (GCVE-0-2026-74255)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: fix UAF in tipc_l2_send_msg()
Syzbot reported a slab-use-after-free in ipvlan_hard_header() when
called from tipc_l2_send_msg().
The root cause is that tipc_disable_l2_media() calls synchronize_net()
while b->media_ptr is still valid. This allows concurrent RCU readers
to obtain the device pointer after synchronize_net() has finished.
The pointer is cleared later in bearer_disable(), but without any
subsequent synchronization, allowing the device to be freed while
still in use by readers.
Fix this by clearing b->media_ptr in tipc_disable_l2_media() before
calling synchronize_net().
This is safe to do now because the call order in bearer_disable()
was reversed in 0d051bf93c06 ("tipc: make bearer packet filtering generic")
to call tipc_node_delete_links() (which needs the pointer) before
disable_media().
https: //lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad Version: 282b3a056225b35024246f63feb91d769d714dad |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74255",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:51:21.997322Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:27.929Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/bearer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "609ced2301be1df7e7ed2ef47d1d916674e6ba3b",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "71aafa16d79b107b33837f60b6cbc7d0cb8c5708",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "f4002f1c669cc02e3763f479fc25ff1dfa9e2420",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "50ff092633b06382e5091dd5b093ce943d4ac2f9",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "aef12b5ce793dea6b3a97a58fd0f946000ae8945",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "0d8a12d7143126afdf9fbe2e3d438650dd6603ed",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "35e0297a93c3c34a3924eeef816c03504e3ab5c5",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
},
{
"lessThan": "f4c3d89fc986b0da196ddfc6cfe0ea5d5d08bec6",
"status": "affected",
"version": "282b3a056225b35024246f63feb91d769d714dad",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/bearer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"lessThan": "4.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: fix UAF in tipc_l2_send_msg()\n\nSyzbot reported a slab-use-after-free in ipvlan_hard_header() when\ncalled from tipc_l2_send_msg().\n\nThe root cause is that tipc_disable_l2_media() calls synchronize_net()\nwhile b-\u003emedia_ptr is still valid. This allows concurrent RCU readers\nto obtain the device pointer after synchronize_net() has finished.\nThe pointer is cleared later in bearer_disable(), but without any\nsubsequent synchronization, allowing the device to be freed while\nstill in use by readers.\n\nFix this by clearing b-\u003emedia_ptr in tipc_disable_l2_media() before\ncalling synchronize_net().\n\nThis is safe to do now because the call order in bearer_disable()\nwas reversed in 0d051bf93c06 (\"tipc: make bearer packet filtering generic\")\nto call tipc_node_delete_links() (which needs the pointer) before\ndisable_media().\n\nhttps: //lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - tipc_l2_send_msg is reached from tipc_bearer_xmit during L2 TIPC protocol handling; remote ETH_P_TIPC frames on cluster/datacenter L2 networks drive outbound transmission that races with bearer teardown in tipc_disable_l2_media.\nAC:L - The UAF window is a race where attackers control both sides by flooding TIPC Ethernet traffic while bearer disable runs and by concurrently triggering bearer teardown; syzbot reliably reproduced this without attacker-uncontrollable timing.\nPR:N - An unauthenticated remote attacker only needs to send TIPC L2 frames on a segment with an active bearer; bearer_disable teardown during cluster failover, netdev unregister, or node shutdown creates the required concurrent disable without attacker-local privileges.\nUI:N - No victim user action is required; exploitation is triggered by remote protocol traffic concurrent with automated or administrative bearer/interface teardown events.\nS:U - Impact is kernel slab memory corruption and potential privilege escalation within the same kernel security boundary, not a cross-VM or cross-namespace escape.\nC:H - Slab use-after-free of a net_device structure via ipvlan_hard_header enables reading freed kernel heap memory and can be leveraged for arbitrary kernel memory disclosure.\nI:H - UAF on net_device during dev_hard_header allows heap grooming and control of freed object contents, enabling arbitrary kernel writes and potential code execution.\nA:H - The UAF causes kernel oops/panic (as reported by syzbot in ipvlan_hard_header) and can be triggered repeatedly to deny service on cluster nodes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:03.215Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/609ced2301be1df7e7ed2ef47d1d916674e6ba3b"
},
{
"url": "https://git.kernel.org/stable/c/71aafa16d79b107b33837f60b6cbc7d0cb8c5708"
},
{
"url": "https://git.kernel.org/stable/c/f4002f1c669cc02e3763f479fc25ff1dfa9e2420"
},
{
"url": "https://git.kernel.org/stable/c/50ff092633b06382e5091dd5b093ce943d4ac2f9"
},
{
"url": "https://git.kernel.org/stable/c/aef12b5ce793dea6b3a97a58fd0f946000ae8945"
},
{
"url": "https://git.kernel.org/stable/c/0d8a12d7143126afdf9fbe2e3d438650dd6603ed"
},
{
"url": "https://git.kernel.org/stable/c/35e0297a93c3c34a3924eeef816c03504e3ab5c5"
},
{
"url": "https://git.kernel.org/stable/c/f4c3d89fc986b0da196ddfc6cfe0ea5d5d08bec6"
}
],
"title": "tipc: fix UAF in tipc_l2_send_msg()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74255",
"datePublished": "2026-08-15T05:57:34.293Z",
"dateReserved": "2026-08-15T05:44:03.876Z",
"dateUpdated": "2026-10-16T18:55:27.929Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80865 (GCVE-0-2026-80865)
Vulnerability from cvelistv5
Published
2026-09-04 16:48
Modified
2026-09-04 16:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Add missing access_ok call to copy_user_syms
As reported by sashiko we use __get_user without prior access_ok call on the
user space pointer. Adding the missing call for the whole pointer array.
Plus removing the err check in the error path, because it's not needed and
also we can return -ENOMEM directly from the first kvmalloc_array fail path.
[1] https://lore.kernel.org/bpf/20260611115503.AC16D1F00893@smtp.kernel.org/
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec Version: 0236fec57a15dc2a068dfe4488e0c2ab4559b1ec |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/bpf_trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a67f7f9647cb243b3be32163e88e5bc76e3d51e9",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
},
{
"lessThan": "8b719cef5ac30ab83ce5693c5faf10e4944874af",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
},
{
"lessThan": "128391b57e0977c35243672a6f970073651f3831",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
},
{
"lessThan": "0b6252afcd1965f77c6a6f8a802a2e1381822b98",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
},
{
"lessThan": "28ce7bcf8a29aa395b60764df4c97be745de89d0",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
},
{
"lessThan": "d5dc200c3a3f217de072af269dd90adddf90e48d",
"status": "affected",
"version": "0236fec57a15dc2a068dfe4488e0c2ab4559b1ec",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/bpf_trace.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Add missing access_ok call to copy_user_syms\n\nAs reported by sashiko we use __get_user without prior access_ok call on the\nuser space pointer. Adding the missing call for the whole pointer array.\n\nPlus removing the err check in the error path, because it\u0027s not needed and\nalso we can return -ENOMEM directly from the first kvmalloc_array fail path.\n\n[1] https://lore.kernel.org/bpf/20260611115503.AC16D1F00893@smtp.kernel.org/"
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T16:48:08.582Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a67f7f9647cb243b3be32163e88e5bc76e3d51e9"
},
{
"url": "https://git.kernel.org/stable/c/8b719cef5ac30ab83ce5693c5faf10e4944874af"
},
{
"url": "https://git.kernel.org/stable/c/128391b57e0977c35243672a6f970073651f3831"
},
{
"url": "https://git.kernel.org/stable/c/0b6252afcd1965f77c6a6f8a802a2e1381822b98"
},
{
"url": "https://git.kernel.org/stable/c/28ce7bcf8a29aa395b60764df4c97be745de89d0"
},
{
"url": "https://git.kernel.org/stable/c/d5dc200c3a3f217de072af269dd90adddf90e48d"
}
],
"title": "bpf: Add missing access_ok call to copy_user_syms",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80865",
"datePublished": "2026-09-04T16:48:08.582Z",
"dateReserved": "2026-08-26T14:34:25.798Z",
"dateUpdated": "2026-09-04T16:48:08.582Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89912 (GCVE-0-2026-89912)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-21 12:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic-its: Don't dereference a NULL collection on ITT save
MAPC with V=0 drops ite->collection but leaves the ITE on the device's
ITT list, and vgic_its_save_ite() dereferences it unconditionally. A
guest that issues MAPD, MAPTI and then MAPC(V=0) therefore oopses the
host when the VMM issues KVM_DEV_ARM_ITS_SAVE_TABLES to migrate it.
That sequence is UNPREDICTABLE per the architecture, but KVM already
handles the resulting state in the translate, MOVI and DISCARD paths.
Save a zeroed entry, which vgic_its_restore_ite() reads back as
invalid. Skipping the ITE instead would leave the ITT slot holding
whatever is in guest memory, and restore rejects an entry naming a
collection the restored collection table does not have.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89912",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:26:39.091827Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:36:59.904Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-its.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "dd0c3e6c03e3bb3fd7c0fa422230020674c5c25e",
"status": "affected",
"version": "eff484e0298da5a4d18ca82f5454c557fd942af5",
"versionType": "git"
},
{
"lessThan": "2c3a87ad3d3935c43d465cd2465db9020f9e898f",
"status": "affected",
"version": "eff484e0298da5a4d18ca82f5454c557fd942af5",
"versionType": "git"
},
{
"lessThan": "3d4c26b16a04a084fe0bde08ccdd8086570f8bbe",
"status": "affected",
"version": "eff484e0298da5a4d18ca82f5454c557fd942af5",
"versionType": "git"
},
{
"lessThan": "36df368861d2664291298feeb37dfef43fcae670",
"status": "affected",
"version": "eff484e0298da5a4d18ca82f5454c557fd942af5",
"versionType": "git"
},
{
"lessThan": "c6c156d931c33b92362383cf76f6d6e1291dcbfe",
"status": "affected",
"version": "eff484e0298da5a4d18ca82f5454c557fd942af5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/arm64/kvm/vgic/vgic-its.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.12"
},
{
"lessThan": "4.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: vgic-its: Don\u0027t dereference a NULL collection on ITT save\n\nMAPC with V=0 drops ite-\u003ecollection but leaves the ITE on the device\u0027s\nITT list, and vgic_its_save_ite() dereferences it unconditionally. A\nguest that issues MAPD, MAPTI and then MAPC(V=0) therefore oopses the\nhost when the VMM issues KVM_DEV_ARM_ITS_SAVE_TABLES to migrate it.\nThat sequence is UNPREDICTABLE per the architecture, but KVM already\nhandles the resulting state in the translate, MOVI and DISCARD paths.\n\nSave a zeroed entry, which vgic_its_restore_ite() reads back as\ninvalid. Skipping the ITE instead would leave the ITT slot holding\nwhatever is in guest memory, and restore rejects an entry naming a\ncollection the restored collection table does not have."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The NULL dereference is reached only via the local KVM ioctl KVM_SET_DEVICE_ATTR(KVM_DEV_ARM_ITS_SAVE_TABLES) after the guest programs in-kernel GICv3 ITS MMIO (MAPD/MAPTI/MAPC or GITS_BASER); it is not triggered by network packets, adjacent-radio frames, or a physical device.\nAC:L - A guest can deterministically issue MAPD, MAPTI, then MAPC with V=0, or clear GITS_BASER collection Valid, leaving ITEs on the ITT with a NULL collection; SAVE_TABLES then always dereferences it with no race or attacker-uncontrollable host layout.\nPR:N - The highest-impact case is a cloud VM tenant who needs no host privileges: they program the ITS from guest EL1 and the host oopses when the hypervisor saves ITS tables during automated live migration, without host root, capabilities, or tenant access to /dev/kvm.\nUI:N - No extra victim action is required beyond normal hypervisor operations such as automated live migration or snapshot save that invoke SAVE_TABLES; a local VMM can also issue that ioctl itself.\nS:C - The fault runs in host KVM while saving guest-controlled ITS state, so a host oops/panic takes down the hypervisor and co-resident VMs, crossing the KVM guest-to-host security boundary.\nC:N - vgic_its_save_ite() only loads collection_id through a NULL ite-\u003ecollection pointer; this is a pure NULL dereference with no out-of-bounds read, use-after-free, or other host disclosure primitive.\nI:N - The NULL collection is read and not written, and the bug does not corrupt host kernel memory, provide an arbitrary write, or hijack host control flow beyond the faulting load.\nA:H - Dereferencing the NULL collection in vgic_its_save_ite() oopses or panics the host kernel during ITS table save, denying service to the hypervisor and every co-located VM."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:49:07.366Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/dd0c3e6c03e3bb3fd7c0fa422230020674c5c25e"
},
{
"url": "https://git.kernel.org/stable/c/2c3a87ad3d3935c43d465cd2465db9020f9e898f"
},
{
"url": "https://git.kernel.org/stable/c/3d4c26b16a04a084fe0bde08ccdd8086570f8bbe"
},
{
"url": "https://git.kernel.org/stable/c/36df368861d2664291298feeb37dfef43fcae670"
},
{
"url": "https://git.kernel.org/stable/c/c6c156d931c33b92362383cf76f6d6e1291dcbfe"
}
],
"title": "KVM: arm64: vgic-its: Don\u0027t dereference a NULL collection on ITT save",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89912",
"datePublished": "2026-09-16T10:32:09.272Z",
"dateReserved": "2026-09-11T19:38:34.774Z",
"dateUpdated": "2026-10-21T12:49:07.366Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74592 (GCVE-0-2026-74592)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ima: Instantiate file_truncate and path_truncate hooks
Instantiate the file_truncate and path_truncate LSM hooks to reset the
action cache flags (IMA_DONE_MASK) as soon as truncation is requested,
so the file, based on policy, is re-collected, re-measured, re-audited,
and re-appraised on next access.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74592",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:38.240831Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.525Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"security/integrity/ima/ima_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5f46705d96eb60587aa7035acfcbec977e08d620",
"status": "affected",
"version": "3323eec921efd815178a23107ab63588c605c0b2",
"versionType": "git"
},
{
"lessThan": "dd21c96a71e876c8df9ec546b885a2c5f47bbb05",
"status": "affected",
"version": "3323eec921efd815178a23107ab63588c605c0b2",
"versionType": "git"
},
{
"lessThan": "0baed1fa2184c81e4baf76f445d3faa4b738c8f7",
"status": "affected",
"version": "3323eec921efd815178a23107ab63588c605c0b2",
"versionType": "git"
},
{
"lessThan": "b80bed5c871a80151351342c065579405ce77145",
"status": "affected",
"version": "3323eec921efd815178a23107ab63588c605c0b2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"security/integrity/ima/ima_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.30"
},
{
"lessThan": "2.6.30",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.30",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nima: Instantiate file_truncate and path_truncate hooks\n\nInstantiate the file_truncate and path_truncate LSM hooks to reset the\naction cache flags (IMA_DONE_MASK) as soon as truncation is requested,\nso the file, based on policy, is re-collected, re-measured, re-audited,\nand re-appraised on next access."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The missing IMA hook is hit from vfs_truncate() via truncate/ftruncate/O_TRUNC syscalls and from ksmbd vfs_truncate on TCP/445; on IMA-enforced servers a remote SMB client with write access can truncate appraised files without clearing IMA_DONE_MASK, the highest-impact reachable path.\nAC:L - Once IMA policy is active, an attacker with write access can deterministically truncate a target file; security_path_truncate/file_truncate always run before do_truncate, so stale IMA_DONE_MASK persists reliably with no races or special memory layout.\nPR:L - Exploitation requires only standard file write permission (MAY_WRITE) on the target inode\u2014via local truncate/ftruncate or an authenticated ksmbd/NFS client with write ACL\u2014not real root or init-namespace capabilities beyond normal write access to the appraised file.\nUI:N - The attacker directly issues truncate/ftruncate or remote SETATTR/truncate operations; no victim must mount media, open a file, or perform any separate action beyond the attacker\u0027s own write/truncate request.\nS:U - The flaw defeats IMA measurement/appraisal caching within the same kernel integrity authority; it does not cross VM, hypervisor, IOMMU, or container sandbox boundaries.\nC:H - Stale IMA_APPRAISED flags let process_measurement() skip re-appraisal on exec/open, so attacker-modified truncated content in hash-appraised executables runs with a cached pass and can access any data reachable by that code.\nI:H - Without clearing IMA_DONE_MASK on truncation, modified file content retains cached IMA_MEASURED/IMA_APPRAISED state and bypasses re-measurement, re-audit, and re-appraisal, defeating the core IMA integrity guarantee for affected files.\nA:N - The bug is a stale-cache integrity bypass with no kernel memory corruption, oops, panic, hang, or deadlock; truncation may change individual file availability but does not inherently crash or deny the host kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:20.017Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5f46705d96eb60587aa7035acfcbec977e08d620"
},
{
"url": "https://git.kernel.org/stable/c/dd21c96a71e876c8df9ec546b885a2c5f47bbb05"
},
{
"url": "https://git.kernel.org/stable/c/0baed1fa2184c81e4baf76f445d3faa4b738c8f7"
},
{
"url": "https://git.kernel.org/stable/c/b80bed5c871a80151351342c065579405ce77145"
}
],
"title": "ima: Instantiate file_truncate and path_truncate hooks",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74592",
"datePublished": "2026-08-22T15:31:43.419Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:05:59.525Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74632 (GCVE-0-2026-74632)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-10-16 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/huge_memory: fix huge_zero_pfn race
Patch series "mm/huge_memory: fix huge_zero_pfn race", v2.
There is a subtle race in the reference-counted huge_zero_folio
implementation.
The fast path atomic logic fails to account for the fact that the shrinker
(which drops the final huge_zero_refcount pin) can overwrite huge_zero_pfn
with the ~0UL sentinel value in shrink_huge_zero_folio_scan() after a
racing get_huge_zero_folio() installed a valid value there.
This results in huge_zero_folio being correctly set but huge_zero_pfn
being set incorrectly and thus is_huge_zero_pfn() and consequently
is_huge_zero_pmd() will misidentify the huge zero folio as being an
ordinary THP folio.
This can result in the huge zero folio being split and otherwise treated
incorrectly.
The solution to this is very subtle as there is an atomic fast path, and
thus ordering in weakly ordered architectures has to be treated very
carefully.
The first commit fixes the issue by introducing a spinlock around
huge_zero_[pfn, folio, refcount] write, with careful consideration paid to
load/store ordering in the fast path. It is placed first and kept as
small as possible so that it can be backported on its own.
The second commit is a pure cleanup which reworks the
CONFIG_PERSISTENT_HUGE_ZERO_FOLIO logic to better separate the persistent
logic from the dynamically allocated one.
This patch (of 2):
If !CONFIG_PERSISTENT_HUGE_ZERO_FOLIO, the huge_zero_folio is refcounted
by huge_zero_refcount and returned by mm_get_huge_zero_folio().
When the caller is done with the huge zero page, its reference count is
decremented. Only a shrinker can set the reference count to zero.
A race can unfortunately occur between a shrinker decrementing the
reference count to zero and a concurrent page fault.
This is because shrink_huge_zero_folio_scan() might, if very unlucky, be
preempted between setting huge_zero_refcount to zero and writing an
invalid value.
During this time get_huge_zero_folio() could write to huge_zero_pfn before
shrink_huge_zero_folio_scan() resumes.
In this event the huge zero folio will be persistently misidentified
causing the THP code path to be entered inappropriately for the huge zero
folio:
CPU 0 CPU 1
=======================================|=================================
shrink_huge_zero_folio_scan() |
atomic_cmpxchg() sets refcount to 0 |
xchg() sets huge_zero_folio to NULL | get_huge_zero_folio()
| | atomic_inc_not_zero() -> zero
preempted for a long time | Allocate new huge zero folio
| | Write valid huge_zero_folio
v | Write valid huge_zero_pfn
Overwrite huge_zero_pfn with ~0UL <--- Invalid overwrite!
This results in is_huge_zero_pfn() and is_huge_zero_pmd() incorrectly
returning false for a huge zero page which could result in issues like the
huge zero folio being incorrectly split.
Note that the issue is with huge_zero_pfn not huge_zero_folio, as
get_huge_zero_folio() uses cmpxchg() gated on huge_zero_folio being NULL
with a retry loop and shrink_huge_zero_folio_scan() uses xchg() to set
huge_zero_folio.
Fix the issue by introducing a spinlock, huge_zero_lock, to prevent
concurrent write of huge_zero_folio, huge_zero_pfn and huge_zero_refcount.
There needs to be significant care taken here to ensure correctness:
The fast path in get_huge_zero_folio() uses atomic_inc_not_zero(), which
is outside of the critical section, and means huge zero allocation is
gated on zero huge_zero_refcount.
The fast path doesn't use huge_zero_lock, so the critical section is
irrelevant to it.
So invariants are required - huge_zero_refcount MUST:
* Only be set in the huge_zero_lock critical section to ensure
serialisation of huge_zero_pfn, huge_zero_folio and
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6527d8ef68c3ca3c455e38ae2a37cd7810caec73 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: 3b77e8c8cde581dadab9a0f1543a347e24315f11 Version: fc1fbc5b017b6f5ef24a4a93f33cd022225e01c8 Version: bd092a0f19423d7e9e81182314a96ecd6a14f3b7 Version: b1daf8f862136894a4595770a44e4508808fb806 Version: 5.10.47 ≤ Version: 4.19.197 ≤ Version: 5.4.129 ≤ Version: 5.12.14 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74632",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:03:06.246851Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:03.913Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/huge_memory.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9c0fd1802ce06d7709f0bae4edeb085288f28764",
"status": "affected",
"version": "6527d8ef68c3ca3c455e38ae2a37cd7810caec73",
"versionType": "git"
},
{
"lessThan": "b7041ba61c5da4e0b56f9be58cfb87d7689724e4",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "9332b080ad57650d1dc582e54517f9fc78ef89cc",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "f3a874a903053c53fb53ba287ea9eacda69c68e8",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "6024f6d0d9b9ca5138bfc4ac6f6e4bdf616e42b3",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "105d04edbec83010df5728f74d17fd9c108e7553",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "ab7e4b407c7f58d1a003134eff3841f303d5ccc2",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"lessThan": "33192a26cddea7a7e4ca66e5c3eebd36fa8be2bb",
"status": "affected",
"version": "3b77e8c8cde581dadab9a0f1543a347e24315f11",
"versionType": "git"
},
{
"status": "affected",
"version": "fc1fbc5b017b6f5ef24a4a93f33cd022225e01c8",
"versionType": "git"
},
{
"status": "affected",
"version": "bd092a0f19423d7e9e81182314a96ecd6a14f3b7",
"versionType": "git"
},
{
"status": "affected",
"version": "b1daf8f862136894a4595770a44e4508808fb806",
"versionType": "git"
},
{
"lessThan": "5.10.267",
"status": "affected",
"version": "5.10.47",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.197",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.129",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/huge_memory.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "5.10.47",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.197",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.129",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/huge_memory: fix huge_zero_pfn race\n\nPatch series \"mm/huge_memory: fix huge_zero_pfn race\", v2.\n\nThere is a subtle race in the reference-counted huge_zero_folio\nimplementation.\n\nThe fast path atomic logic fails to account for the fact that the shrinker\n(which drops the final huge_zero_refcount pin) can overwrite huge_zero_pfn\nwith the ~0UL sentinel value in shrink_huge_zero_folio_scan() after a\nracing get_huge_zero_folio() installed a valid value there.\n\nThis results in huge_zero_folio being correctly set but huge_zero_pfn\nbeing set incorrectly and thus is_huge_zero_pfn() and consequently\nis_huge_zero_pmd() will misidentify the huge zero folio as being an\nordinary THP folio.\n\nThis can result in the huge zero folio being split and otherwise treated\nincorrectly.\n\nThe solution to this is very subtle as there is an atomic fast path, and\nthus ordering in weakly ordered architectures has to be treated very\ncarefully.\n\nThe first commit fixes the issue by introducing a spinlock around\nhuge_zero_[pfn, folio, refcount] write, with careful consideration paid to\nload/store ordering in the fast path. It is placed first and kept as\nsmall as possible so that it can be backported on its own.\n\nThe second commit is a pure cleanup which reworks the\nCONFIG_PERSISTENT_HUGE_ZERO_FOLIO logic to better separate the persistent\nlogic from the dynamically allocated one.\n\n\nThis patch (of 2):\n\nIf !CONFIG_PERSISTENT_HUGE_ZERO_FOLIO, the huge_zero_folio is refcounted\nby huge_zero_refcount and returned by mm_get_huge_zero_folio().\n\nWhen the caller is done with the huge zero page, its reference count is\ndecremented. Only a shrinker can set the reference count to zero.\n\nA race can unfortunately occur between a shrinker decrementing the\nreference count to zero and a concurrent page fault.\n\nThis is because shrink_huge_zero_folio_scan() might, if very unlucky, be\npreempted between setting huge_zero_refcount to zero and writing an\ninvalid value.\n\nDuring this time get_huge_zero_folio() could write to huge_zero_pfn before\nshrink_huge_zero_folio_scan() resumes.\n\nIn this event the huge zero folio will be persistently misidentified\ncausing the THP code path to be entered inappropriately for the huge zero\nfolio:\n\n CPU 0 CPU 1\n=======================================|=================================\nshrink_huge_zero_folio_scan() |\n atomic_cmpxchg() sets refcount to 0 |\n xchg() sets huge_zero_folio to NULL | get_huge_zero_folio()\n | | atomic_inc_not_zero() -\u003e zero\n preempted for a long time | Allocate new huge zero folio\n | | Write valid huge_zero_folio\n v | Write valid huge_zero_pfn\n Overwrite huge_zero_pfn with ~0UL \u003c--- Invalid overwrite!\n\nThis results in is_huge_zero_pfn() and is_huge_zero_pmd() incorrectly\nreturning false for a huge zero page which could result in issues like the\nhuge zero folio being incorrectly split.\n\nNote that the issue is with huge_zero_pfn not huge_zero_folio, as\nget_huge_zero_folio() uses cmpxchg() gated on huge_zero_folio being NULL\nwith a retry loop and shrink_huge_zero_folio_scan() uses xchg() to set\nhuge_zero_folio.\n\nFix the issue by introducing a spinlock, huge_zero_lock, to prevent\nconcurrent write of huge_zero_folio, huge_zero_pfn and huge_zero_refcount.\n\nThere needs to be significant care taken here to ensure correctness:\n\nThe fast path in get_huge_zero_folio() uses atomic_inc_not_zero(), which\nis outside of the critical section, and means huge zero allocation is\ngated on zero huge_zero_refcount.\n\nThe fast path doesn\u0027t use huge_zero_lock, so the critical section is\nirrelevant to it.\n\nSo invariants are required - huge_zero_refcount MUST:\n\n* Only be set in the huge_zero_lock critical section to ensure\n serialisation of huge_zero_pfn, huge_zero_folio and\n---truncated---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reached only through local page faults in handle_mm_fault()-\u003ecreate_huge_pmd()-\u003edo_huge_pmd_anonymous_page()-\u003emm_get_huge_zero_folio() racing shrink_huge_zero_folio_scan(); no network, adjacent, or physical path exists.\nAC:L - Attacker controls both race sides: concurrent anonymous read faults drive get_huge_zero_folio() while memory-pressure reclaim drives shrink_huge_zero_folio_scan(); multi-threaded hammering makes the preemption window reliably winnable.\nPR:L - Any unprivileged local process can mmap anonymous memory and trigger huge-zero PMD installation on typical CONFIG_TRANSPARENT_HUGEPAGE systems with zero-page enabled; no root, capabilities, or authentication is required.\nUI:N - Exploitation is fully attacker-driven via standard syscalls (mmap, madvise, read, munmap) and deliberate memory pressure; no separate victim action beyond the attacker running their own workload is needed.\nS:U - Corrupts kernel-global huge_zero_folio metadata and rmap/RSS accounting within the kernel security boundary; this is not a VM escape, IOMMU bypass, or cross-authority sandbox break.\nC:H - Misidentification routes the shared huge zero folio through normal THP split/teardown (folio_remove_rmap_pmd, incorrect accounting), corrupting global page metadata with plausible arbitrary kernel memory disclosure leverage.\nI:H - Wrong-path splitting manipulates refcount/rmap state on the system-wide huge zero singleton folio, corrupting kernel integrity and enabling memory-write/control-flow primitives from metadata corruption.\nA:H - Mis-split triggers kernel WARN/BUG_ON, bad page state, and bad rss-counter failures during reclaim or teardown, causing kernel oops, panic, or hang on affected THP systems."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:50.791Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9c0fd1802ce06d7709f0bae4edeb085288f28764"
},
{
"url": "https://git.kernel.org/stable/c/b7041ba61c5da4e0b56f9be58cfb87d7689724e4"
},
{
"url": "https://git.kernel.org/stable/c/9332b080ad57650d1dc582e54517f9fc78ef89cc"
},
{
"url": "https://git.kernel.org/stable/c/f3a874a903053c53fb53ba287ea9eacda69c68e8"
},
{
"url": "https://git.kernel.org/stable/c/6024f6d0d9b9ca5138bfc4ac6f6e4bdf616e42b3"
},
{
"url": "https://git.kernel.org/stable/c/105d04edbec83010df5728f74d17fd9c108e7553"
},
{
"url": "https://git.kernel.org/stable/c/ab7e4b407c7f58d1a003134eff3841f303d5ccc2"
},
{
"url": "https://git.kernel.org/stable/c/33192a26cddea7a7e4ca66e5c3eebd36fa8be2bb"
}
],
"title": "mm/huge_memory: fix huge_zero_pfn race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74632",
"datePublished": "2026-08-22T15:32:13.078Z",
"dateReserved": "2026-08-15T05:44:03.922Z",
"dateUpdated": "2026-10-16T19:06:03.913Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80557 (GCVE-0-2026-80557)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-16 19:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
libceph: fix OOB read in decode_watchers() via missing bounds check
ceph_start_decoding() validates that struct_len bytes remain in the
buffer after the encoding header, but accepts struct_len=0 as valid:
ceph_decode_need(p, end, 0, bad) always passes. When a malicious or
compromised OSD sends an obj_list_watch_response_t reply with
struct_len=0, ceph_start_decoding() returns success with p == end,
leaving zero bytes guaranteed for subsequent reads.
The immediately following ceph_decode_32(p) in decode_watchers() has
no preceding bounds check. With p == end this is a 4-byte read past
the validated buffer boundary. The garbage value is then passed
directly to kzalloc_objs() as the watcher count.
The sibling function decode_watcher() already uses the safe variants
(ceph_decode_copy_safe, ceph_decode_64_safe, ceph_decode_skip_32)
after its own ceph_start_decoding() call. decode_watchers() is the
only site that uses the bare variant, confirming an oversight.
Fix by replacing ceph_decode_32(p) with ceph_decode_32_safe(p, end,
*num_watchers, bad), consistent with the established pattern.
Attacker model: a malicious or compromised OSD in a multi-tenant Ceph
deployment (e.g. cloud) can trigger this against any kernel client
that calls CEPH_OSD_OP_LIST_WATCHERS, without any further privileges
beyond OSD session establishment.
[ idryomov: trim changelog ]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c Version: a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80557",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:25.527528Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:26.946Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ceph/osd_client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "85479b7d65b4ebcb07fbbe57230976793974ab4a",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "1c824e7c75bb4adf19553dd4ea944a5d83096be8",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "f161be39201eb5f9b1f58fb8f90b8a9cd3931eb6",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "eab3eeb68bfc639d74f27256f05546af5c4f787d",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "c59219a6b62d74936963983e5815524c3de8dd79",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "cb8246e5846dbbe34930903a90c7a90dd8e5910b",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "7130d94846dadbb97b6b7f4d78a3a7bba6e3daa1",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
},
{
"lessThan": "00ead17c7de137a692edee59f2772e6af687e8eb",
"status": "affected",
"version": "a4ed38d7a180f184a6e7aedd09db9ca4b1e6a71c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ceph/osd_client.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlibceph: fix OOB read in decode_watchers() via missing bounds check\n\nceph_start_decoding() validates that struct_len bytes remain in the\nbuffer after the encoding header, but accepts struct_len=0 as valid:\nceph_decode_need(p, end, 0, bad) always passes. When a malicious or\ncompromised OSD sends an obj_list_watch_response_t reply with\nstruct_len=0, ceph_start_decoding() returns success with p == end,\nleaving zero bytes guaranteed for subsequent reads.\n\nThe immediately following ceph_decode_32(p) in decode_watchers() has\nno preceding bounds check. With p == end this is a 4-byte read past\nthe validated buffer boundary. The garbage value is then passed\ndirectly to kzalloc_objs() as the watcher count.\n\nThe sibling function decode_watcher() already uses the safe variants\n(ceph_decode_copy_safe, ceph_decode_64_safe, ceph_decode_skip_32)\nafter its own ceph_start_decoding() call. decode_watchers() is the\nonly site that uses the bare variant, confirming an oversight.\n\nFix by replacing ceph_decode_32(p) with ceph_decode_32_safe(p, end,\n*num_watchers, bad), consistent with the established pattern.\n\nAttacker model: a malicious or compromised OSD in a multi-tenant Ceph\ndeployment (e.g. cloud) can trigger this against any kernel client\nthat calls CEPH_OSD_OP_LIST_WATCHERS, without any further privileges\nbeyond OSD session establishment.\n\n[ idryomov: trim changelog ]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is triggered when libceph decodes a crafted MOSDOpReply for CEPH_OSD_OP_LIST_WATCHERS received over the Ceph messenger TCP session from a compromised or malicious OSD; exploitation requires no local syscall, ioctl, or device access on the victim.\nAC:L - A malicious OSD fully controls the reply encoding and can set struct_len=0 with a chosen outdata_len so ceph_start_decoding() leaves p at end and the following ceph_decode_32() deterministically reads attacker-chosen bytes as num_watchers without races or victim-specific memory layout.\nPR:N - The attacker acts as the remote Ceph OSD peer and needs no account, capabilities, or privileges on the victim Linux host; any kernel RBD client connected to a multi-tenant or attacker-controlled cluster is exposed when exclusive-lock recovery issues LIST_WATCHERS.\nUI:N - Once an RBD image with exclusive-lock is mapped, ceph_osdc_list_watchers() is invoked automatically during rbd_try_lock() lock-contention recovery; no additional victim user or administrator action is required at exploit time beyond the existing client session.\nS:U - The out-of-bounds read, attacker-sized heap allocation, and any resulting kernel memory corruption all occur within the victim host kernel Ceph client; the flaw does not cross VM, container, or IOMMU security boundaries.\nC:H - The missing bounds check causes a 4-byte out-of-bounds kernel memory read via ceph_decode_32() when p equals end; per kernel guidance any out-of-bounds read is rated High, and the attacker can place controlled bytes immediately past the validated boundary via outdata_len.\nI:H - The out-of-bounds or attacker-supplied num_watchers value is passed directly to kzalloc_objs(), giving the remote peer control over kernel heap allocation size and subsequent decode_watchers() processing of watcher structures in the RBD exclusive-lock path.\nA:H - The slab out-of-bounds read can trigger KASAN faults or kernel oops on instrumented builds, and a large attacker-chosen num_watchers can cause ENOMEM/OOM or stall the RBD lock worker during repeated decode_watcher() attempts, producing severe repeatable availability loss."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:40:16.573Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/85479b7d65b4ebcb07fbbe57230976793974ab4a"
},
{
"url": "https://git.kernel.org/stable/c/1c824e7c75bb4adf19553dd4ea944a5d83096be8"
},
{
"url": "https://git.kernel.org/stable/c/f161be39201eb5f9b1f58fb8f90b8a9cd3931eb6"
},
{
"url": "https://git.kernel.org/stable/c/eab3eeb68bfc639d74f27256f05546af5c4f787d"
},
{
"url": "https://git.kernel.org/stable/c/c59219a6b62d74936963983e5815524c3de8dd79"
},
{
"url": "https://git.kernel.org/stable/c/cb8246e5846dbbe34930903a90c7a90dd8e5910b"
},
{
"url": "https://git.kernel.org/stable/c/7130d94846dadbb97b6b7f4d78a3a7bba6e3daa1"
},
{
"url": "https://git.kernel.org/stable/c/00ead17c7de137a692edee59f2772e6af687e8eb"
}
],
"title": "libceph: fix OOB read in decode_watchers() via missing bounds check",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80557",
"datePublished": "2026-08-26T14:37:24.178Z",
"dateReserved": "2026-08-26T14:34:25.767Z",
"dateUpdated": "2026-10-16T19:26:26.946Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90293 (GCVE-0-2026-90293)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/isert: post the full-feature receive buffers after session registration
isert_put_login_tx() posts the full-feature receive buffers before
__transport_register_session() runs, so an initiator that does not wait
for the final Login Response can still have a SCSI command executed
against an se_session whose se_tpg is NULL - the same oops as the
previous patch, at target_submit+0xbe.
Post them from isert_get_rx_pdu(), which the previous patch already uses
to send that response, and post them before that send: the receive queue
is filled at the moment the initiator is told it may use it. Allocating
there keeps the existing property that a memory allocation failure cannot
happen once the final Login Response is on the wire.
The receive queue is already empty between the final Login Request and
isert_post_recvm(); this moves the second point later, from a median of
92 us to 172 us over 1200 logins. Only an initiator that sends before it
has been told to can reach that window, and on IB and RoCE its send is
retried there until the buffers appear - isert_rdma_accept() asks for
rnr_retry_count = 7. iWARP has no RNR flow control, so there the same
send terminates the connection instead.
Measured over rxe, 400 login cycles per run, with an initiator that does
not wait: an instrumented build counted no entries to isert_recv_done()
before the buffers are posted in 10 runs, where that initiator oopsed
8 of 10 unpatched runs and 5 of 10 with only the previous patch.
Not tested: iWARP, discovery sessions over iSER, and real HCAs.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 Version: b8d26b3be8b33682cf163274ed07479a70554633 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "962edb9a6b0dae09d33a677485a398fc7d55968c",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "068fe9841d2585b79d479fc7b58251d02d0b066f",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "d4f8257c3283919ca7e149381d062b9af5f7df7d",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "9c21a433022219ca899d1b3cd9049991f51a6a2c",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "9b2c61344992c8c2b883e1eebe416cc488a19390",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "6c506fee5a5f2c8719c65bcfc5e5d0862b0a1946",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "ad4492dcaf90a1d1a728ec5eef1a68ce5355027a",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "5247dde9daac7e107853b6fea043f7f47be033f7",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/isert/ib_isert.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/isert: post the full-feature receive buffers after session registration\n\nisert_put_login_tx() posts the full-feature receive buffers before\n__transport_register_session() runs, so an initiator that does not wait\nfor the final Login Response can still have a SCSI command executed\nagainst an se_session whose se_tpg is NULL - the same oops as the\nprevious patch, at target_submit+0xbe.\n\nPost them from isert_get_rx_pdu(), which the previous patch already uses\nto send that response, and post them before that send: the receive queue\nis filled at the moment the initiator is told it may use it. Allocating\nthere keeps the existing property that a memory allocation failure cannot\nhappen once the final Login Response is on the wire.\n\nThe receive queue is already empty between the final Login Request and\nisert_post_recvm(); this moves the second point later, from a median of\n92 us to 172 us over 1200 logins. Only an initiator that sends before it\nhas been told to can reach that window, and on IB and RoCE its send is\nretried there until the buffers appear - isert_rdma_accept() asks for\nrnr_retry_count = 7. iWARP has no RNR flow control, so there the same\nsend terminates the connection instead.\n\nMeasured over rxe, 400 login cycles per run, with an initiator that does\nnot wait: an instrumented build counted no entries to isert_recv_done()\nbefore the buffers are posted in 10 runs, where that initiator oopsed\n8 of 10 unpatched runs and 5 of 10 with only the previous patch.\n\nNot tested: iWARP, discovery sessions over iSER, and real HCAs."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The trigger is an ISCSI_OP_SCSI_CMD RDMA Send that isert_recv_done() handles after isert_put_login_tx() has already called isert_post_recvm() on the full-feature RQ; those Sends arrive from a remote initiator on the QP accepted by isert_connect_request() after rdma_listen() in isert_setup_id(), which binds RoCEv2 (UDP/IP) or iWARP (TCP).\nAC:L - The initiator drives login until login_complete so isert_put_login_tx() posts RX buffers, then sends ISCSI_OP_SCSI_CMD without waiting for the Login Response; isert_rdma_accept() sets rnr_retry_count=7 so IB/RoCE retries that Send until the RQ is filled and isert_recv_done() runs on ib-comp-wq before iscsi_post_login_handler() calls __transport_register_session().\nPR:N - login_complete is set in iscsi_target_do_login CSG1 only after iscsi_conn_authenticated(); when tpg_attrib.authentication is 0, iscsi_handle_authentication() accepts AuthMethod=None with no secret, and generate_node_acls demo mode lets core_tpg_check_initiator_node_acl() admit a client-asserted InitiatorName.\nUI:N - The attacker is the iSER initiator that finishes the Login Request exchange and posts the early SCSI Command on its own QP; no local user or administrator action is required.\nS:U - The NULL se_sess-\u003ese_tpg load in target_submit() oopses the same kernel that runs ib_isert; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - transport_alloc_session() kmem_cache_zallocs se_session so se_tpg stays NULL until __transport_register_session(); target_submit() only loads se_tpg-\u003ese_tpg_tfo and takes a GPF, with no out-of-bounds read.\nI:N - The fault is a NULL load of se_cmd-\u003ese_sess-\u003ese_tpg in target_submit(); this path does not write kernel memory or reuse a freed object.\nA:H - KASAN reports a null-ptr-deref in target_submit() on ib-comp-wq (ib_cq_poll_work \u2192 isert_recv_done \u2192 iscsit_process_scsi_cmd \u2192 iscsit_execute_cmd), producing a kernel oops."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:11.440Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/962edb9a6b0dae09d33a677485a398fc7d55968c"
},
{
"url": "https://git.kernel.org/stable/c/068fe9841d2585b79d479fc7b58251d02d0b066f"
},
{
"url": "https://git.kernel.org/stable/c/d4f8257c3283919ca7e149381d062b9af5f7df7d"
},
{
"url": "https://git.kernel.org/stable/c/9c21a433022219ca899d1b3cd9049991f51a6a2c"
},
{
"url": "https://git.kernel.org/stable/c/9b2c61344992c8c2b883e1eebe416cc488a19390"
},
{
"url": "https://git.kernel.org/stable/c/6c506fee5a5f2c8719c65bcfc5e5d0862b0a1946"
},
{
"url": "https://git.kernel.org/stable/c/ad4492dcaf90a1d1a728ec5eef1a68ce5355027a"
},
{
"url": "https://git.kernel.org/stable/c/5247dde9daac7e107853b6fea043f7f47be033f7"
}
],
"title": "IB/isert: post the full-feature receive buffers after session registration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90293",
"datePublished": "2026-09-17T16:08:20.033Z",
"dateReserved": "2026-09-11T19:38:34.798Z",
"dateUpdated": "2026-10-19T09:01:11.440Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74594 (GCVE-0-2026-74594)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sched/psi: Shut down rtpoll_timer in psi_cgroup_free()
psi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath
and can race psi_trigger_destroy() taking down the last rtpoll trigger under
rtpoll_trigger_lock:
psi_schedule_rtpoll_work() psi_trigger_destroy()
rcu_read_lock();
task = rcu_dereference(rtpoll_task);
rcu_assign_pointer(rtpoll_task, NULL);
timer_delete(&rtpoll_timer);
mod_timer(&rtpoll_timer, ...);
rcu_read_unlock();
synchronize_rcu();
kthread_stop(task_to_destroy);
The group can then be freed with the re-armed timer still pending, and
poll_timer_fn() runs on freed memory.
461daba06bdc ("psi: eliminate kthread_worker from psi trigger scheduling
mechanism") deleted the timer synchronously after the synchronize_rcu(),
which prevented this but raced trigger creation instead: the deletion could
cancel the timer that a new trigger set armed during the grace period and,
as creation also reinitialized the timer at the time, corrupt it.
8f91efd870ea ("psi: Fix race between psi_trigger_create/destroy") moved the
initialization into group_init() and the deletion into the locked section,
trading the creation races for the window above.
Neither placement in the destruction path works. A pending timer firing
while the group is alive is harmless though. poll_timer_fn() just wakes the
rtpoll waitqueue and doesn't re-arm itself. Bind the timer to the group's
lifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it
by then. timer_shutdown_sync() because the timer is never armed again.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6bfcb6178925b1fd28c102e53d403091b8f49396 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 Version: e1e5e263bbe0e6e9c3db36aa48a3c8acf546fa49 Version: 979965c33f734a1666af67900408f997ac669c23 Version: 5.10.50 ≤ Version: 5.12.17 ≤ Version: 5.13.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74594",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:40.497794Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:59.691Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/sched/psi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4addb102154b7cf6e2310ccbe20c3c08619e520d",
"status": "affected",
"version": "6bfcb6178925b1fd28c102e53d403091b8f49396",
"versionType": "git"
},
{
"lessThan": "894a9300d7fb2e2951da92e565ae6de7ddfb0a69",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "1e5ca82eee59caca6988f9d6e859786aab8a5fa0",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "310b5a537a78c358a4cd244bd767c1a517a05459",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "8037c5b2b2a447df52542f4d8535895d837bdcbd",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "611e7821c4f83a671455658797336faecc3a5196",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"lessThan": "5457025fa8ca3c0d2732109513de839e3e797190",
"status": "affected",
"version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
"versionType": "git"
},
{
"status": "affected",
"version": "e1e5e263bbe0e6e9c3db36aa48a3c8acf546fa49",
"versionType": "git"
},
{
"status": "affected",
"version": "979965c33f734a1666af67900408f997ac669c23",
"versionType": "git"
},
{
"lessThan": "5.10.266",
"status": "affected",
"version": "5.10.50",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.17",
"versionType": "semver"
},
{
"lessThan": "5.14",
"status": "affected",
"version": "5.13.2",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/sched/psi.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.10.50",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.13.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsched/psi: Shut down rtpoll_timer in psi_cgroup_free()\n\npsi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath\nand can race psi_trigger_destroy() taking down the last rtpoll trigger under\nrtpoll_trigger_lock:\n\n psi_schedule_rtpoll_work() psi_trigger_destroy()\n\n rcu_read_lock();\n task = rcu_dereference(rtpoll_task);\n rcu_assign_pointer(rtpoll_task, NULL);\n timer_delete(\u0026rtpoll_timer);\n mod_timer(\u0026rtpoll_timer, ...);\n rcu_read_unlock();\n synchronize_rcu();\n kthread_stop(task_to_destroy);\n\nThe group can then be freed with the re-armed timer still pending, and\npoll_timer_fn() runs on freed memory.\n\n461daba06bdc (\"psi: eliminate kthread_worker from psi trigger scheduling\nmechanism\") deleted the timer synchronously after the synchronize_rcu(),\nwhich prevented this but raced trigger creation instead: the deletion could\ncancel the timer that a new trigger set armed during the grace period and,\nas creation also reinitialized the timer at the time, corrupt it.\n8f91efd870ea (\"psi: Fix race between psi_trigger_create/destroy\") moved the\ninitialization into group_init() and the deletion into the locked section,\ntrading the creation races for the window above.\n\nNeither placement in the destruction path works. A pending timer firing\nwhile the group is alive is harmless though. poll_timer_fn() just wakes the\nrtpoll waitqueue and doesn\u0027t re-arm itself. Bind the timer to the group\u0027s\nlifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it\nby then. timer_shutdown_sync() because the timer is never armed again."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reachable only via local kernel interfaces: writing cgroup *.pressure or /proc/pressure/*, closing the trigger fd, and removing the cgroup; the race involves scheduler hotpath callbacks, not any network protocol.\nAC:L - The attacker controls both race participants\u2014closing/destroying the last privileged PSI trigger while concurrently driving psi_schedule_rtpoll_work() via cgroup task scheduling or the psimon worker\u2014so the mod_timer-after-timer_delete window is reliably winnable.\nPR:L - The vulnerable rtpoll path requires CAP_SYS_RESOURCE (non-2s PSI windows); that capability is available to an unprivileged user who creates a user namespace, and cgroup pressure files are writable under delegated cgroup v2 hierarchies in that namespace.\nUI:N - Exploitation is fully self-driven: the attacker creates the trigger, races its teardown against scheduler activity, and deletes the cgroup; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is confined to kernel memory corruption and potential local privilege escalation within the same kernel security authority; it does not cross a VM, container runtime, or IOMMU trust boundary.\nC:H - After psi_cgroup_free() the pending rtpoll_timer fires poll_timer_fn() on a freed psi_group, a classic use-after-free that can expose or corrupt adjacent slab contents and be developed into arbitrary kernel memory read primitives.\nI:H - poll_timer_fn() performs atomic_set() on group-\u003ertpoll_wakeup and wake_up_interruptible() on group-\u003ertpoll_wait after the psi_group is freed, giving attacker-influenced writes into a recycled kmem object suitable for control-flow hijacking.\nA:H - Timer execution on freed psi_group memory can cause immediate kernel oops/panic from invalid pointer dereferences or list corruption, and the race can be retriggered for sustained denial of service on shared cloud/container hosts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:21.246Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4addb102154b7cf6e2310ccbe20c3c08619e520d"
},
{
"url": "https://git.kernel.org/stable/c/894a9300d7fb2e2951da92e565ae6de7ddfb0a69"
},
{
"url": "https://git.kernel.org/stable/c/1e5ca82eee59caca6988f9d6e859786aab8a5fa0"
},
{
"url": "https://git.kernel.org/stable/c/310b5a537a78c358a4cd244bd767c1a517a05459"
},
{
"url": "https://git.kernel.org/stable/c/806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08"
},
{
"url": "https://git.kernel.org/stable/c/8037c5b2b2a447df52542f4d8535895d837bdcbd"
},
{
"url": "https://git.kernel.org/stable/c/611e7821c4f83a671455658797336faecc3a5196"
},
{
"url": "https://git.kernel.org/stable/c/5457025fa8ca3c0d2732109513de839e3e797190"
}
],
"title": "sched/psi: Shut down rtpoll_timer in psi_cgroup_free()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74594",
"datePublished": "2026-08-22T15:31:44.894Z",
"dateReserved": "2026-08-15T05:44:03.919Z",
"dateUpdated": "2026-10-16T19:05:59.691Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80983 (GCVE-0-2026-80983)
Vulnerability from cvelistv5
Published
2026-09-11 19:42
Modified
2026-10-19 08:46
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix socket refcount leak in smc_switch_conns()
smc_switch_conns() takes a reference on the SMC socket before dropping
lgr->conns_lock, so the connection stays alive while the CDC slot is
fetched:
sock_hold(&smc->sk);
read_unlock_bh(&lgr->conns_lock);
/* pre-fetch buffer outside of send_lock, might sleep */
rc = smc_cdc_get_free_slot(conn, to_lnk, &wr_buf, NULL, &pend);
if (rc)
goto err_out;
The err_out label only drops the wr_tx link reference, so this early exit
returns without the matching sock_put(). The second error exit is not
affected, because sock_put() has already run by then.
A leaked sk_refcnt means the smc_sock is never destroyed. Its send and
receive buffers stay allocated, and for a user socket the reference held
on the network namespace is never released, so the netns can no longer be
torn down.
smc_cdc_get_free_slot() fails when the target link goes down or when the
connection has been killed while the switch is in progress. Both are
reachable during the link failover this function implements, so the leak
is triggered by the same hardware events that make smc_switch_conns() run
in the first place.
Restructure so there is a single sock_put() covering both outcomes,
instead of adding a second one to the error path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a Version: 99f19566b1c4d3dc4d934ee2ef43faadebb56d70 Version: 0d9ddf515cde793841f738490037560fd6559c63 Version: 5.10.90 ≤ Version: 5.14.14 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a3378466704e0bbe93aef9769552dca7673a7eb6",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "e20227019d9da73f8fdf16f0951c2e188c84933f",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "09d7a9e162ee1a269878c126aee3d7eff43e4130",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "84dea0585f6b538ae895a8b1d025f4897737f3b1",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "d89dc1bd8845c669a700eee58c64ebd3cc1b6d2d",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "d9a879ac25958bdaecb669ce70e58f8e2ff170de",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"lessThan": "719296c4aa8213d4ac8002e77d5956d436bc98d0",
"status": "affected",
"version": "95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a",
"versionType": "git"
},
{
"status": "affected",
"version": "99f19566b1c4d3dc4d934ee2ef43faadebb56d70",
"versionType": "git"
},
{
"status": "affected",
"version": "0d9ddf515cde793841f738490037560fd6559c63",
"versionType": "git"
},
{
"lessThan": "5.11",
"status": "affected",
"version": "5.10.90",
"versionType": "semver"
},
{
"lessThan": "5.15",
"status": "affected",
"version": "5.14.14",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/smc_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.10.90",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.14.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix socket refcount leak in smc_switch_conns()\n\nsmc_switch_conns() takes a reference on the SMC socket before dropping\nlgr-\u003econns_lock, so the connection stays alive while the CDC slot is\nfetched:\n\n sock_hold(\u0026smc-\u003esk);\n read_unlock_bh(\u0026lgr-\u003econns_lock);\n /* pre-fetch buffer outside of send_lock, might sleep */\n rc = smc_cdc_get_free_slot(conn, to_lnk, \u0026wr_buf, NULL, \u0026pend);\n if (rc)\n goto err_out;\n\nThe err_out label only drops the wr_tx link reference, so this early exit\nreturns without the matching sock_put(). The second error exit is not\naffected, because sock_put() has already run by then.\n\nA leaked sk_refcnt means the smc_sock is never destroyed. Its send and\nreceive buffers stay allocated, and for a user socket the reference held\non the network namespace is never released, so the netns can no longer be\ntorn down.\n\nsmc_cdc_get_free_slot() fails when the target link goes down or when the\nconnection has been killed while the switch is in progress. Both are\nreachable during the link failover this function implements, so the leak\nis triggered by the same hardware events that make smc_switch_conns() run\nin the first place.\n\nRestructure so there is a single sock_put() covering both outcomes,\ninstead of adding a second one to the error path."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:07.693Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a3378466704e0bbe93aef9769552dca7673a7eb6"
},
{
"url": "https://git.kernel.org/stable/c/e20227019d9da73f8fdf16f0951c2e188c84933f"
},
{
"url": "https://git.kernel.org/stable/c/09d7a9e162ee1a269878c126aee3d7eff43e4130"
},
{
"url": "https://git.kernel.org/stable/c/84dea0585f6b538ae895a8b1d025f4897737f3b1"
},
{
"url": "https://git.kernel.org/stable/c/d89dc1bd8845c669a700eee58c64ebd3cc1b6d2d"
},
{
"url": "https://git.kernel.org/stable/c/d9a879ac25958bdaecb669ce70e58f8e2ff170de"
},
{
"url": "https://git.kernel.org/stable/c/719296c4aa8213d4ac8002e77d5956d436bc98d0"
}
],
"title": "net/smc: fix socket refcount leak in smc_switch_conns()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80983",
"datePublished": "2026-09-11T19:42:42.912Z",
"dateReserved": "2026-08-26T14:34:25.811Z",
"dateUpdated": "2026-10-19T08:46:07.693Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89548 (GCVE-0-2026-89548)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: always drain cache_cleaner before destroying a cache_detail
sunrpc_destroy_cache_detail() only cancels the global cache_cleaner
delayed_work when cache_list is empty. During per-netns teardown
cache_list is never empty because init_net's caches remain registered,
so the cancel never fires. After unlink, the caller proceeds to
cache_destroy_net() which kfrees the cache_detail while cache_clean()
may still hold a dangling pointer to it. The result is a
use-after-free: cache_dequeue() takes cd->queue_lock on freed memory,
and cache_put() dereferences cd->cache_put as a function pointer from
freed slab.
Drop the list_empty guard so that cancel_delayed_work_sync() always
runs, ensuring any in-flight cache_clean() completes before the
cache_detail is freed. Re-arm the cleaner afterwards if other caches
are still registered.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 Version: 820f9442e711a81749e70c40f149fc54c4ce0ca8 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89548",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:39.938577Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:42.819Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "dec787a15c96a5665e9ffc61b429a6a4ab26e6b9",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "5eea874a696201c31e7c2d7badbfa0d90e9961b5",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "cf239de7fdcc8336259b01ea4bcf650dadad1040",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "6d74ecc2be120a0c300b224b7649fe93c0453714",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "9d44836f60c8c29bcdb1471fd9202387c642a890",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "2e861ce2aaa468351a6a47c4cbb4971ebb740c7b",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "3d60fdf951143d6ef4e352e2f8eb852286701726",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
},
{
"lessThan": "f42d0fda0c67695db6bc704b04b7c10240805377",
"status": "affected",
"version": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.4"
},
{
"lessThan": "3.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: always drain cache_cleaner before destroying a cache_detail\n\nsunrpc_destroy_cache_detail() only cancels the global cache_cleaner\ndelayed_work when cache_list is empty. During per-netns teardown\ncache_list is never empty because init_net\u0027s caches remain registered,\nso the cancel never fires. After unlink, the caller proceeds to\ncache_destroy_net() which kfrees the cache_detail while cache_clean()\nmay still hold a dangling pointer to it. The result is a\nuse-after-free: cache_dequeue() takes cd-\u003equeue_lock on freed memory,\nand cache_put() dereferences cd-\u003ecache_put as a function pointer from\nfreed slab.\n\nDrop the list_empty guard so that cancel_delayed_work_sync() always\nruns, ensuring any in-flight cache_clean() completes before the\ncache_detail is freed. Re-arm the cleaner afterwards if other caches\nare still registered."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - sunrpc_destroy_cache_detail() runs from per-netns teardown (sunrpc_exit_net, nfsd_net_exit, gss_svc_shutdown_net) when a local task creates and destroys a network namespace; remote NFS/RPC traffic populates caches but never frees cache_detail.\nAC:L - The attacker controls both sides of the race: unshare of a user+net ns queues cache_cleaner at delay 0, writes expired entries via /proc/net/rpc/*/channel (ip_map_parse even calls cache_flush()), and drops the netns so destroy kfree()s cache_detail while cache_clean() still holds it.\nPR:L - Unprivileged users can create a user+network namespace (unshare -Urn). /proc/net/rpc cache files inherit userns-root ownership from proc_net_ns_init, so the attacker can populate and destroy those caches without init-namespace root.\nUI:N - The attacker creates the namespace, writes the cache channel, and tears the netns down from their own processes; no victim mount, file open, or other interaction is required.\nS:U - The use-after-free corrupts host kernel heap (struct cache_detail) within the same kernel security authority and is not a VM escape, IOMMU bypass, or other cross-boundary impact.\nC:H - cache_clean() calls cache_dequeue() and cache_put() on a kfree\u0027d cache_detail; per kernel UAF guidance, reclaim of that slab object yields an arbitrary kernel read primitive.\nI:H - cache_put() invokes cd-\u003ecache_put from the freed slab as a function pointer, and cache_dequeue() takes cd-\u003equeue_lock on freed memory, giving a control-flow hijack/write primitive.\nA:H - Use-after-free of cache_detail (spinlock on freed queue_lock and an indirect call through freed cache_put) causes a kernel oops or panic even when not fully exploited for code execution."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:41.057Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/dec787a15c96a5665e9ffc61b429a6a4ab26e6b9"
},
{
"url": "https://git.kernel.org/stable/c/5eea874a696201c31e7c2d7badbfa0d90e9961b5"
},
{
"url": "https://git.kernel.org/stable/c/cf239de7fdcc8336259b01ea4bcf650dadad1040"
},
{
"url": "https://git.kernel.org/stable/c/6d74ecc2be120a0c300b224b7649fe93c0453714"
},
{
"url": "https://git.kernel.org/stable/c/9d44836f60c8c29bcdb1471fd9202387c642a890"
},
{
"url": "https://git.kernel.org/stable/c/2e861ce2aaa468351a6a47c4cbb4971ebb740c7b"
},
{
"url": "https://git.kernel.org/stable/c/3d60fdf951143d6ef4e352e2f8eb852286701726"
},
{
"url": "https://git.kernel.org/stable/c/f42d0fda0c67695db6bc704b04b7c10240805377"
}
],
"title": "SUNRPC: always drain cache_cleaner before destroying a cache_detail",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89548",
"datePublished": "2026-09-11T19:44:23.298Z",
"dateReserved": "2026-09-11T19:38:34.723Z",
"dateUpdated": "2026-10-19T08:48:41.057Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89551 (GCVE-0-2026-89551)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: xdr_buf_trim: clamp buf->len to avoid underflow
xdr_buf_trim() trims `len` bytes from the tail of an xdr_buf by
walking the tail, pages, and head iovecs. Each per-section step
uses min_t() so it never removes more bytes than that section
holds, but the final accounting at the fix_len label subtracts the
total bytes actually consumed from buf->len without any clamp:
fix_len:
buf->len -= (len - trim);
When the caller has set buf->len to a value smaller than the sum
of the iov_lens, (len - trim) can exceed buf->len and the unsigned
subtraction wraps to near UINT_MAX. gss_krb5_unwrap_v2() reaches
xdr_buf_trim() in exactly that state:
buf->head[0].iov_len -= GSS_KRB5_TOK_HDR_LEN + headskip;
buf->len = len - (GSS_KRB5_TOK_HDR_LEN + headskip);
xdr_buf_trim(buf, ec + GSS_KRB5_TOK_HDR_LEN + tailskip);
buf->len is a small wire-derived value while the iov_lens are at
page scale, so the per-section loops legitimately consume far more
bytes than buf->len records. The wrapped buf->len then propagates
as the authoritative stream bound into every downstream XDR
decoder.
Fix by clamping the decrement so buf->len bottoms out at zero:
buf->len -= min_t(unsigned int, buf->len, len - trim);
On the normal path where the iov_lens sum to buf->len, (len - trim)
is always <= buf->len and the result is identical to before. No
callers change behavior outside the underflow case.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 Version: 4c190e2f913f038c9c91ee63b59cd037260ba353 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89551",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:51.789342Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:43.285Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a3d77bcd974b8625d16bddf448cb3a1b5e37049c",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "fa16bbe987b47e771e52eeb1b4540f18d92496ac",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "a924ac4c78afab71bf82641afa3b62e0c4a8b55e",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "4bf59cb0ea5b0ddfbc46a1dc2fa78fc8b9986ce4",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "e6267cccd7b05cc514e57f2160aa8db85f5c2701",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "ad0cce80d4af2f74674e8b635d97aa3880e83da8",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "85e9602650e9df07190abe817cee3b4d9bc3df17",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
},
{
"lessThan": "3f491306dcb673ff5e78e1044ba450c58978774e",
"status": "affected",
"version": "4c190e2f913f038c9c91ee63b59cd037260ba353",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xdr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.9"
},
{
"lessThan": "3.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: xdr_buf_trim: clamp buf-\u003elen to avoid underflow\n\nxdr_buf_trim() trims `len` bytes from the tail of an xdr_buf by\nwalking the tail, pages, and head iovecs. Each per-section step\nuses min_t() so it never removes more bytes than that section\nholds, but the final accounting at the fix_len label subtracts the\ntotal bytes actually consumed from buf-\u003elen without any clamp:\n\n fix_len:\n buf-\u003elen -= (len - trim);\n\nWhen the caller has set buf-\u003elen to a value smaller than the sum\nof the iov_lens, (len - trim) can exceed buf-\u003elen and the unsigned\nsubtraction wraps to near UINT_MAX. gss_krb5_unwrap_v2() reaches\nxdr_buf_trim() in exactly that state:\n\n buf-\u003ehead[0].iov_len -= GSS_KRB5_TOK_HDR_LEN + headskip;\n buf-\u003elen = len - (GSS_KRB5_TOK_HDR_LEN + headskip);\n xdr_buf_trim(buf, ec + GSS_KRB5_TOK_HDR_LEN + tailskip);\n\nbuf-\u003elen is a small wire-derived value while the iov_lens are at\npage scale, so the per-section loops legitimately consume far more\nbytes than buf-\u003elen records. The wrapped buf-\u003elen then propagates\nas the authoritative stream bound into every downstream XDR\ndecoder.\n\nFix by clamping the decrement so buf-\u003elen bottoms out at zero:\n\n buf-\u003elen -= min_t(unsigned int, buf-\u003elen, len - trim);\n\nOn the normal path where the iov_lens sum to buf-\u003elen, (len - trim)\nis always \u003c= buf-\u003elen and the result is identical to before. No\ncallers change behavior outside the underflow case."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - xdr_buf_trim() is reached from nfsd RPCSEC_GSS privacy unwrap on TCP/2049 (svcauth_gss_unwrap_priv \u2192 gss_unwrap \u2192 gss_krb5_unwrap_v2) and from the NFS client\u0027s gss_unwrap_resp_priv() on every krb5p reply, so a remote NFS peer delivers the wrap token over the network.\nAC:L - A peer holding the GSS session keys can encrypt a RFC 4121 wrap token so that after decrypt, buf-\u003elen is a small wire-derived value while iov_lens remain page-scale; xdr_buf_trim() then subtracts more than buf-\u003elen and wraps, with no race or layout outside attacker control.\nPR:N - A malicious or compromised NFS server that already shares a krb5p GSS context needs no account or capability on the victim client; ordinary krb5p replies and NFSv4.0 GSS callbacks are processed without local privileges on that host.\nUI:N - Once a krb5p NFS mount exists, the client unwraps every privacy-protected reply and NFSv4.0 GSS callback with no further mount, click, or open; idle revalidations and server-driven callbacks are sufficient.\nS:U - The wrapped buf-\u003elen and subsequent XDR decode run in the host kernel that processed the RPC and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - The underflowed buf-\u003elen (~UINT_MAX) becomes the authoritative stream bound, and on nfsd xdr-\u003enwords also underflows via saved_len - buf-\u003elen, so later xdr_read_pages/xdr_shrink_bufhead and NFS XDR decoders read far past the receive buffer into adjacent kernel memory.\nI:H - xdr_shrink_bufhead() calls xdr_buf_head_shift_right() with a near-UINT_MAX length derived from the wrapped buf-\u003elen, and garbage xdr_stream_pos values can index the svc pages[] array out of bounds, an out-of-bounds write exploitable for control-flow hijacking.\nA:H - Those unbounded XDR copies and the inconsistent xdr_buf (wrapped length versus iov_lens) oops or panic nfsd or the NFS client, and the peer can repeat the request at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:44.059Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a3d77bcd974b8625d16bddf448cb3a1b5e37049c"
},
{
"url": "https://git.kernel.org/stable/c/fa16bbe987b47e771e52eeb1b4540f18d92496ac"
},
{
"url": "https://git.kernel.org/stable/c/a924ac4c78afab71bf82641afa3b62e0c4a8b55e"
},
{
"url": "https://git.kernel.org/stable/c/4bf59cb0ea5b0ddfbc46a1dc2fa78fc8b9986ce4"
},
{
"url": "https://git.kernel.org/stable/c/e6267cccd7b05cc514e57f2160aa8db85f5c2701"
},
{
"url": "https://git.kernel.org/stable/c/ad0cce80d4af2f74674e8b635d97aa3880e83da8"
},
{
"url": "https://git.kernel.org/stable/c/85e9602650e9df07190abe817cee3b4d9bc3df17"
},
{
"url": "https://git.kernel.org/stable/c/3f491306dcb673ff5e78e1044ba450c58978774e"
}
],
"title": "SUNRPC: xdr_buf_trim: clamp buf-\u003elen to avoid underflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89551",
"datePublished": "2026-09-11T19:44:25.327Z",
"dateReserved": "2026-09-11T19:38:34.723Z",
"dateUpdated": "2026-10-19T08:48:44.059Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92525 (GCVE-0-2026-92525)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:04
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Validate num_sge/cur_sge before indexing wqe->dma.sge[]
For a user QP, qp->sq.queue is a ring the application writes directly,
so rxe_post_send() takes the is_user branch and only schedules send_task
without validating the WQE. rxe_requester() consumes it in place via
req_next_wqe() and calls copy_data(), which indexes
&wqe->dma.sge[cur_sge] with the attacker-controlled num_sge/cur_sge.
Only the kernel path bounds num_sge (validate_send_wr()); the user WQE
is never checked, so a local unprivileged user can post a WQE with an
out-of-range cur_sge or oversized num_sge and force an out-of-bounds
read of the per-WQE sge array in copy_data() (vmalloc OOB read, local
DoS).
Bound num_sge to qp->sq.max_sge in rxe_requester() before use, the way
get_srq_wqe() already guards SRQ entries, and bound cur_sge only when
the WQE carries payload (dma.resid): copy_data() returns early on a
zero-length copy before touching dma->sge[], so a zero-payload WQE --
the only kind a max_sge == 0 QP can post -- stays valid.
Reproduced under KASAN; the vmalloc-out-of-bounds in copy_data() is gone.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 Version: 8700e3e7c4857d28ebaa824509934556da0b3e76 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_req.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "69d3ccf6543f24c452a020c8028ca6f46cb1e8db",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "750bba6ce9bb0b11d6a166031c9728ae3f21765e",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "c067aa7b231e91a18a1b3666201ab14dfb00347a",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "13cb7160e5b791f5e3ecf9311cf32849fe7e9b62",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "5ec111ddc1f727c1e4580aea459842ae5a8359a5",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "126c757e4cd46f866ddc283143b58eb4d9bf52cd",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_req.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Validate num_sge/cur_sge before indexing wqe-\u003edma.sge[]\n\nFor a user QP, qp-\u003esq.queue is a ring the application writes directly,\nso rxe_post_send() takes the is_user branch and only schedules send_task\nwithout validating the WQE. rxe_requester() consumes it in place via\nreq_next_wqe() and calls copy_data(), which indexes\n\u0026wqe-\u003edma.sge[cur_sge] with the attacker-controlled num_sge/cur_sge.\nOnly the kernel path bounds num_sge (validate_send_wr()); the user WQE\nis never checked, so a local unprivileged user can post a WQE with an\nout-of-range cur_sge or oversized num_sge and force an out-of-bounds\nread of the per-WQE sge array in copy_data() (vmalloc OOB read, local\nDoS).\n\nBound num_sge to qp-\u003esq.max_sge in rxe_requester() before use, the way\nget_srq_wqe() already guards SRQ entries, and bound cur_sge only when\nthe WQE carries payload (dma.resid): copy_data() returns early on a\nzero-length copy before touching dma-\u003esge[], so a zero-payload WQE --\nthe only kind a max_sge == 0 QP can post -- stays valid.\n\nReproduced under KASAN; the vmalloc-out-of-bounds in copy_data() is gone."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker writes dma.num_sge/dma.cur_sge into the mmap\u0027d send queue (rxe_init_sq\u2192vmalloc_user, rxe_mmap); ib_uverbs_post_send only doorbells rxe_post_send, which for qp-\u003eis_user skips validate_send_wr() and schedules rxe_requester(). Inbound RoCE/UDP packets do not carry these WQE index fields.\nAC:L - The attacker fully controls the mmap\u0027d SQ slot (cur_sge, num_sge, resid, opcode) and the producer_index, then issues IB_USER_VERBS_CMD_POST_SEND; rxe_requester\u2192finish_packet\u2192copy_data indexes sge[] with no race and no victim-side state.\nPR:L - uverbs_devnode() publishes /dev/infiniband/uverbsN as 0666; ib_uverbs_open, ib_uverbs_create_qp, ib_uverbs_modify_qp and ib_uverbs_post_send require no capability for IB_QPT_UD/RC, so an unprivileged local user can create a user QP, mmap the SQ and post the malformed WQE.\nUI:N - The attacker creates their own user QP, writes the malformed send WQE into their mmap\u0027d SQ and doorbells post_send; no other user must mount, open a file, or otherwise act.\nS:U - The vmalloc OOB in copy_data() runs in the host kernel rxe requester on behalf of the local process and does not cross a VM, guest-to-host, or IOMMU/DMA authority boundary.\nC:H - copy_data() does \u0026dma-\u003esge[dma-\u003ecur_sge] with attacker-controlled u32 cur_sge/num_sge into the vmalloc SQ and then reads sge-\u003elength/lkey/addr; an oversized num_sge also lets the sge++ loop walk unbounded kernel vmalloc (KASAN vmalloc-out-of-bounds).\nI:N - finish_packet() calls copy_data(..., RXE_FROM_MR_OBJ), which only reads MR contents into the SKB; the OOB is a read of sge descriptors, dma updates stay in the attacker\u0027s mmap\u0027d WQE, and lookup_mr/rxe_mr_copy remain confined to MRs in the caller\u0027s PD.\nA:H - Indexing \u0026wqe-\u003edma.sge[cur_sge] past the vmalloc_user send-queue object is a KASAN-reproduced vmalloc-out-of-bounds in copy_data() that oopses/panics the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:04:31.432Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/69d3ccf6543f24c452a020c8028ca6f46cb1e8db"
},
{
"url": "https://git.kernel.org/stable/c/750bba6ce9bb0b11d6a166031c9728ae3f21765e"
},
{
"url": "https://git.kernel.org/stable/c/c067aa7b231e91a18a1b3666201ab14dfb00347a"
},
{
"url": "https://git.kernel.org/stable/c/13cb7160e5b791f5e3ecf9311cf32849fe7e9b62"
},
{
"url": "https://git.kernel.org/stable/c/5ec111ddc1f727c1e4580aea459842ae5a8359a5"
},
{
"url": "https://git.kernel.org/stable/c/126c757e4cd46f866ddc283143b58eb4d9bf52cd"
}
],
"title": "RDMA/rxe: Validate num_sge/cur_sge before indexing wqe-\u003edma.sge[]",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92525",
"datePublished": "2026-09-17T16:10:30.789Z",
"dateReserved": "2026-09-16T12:21:13.875Z",
"dateUpdated": "2026-10-19T09:04:31.432Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72130 (GCVE-0-2026-72130)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-auth: reject short AUTH_RECEIVE buffers
nvmet_execute_auth_receive() trusts the AUTH_RECEIVE allocation length
after checking only that it is nonzero and matches the transfer length.
In the SUCCESS1 and FAILURE1/default states, that lets a remote NVMe-oF
initiator reach the fixed-size DH-HMAC-CHAP response builders with a
kmalloc() buffer shorter than the response, so nvmet_auth_success1() and
nvmet_auth_failure1() write past the allocation; both only WARN_ON the
short length and then format the message anyway.
Impact: A remote NVMe-oF initiator with access to an auth-enabled target
can trigger a 16-byte heap out-of-bounds write via a one-byte
AUTH_RECEIVE allocation length.
Compute the minimum response length for the current DH-HMAC-CHAP step in
nvmet_auth_receive_data_len() and report a zero data length when the
host-supplied allocation length is shorter, so the existing zero-length
check in nvmet_execute_auth_receive() rejects the command before any
builder runs. The SUCCESS1 minimum is sizeof(struct
nvmf_auth_dhchap_success1_data) plus the HMAC hash length, because the
response hash is written into the rval[] flexible-array tail, so the
minimum is state dependent rather than a flat sizeof. CHALLENGE keeps its
existing variable-length guard in nvmet_auth_challenge().
This is reachable only when in-band DH-HMAC-CHAP authentication is
configured on the target.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72130",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:42:34.388225Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:58.498Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/fabrics-cmd-auth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "584d7d14d9b40b080b1195cec83de86ade63343e",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "80bf7b7f676e3987bbe06af3c359bd56ac91a5a9",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "2eaa3ad450141cfcf187bb43cb8335eb336b5f87",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "bc111698b46e43eddd8664cceaa621cd559e99a0",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
},
{
"lessThan": "779575bc35c687697ba69e904f2cd22e60112534",
"status": "affected",
"version": "db1312dd95488b5e6ff362ff66fcf953a46b1821",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/fabrics-cmd-auth.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-auth: reject short AUTH_RECEIVE buffers\n\nnvmet_execute_auth_receive() trusts the AUTH_RECEIVE allocation length\nafter checking only that it is nonzero and matches the transfer length.\nIn the SUCCESS1 and FAILURE1/default states, that lets a remote NVMe-oF\ninitiator reach the fixed-size DH-HMAC-CHAP response builders with a\nkmalloc() buffer shorter than the response, so nvmet_auth_success1() and\nnvmet_auth_failure1() write past the allocation; both only WARN_ON the\nshort length and then format the message anyway.\n\nImpact: A remote NVMe-oF initiator with access to an auth-enabled target\ncan trigger a 16-byte heap out-of-bounds write via a one-byte\nAUTH_RECEIVE allocation length.\n\nCompute the minimum response length for the current DH-HMAC-CHAP step in\nnvmet_auth_receive_data_len() and report a zero data length when the\nhost-supplied allocation length is shorter, so the existing zero-length\ncheck in nvmet_execute_auth_receive() rejects the command before any\nbuilder runs. The SUCCESS1 minimum is sizeof(struct\nnvmf_auth_dhchap_success1_data) plus the HMAC hash length, because the\nresponse hash is written into the rval[] flexible-array tail, so the\nminimum is state dependent rather than a flat sizeof. CHALLENGE keeps its\nexisting variable-length guard in nvmet_auth_challenge().\n\nThis is reachable only when in-band DH-HMAC-CHAP authentication is\nconfigured on the target."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nvmet DH-HMAC-CHAP AUTH_RECEIVE handling reached by remote NVMe-oF initiators over network transports (nvmet-tcp/RDMA/FC); malicious allocation length arrives in a Fabrics command capsule from the network.\nAC:L - Once an auth-enabled target is reachable, the attacker fully controls AUTH_RECEIVE allocation length and can reliably reach vulnerable states (e.g. default NEGOTIATE branch or FAILURE1) without conditions beyond their control.\nPR:N - Exploitation occurs on the pre-authentication DH-HMAC-CHAP handshake before credentials are verified; no Linux privileges on the target are required, only network access to an auth-configured NVMe-oF target port.\nUI:N - No victim user action is required beyond the administrator having already deployed an NVMe-oF target; exploitation is driven entirely by attacker-sent Fabrics authentication commands.\nS:U - Impact is kernel heap memory corruption within the NVMe target subsystem on the same host; it does not cross a VM/hypervisor or IOMMU security boundary by itself.\nC:H - A controlled heap out-of-bounds write (up to 16 bytes plus optional HMAC tail in SUCCESS1) can corrupt adjacent kmalloc objects and be leveraged for kernel information disclosure, per memory-corruption guidance.\nI:H - The vulnerability is a heap out-of-bounds write in kernel context; such corruption is exploitable for arbitrary memory modification and potential code execution, not merely a bounded logic error.\nA:H - Heap corruption can cause kernel oops/panic, and the FAILURE1 AUTH_RECEIVE completion path calls nvmet_ctrl_fatal_error(), taking down the NVMe controller and denying service to connected initiators."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:23.088Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/584d7d14d9b40b080b1195cec83de86ade63343e"
},
{
"url": "https://git.kernel.org/stable/c/80bf7b7f676e3987bbe06af3c359bd56ac91a5a9"
},
{
"url": "https://git.kernel.org/stable/c/2eaa3ad450141cfcf187bb43cb8335eb336b5f87"
},
{
"url": "https://git.kernel.org/stable/c/bc111698b46e43eddd8664cceaa621cd559e99a0"
},
{
"url": "https://git.kernel.org/stable/c/779575bc35c687697ba69e904f2cd22e60112534"
}
],
"title": "nvmet-auth: reject short AUTH_RECEIVE buffers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72130",
"datePublished": "2026-08-15T05:53:06.604Z",
"dateReserved": "2026-08-09T03:40:39.907Z",
"dateUpdated": "2026-10-21T12:44:23.088Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89706 (GCVE-0-2026-89706)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-19 08:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfsd: Reset write verifier when async COPY writeback fails
Async COPY captures nn->writeverf at request time and reports it to
the client via CB_OFFLOAD after the worker kthread completes. When
the post-copy vfs_fsync_range() or filemap_check_wb_err() in
_nfsd_copy_file_range() reports an error, the worker correctly
leaves NFSD4_COPY_F_COMMITTED clear so that CB_OFFLOAD encodes
wr_stable_how as NFS_UNSTABLE, but the server's write verifier is
not rotated.
A client that receives NFS_UNSTABLE in CB_OFFLOAD follows up with
COMMIT to make the copied data durable. With the verifier
unchanged, COMMIT returns the same value the client just received
via CB_OFFLOAD, and the client concludes the copy is durable --
silently dropping the data whose writeback in fact failed. This
violates the UNSTABLE+COMMIT durability contract (RFC 7862 section
15.1, RFC 8881 section 18.32) and matches the bug just fixed in
nfsd_vfs_write() and nfsd_commit().
Rotate nn->writeverf at the writeback-failure site. The async COPY
worker has no svc_rqst, so commit_reset_write_verifier() is not
available here; calling nfsd_reset_write_verifier() directly
mirrors the trace-less reset already used by
nfsd_file_check_write_error() for the same purpose. Filter out
-EAGAIN and -ESTALE, matching commit_reset_write_verifier(), since
neither indicates a durable-storage failure.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 817c6eb975798647c4bbbfc9eb288aa413ec7f65 Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d Version: 5.10.220 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cc5f7cef0659a27c13dd33edd8e2f79257b095c6",
"status": "affected",
"version": "817c6eb975798647c4bbbfc9eb288aa413ec7f65",
"versionType": "git"
},
{
"lessThan": "c6d2f6372c7e0f76b9c148ff7696aec64da0b5b7",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "8a08ffe73eb2aa6bc6f88763da7e2b55bab6493a",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "6b13d26cc21b6320a3c61d5e4cee2ce9a589b181",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "31d4d0a62ec4bafbcdbad142f11ab1f90794b1d0",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "591134e059e3456180244a826d6917cdc183140b",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "bf0cd31a9abcb728c17d79b4c2cc533612a8b6af",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "f5cb2276954cb80987a93ef9f9dfbfdbfc0f10b9",
"status": "affected",
"version": "eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "5.10.220",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/nfsd/nfs4proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.10.220",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: Reset write verifier when async COPY writeback fails\n\nAsync COPY captures nn-\u003ewriteverf at request time and reports it to\nthe client via CB_OFFLOAD after the worker kthread completes. When\nthe post-copy vfs_fsync_range() or filemap_check_wb_err() in\n_nfsd_copy_file_range() reports an error, the worker correctly\nleaves NFSD4_COPY_F_COMMITTED clear so that CB_OFFLOAD encodes\nwr_stable_how as NFS_UNSTABLE, but the server\u0027s write verifier is\nnot rotated.\n\nA client that receives NFS_UNSTABLE in CB_OFFLOAD follows up with\nCOMMIT to make the copied data durable. With the verifier\nunchanged, COMMIT returns the same value the client just received\nvia CB_OFFLOAD, and the client concludes the copy is durable --\nsilently dropping the data whose writeback in fact failed. This\nviolates the UNSTABLE+COMMIT durability contract (RFC 7862 section\n15.1, RFC 8881 section 18.32) and matches the bug just fixed in\nnfsd_vfs_write() and nfsd_commit().\n\nRotate nn-\u003ewriteverf at the writeback-failure site. The async COPY\nworker has no svc_rqst, so commit_reset_write_verifier() is not\navailable here; calling nfsd_reset_write_verifier() directly\nmirrors the trace-less reset already used by\nnfsd_file_check_write_error() for the same purpose. Filter out\n-EAGAIN and -ESTALE, matching commit_reset_write_verifier(), since\nneither indicates a durable-storage failure."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in nfsd\u0027s NFSv4.2 async COPY worker (_nfsd_copy_file_range), reached by sending a COMPOUND with OP_COPY (ca_synchronous=false) to the in-kernel NFS server over TCP/2049. No local access to the server is required.\nAC:L - A client can induce the writeback-failure path by filling the export or hitting quota so vfs_fsync_range()/filemap_check_wb_err() returns ENOSPC/EDQUOT after the copy dirties pages, then issue async COPY; CB_OFFLOAD UNSTABLE plus COMMIT with an unchanged verifier is the specified client sequence and needs no race.\nPR:N - Default nfsd deployments use AUTH_SYS/AUTH_NULL with IP-based exports and no cryptographic authentication, so any host allowed by the export can EXCHANGE_ID/CREATE_SESSION, OPEN source and destination files, and issue async COPY by asserting a uid.\nUI:N - The attacking NFS client issues COPY, receives CB_OFFLOAD, and sends COMMIT itself. No administrator or end-user action on the NFS server is required beyond nfsd already serving an NFSv4.2 export.\nS:U - Silent durability failure affects file data on the exported filesystem in the same kernel security authority as nfsd. This is not a VM escape, IOMMU bypass, or sandbox breakout.\nC:N - The defect only skips rotating nn-\u003ewriteverf after a failed COPY fsync; it does not read out-of-bounds, leak kernel memory, or disclose file contents beyond ordinary NFS access.\nI:H - vfs_fsync_range() consumes the writeback error, COMMIT then returns the same verifier, and the client drops the UNSTABLE copy as durable, silently discarding destination file data. Entire COPY ranges, including whole-file copies, can be lost while applications treat them as persisted.\nA:N - The missing verifier rotation does not oops, panic, deadlock, or hang nfsd; the server continues serving RPCs. Impact is incorrect durability reporting and data loss, not loss of the NFS service itself."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:19.292Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cc5f7cef0659a27c13dd33edd8e2f79257b095c6"
},
{
"url": "https://git.kernel.org/stable/c/c6d2f6372c7e0f76b9c148ff7696aec64da0b5b7"
},
{
"url": "https://git.kernel.org/stable/c/8a08ffe73eb2aa6bc6f88763da7e2b55bab6493a"
},
{
"url": "https://git.kernel.org/stable/c/6b13d26cc21b6320a3c61d5e4cee2ce9a589b181"
},
{
"url": "https://git.kernel.org/stable/c/31d4d0a62ec4bafbcdbad142f11ab1f90794b1d0"
},
{
"url": "https://git.kernel.org/stable/c/591134e059e3456180244a826d6917cdc183140b"
},
{
"url": "https://git.kernel.org/stable/c/bf0cd31a9abcb728c17d79b4c2cc533612a8b6af"
},
{
"url": "https://git.kernel.org/stable/c/f5cb2276954cb80987a93ef9f9dfbfdbfc0f10b9"
}
],
"title": "nfsd: Reset write verifier when async COPY writeback fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89706",
"datePublished": "2026-09-11T19:46:22.561Z",
"dateReserved": "2026-09-11T19:38:34.751Z",
"dateUpdated": "2026-10-19T08:51:19.292Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43272 (GCVE-0-2026-43272)
Vulnerability from cvelistv5
Published
2026-05-06 11:28
Modified
2026-10-21 12:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Fix possible dereference of uninitialized pointer
There is a pointer head_page in rb_meta_validate_events() which is not
initialized at the beginning of a function. This pointer can be dereferenced
if there is a failure during reader page validation. In this case the control
is passed to "invalid" label where the pointer is dereferenced in a loop.
To fix the issue initialize orig_head and head_page before calling
rb_validate_buffer.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a4afdff9c715af50cf6c3f2dc601932c2cea17a2",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "bc77986f3cb7476637052edf2d87137fa39f153d",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "d9942396845fef2369478c157b26738fe07142f6",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
},
{
"lessThan": "f1547779402c4cd67755c33616b7203baa88420b",
"status": "affected",
"version": "5f3b6e839f3ceb8d6ef02231ba9b5aca71b8bf55",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.16",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Fix possible dereference of uninitialized pointer\n\nThere is a pointer head_page in rb_meta_validate_events() which is not\ninitialized at the beginning of a function. This pointer can be dereferenced\nif there is a failure during reader page validation. In this case the control\nis passed to \"invalid\" label where the pointer is dereferenced in a loop.\n\nTo fix the issue initialize orig_head and head_page before calling\nrb_validate_buffer.\n\nFound by Linux Verification Center (linuxtesting.org) with SVACE."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:40:28.662Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a4afdff9c715af50cf6c3f2dc601932c2cea17a2"
},
{
"url": "https://git.kernel.org/stable/c/bc77986f3cb7476637052edf2d87137fa39f153d"
},
{
"url": "https://git.kernel.org/stable/c/d9942396845fef2369478c157b26738fe07142f6"
},
{
"url": "https://git.kernel.org/stable/c/f1547779402c4cd67755c33616b7203baa88420b"
}
],
"title": "ring-buffer: Fix possible dereference of uninitialized pointer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43272",
"datePublished": "2026-05-06T11:28:56.162Z",
"dateReserved": "2026-05-01T14:12:55.998Z",
"dateUpdated": "2026-10-21T12:40:28.662Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89525 (GCVE-0-2026-89525)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:48
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
udf: reject VAT indexes equal to the entry count
UDF 1.50 virtual partition mapping uses the VAT as an array of physical
block mappings. s_num_entries stores the number of entries in that array,
not the highest valid index. The valid VAT indexes are therefore below
s_num_entries.
udf_get_pblock_virt15() currently rejects only indexes greater than
s_num_entries. A crafted image can request index s_num_entries, pass the
bounds check, and make the kernel read one entry past the allocated VAT table.
Change the check to reject block >= s_num_entries, so the count is handled as
an exclusive upper bound.
A crafted UDF image reproduced this on origin/master commit
0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53 with a KASAN slab-out-of-bounds
report in udf_get_pblock_virt15().
Trail of Bits has a reproducer that triggers kernel panic demonstrating the bug, and can share it if needed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/udf/partition.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f64e01a90326bb85a3cc8aa0199931dc2f15b589",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8a8c1c42a34349a0626d910abbad5a29136446b7",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "19f36c6453cd88fe6d60ef36ab1f1cad8ddf4ce4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b77b83f5529a26d084d64ece98abd6f0cc86e053",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9193368408d792cec2057628d87862140fb1ce1c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b95c33a4e743874f1b0a45bf2aaa4da553552bd1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1bd7947f1463c21edafa256d0fbec5b99215e2b6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cac0cb07f29ccfb373fd4a36c81e908ef3ce608c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/udf/partition.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nudf: reject VAT indexes equal to the entry count\n\nUDF 1.50 virtual partition mapping uses the VAT as an array of physical\nblock mappings. s_num_entries stores the number of entries in that array,\nnot the highest valid index. The valid VAT indexes are therefore below\ns_num_entries.\n\nudf_get_pblock_virt15() currently rejects only indexes greater than\ns_num_entries. A crafted image can request index s_num_entries, pass the\nbounds check, and make the kernel read one entry past the allocated VAT table.\n\nChange the check to reject block \u003e= s_num_entries, so the count is handled as\nan exclusive upper bound.\n\nA crafted UDF image reproduced this on origin/master commit\n0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53 with a KASAN slab-out-of-bounds\nreport in udf_get_pblock_virt15().\n\nTrail of Bits has a reproducer that triggers kernel panic demonstrating the bug, and can share it if needed."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:16.507Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f64e01a90326bb85a3cc8aa0199931dc2f15b589"
},
{
"url": "https://git.kernel.org/stable/c/8a8c1c42a34349a0626d910abbad5a29136446b7"
},
{
"url": "https://git.kernel.org/stable/c/19f36c6453cd88fe6d60ef36ab1f1cad8ddf4ce4"
},
{
"url": "https://git.kernel.org/stable/c/b77b83f5529a26d084d64ece98abd6f0cc86e053"
},
{
"url": "https://git.kernel.org/stable/c/9193368408d792cec2057628d87862140fb1ce1c"
},
{
"url": "https://git.kernel.org/stable/c/b95c33a4e743874f1b0a45bf2aaa4da553552bd1"
},
{
"url": "https://git.kernel.org/stable/c/1bd7947f1463c21edafa256d0fbec5b99215e2b6"
},
{
"url": "https://git.kernel.org/stable/c/cac0cb07f29ccfb373fd4a36c81e908ef3ce608c"
}
],
"title": "udf: reject VAT indexes equal to the entry count",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89525",
"datePublished": "2026-09-11T19:44:06.296Z",
"dateReserved": "2026-09-11T19:38:34.719Z",
"dateUpdated": "2026-10-19T08:48:16.507Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64418 (GCVE-0-2026-64418)
Vulnerability from cvelistv5
Published
2026-07-25 08:50
Modified
2026-08-17 04:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm: shrinker: fix shrinker_info teardown race with expansion
expand_shrinker_info() iterates all visible memcgs under shrinker_mutex,
including memcgs that have not finished ->css_online() yet.
Once pn->shrinker_info has been published, teardown must stay serialized
with expand_shrinker_info() until that memcg is either fully online or no
longer visible to iteration. Today alloc_shrinker_info() breaks that rule
by dropping shrinker_mutex before freeing a partially initialized
shrinker_info array, which may cause the following race:
CPU0 CPU1
==== ====
css_create
--> list_add_tail_rcu(&css->sibling, &parent_css->children);
online_css
--> mem_cgroup_css_online
--> alloc_shrinker_info
--> alloc node0 info
rcu_assign_pointer(C->node0->shrinker_info, old0)
alloc node1 info -> FAIL -> goto err
mutex_unlock(shrinker_mutex)
shrinker_alloc()
--> shrinker_memcg_alloc
--> mutex_lock(shrinker_mutex)
expand_shrinker_info
--> mem_cgroup_iter see the memcg
expand_one_shrinker_info
--> old0 = C->node0->shrinker_info
memcpy(new->unit, old0->unit, ...);
free_shrinker_info
--> kvfree(old0);
/* double free !! */
kvfree_rcu(old0, rcu);
The same problem exists later in mem_cgroup_css_online(). If
alloc_shrinker_info() succeeds but a subsequent objcg allocation fails,
the free_objcg -> free_shrinker_info() unwind path tears down the already
published pn->shrinker_info arrays without shrinker_mutex. The
expand_one_shrinker_info() can race with that teardown in the same way,
leading to use-after-free or double-free of the old shrinker_info.
Fix this by serializing shrinker_info teardown with shrinker_mutex, and by
keeping alloc_shrinker_info() error cleanup inside the locked section.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/shrinker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b9a280a9a454ed514636351d53fe2a233dc5054b",
"status": "affected",
"version": "307bececcd1205bcb67a3c0d53a69db237ccc9d4",
"versionType": "git"
},
{
"lessThan": "6465ff3ce65131c774a312d450abe10f4b9f3875",
"status": "affected",
"version": "307bececcd1205bcb67a3c0d53a69db237ccc9d4",
"versionType": "git"
},
{
"lessThan": "284c267f013e45d8c89d9fb9373105dc8e6c0947",
"status": "affected",
"version": "307bececcd1205bcb67a3c0d53a69db237ccc9d4",
"versionType": "git"
},
{
"lessThan": "65476d31d8056e859c48580f82295ce159196ffe",
"status": "affected",
"version": "307bececcd1205bcb67a3c0d53a69db237ccc9d4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/shrinker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm: shrinker: fix shrinker_info teardown race with expansion\n\nexpand_shrinker_info() iterates all visible memcgs under shrinker_mutex,\nincluding memcgs that have not finished -\u003ecss_online() yet.\n\nOnce pn-\u003eshrinker_info has been published, teardown must stay serialized\nwith expand_shrinker_info() until that memcg is either fully online or no\nlonger visible to iteration. Today alloc_shrinker_info() breaks that rule\nby dropping shrinker_mutex before freeing a partially initialized\nshrinker_info array, which may cause the following race:\n\nCPU0 CPU1\n==== ====\n\ncss_create\n--\u003e list_add_tail_rcu(\u0026css-\u003esibling, \u0026parent_css-\u003echildren);\n online_css\n --\u003e mem_cgroup_css_online\n --\u003e alloc_shrinker_info\n --\u003e alloc node0 info\n rcu_assign_pointer(C-\u003enode0-\u003eshrinker_info, old0)\n alloc node1 info -\u003e FAIL -\u003e goto err\n mutex_unlock(shrinker_mutex)\n\n shrinker_alloc()\n --\u003e shrinker_memcg_alloc\n --\u003e mutex_lock(shrinker_mutex)\n expand_shrinker_info\n --\u003e mem_cgroup_iter see the memcg\n expand_one_shrinker_info\n --\u003e old0 = C-\u003enode0-\u003eshrinker_info\n memcpy(new-\u003eunit, old0-\u003eunit, ...);\n\n free_shrinker_info\n --\u003e kvfree(old0);\n\n /* double free !! */\n kvfree_rcu(old0, rcu);\n\nThe same problem exists later in mem_cgroup_css_online(). If\nalloc_shrinker_info() succeeds but a subsequent objcg allocation fails,\nthe free_objcg -\u003e free_shrinker_info() unwind path tears down the already\npublished pn-\u003eshrinker_info arrays without shrinker_mutex. The\nexpand_one_shrinker_info() can race with that teardown in the same way,\nleading to use-after-free or double-free of the old shrinker_info.\n\nFix this by serializing shrinker_info teardown with shrinker_mutex, and by\nkeeping alloc_shrinker_info() error cleanup inside the locked section."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable path is reachable through local cgroup mkdir operations raced against memcg-aware shrinker allocation, such as mounting new tmpfs instances.\nAC:L - An attacker can repeatedly create cgroups, induce allocation pressure, and concurrently allocate shrinkers, controlling both sides of the race and widening it through repetition.\nPR:L - An unprivileged user with a delegated cgroup v2 subtree can create memory cgroups, while user namespaces provide the capability needed to mount user-namespace-enabled filesystems.\nUI:N - Exploitation requires no action by another user once the attacker can execute the concurrent local operations.\nS:U - The corruption occurs within the kernel and represents ordinary local privilege escalation within the same security authority.\nC:H - The use-after-free and delayed double-free permit heap reuse and manipulation of dangling shrinker unit pointers, potentially enabling arbitrary kernel-memory disclosure.\nI:H - The dangling pointers, atomic operations on freed units, and double-free can provide arbitrary kernel-memory corruption and control-flow hijacking.\nA:H - The use-after-free or double-free can directly cause a kernel oops, panic, or other system-wide failure."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:17.788Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b9a280a9a454ed514636351d53fe2a233dc5054b"
},
{
"url": "https://git.kernel.org/stable/c/6465ff3ce65131c774a312d450abe10f4b9f3875"
},
{
"url": "https://git.kernel.org/stable/c/284c267f013e45d8c89d9fb9373105dc8e6c0947"
},
{
"url": "https://git.kernel.org/stable/c/65476d31d8056e859c48580f82295ce159196ffe"
}
],
"title": "mm: shrinker: fix shrinker_info teardown race with expansion",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64418",
"datePublished": "2026-07-25T08:50:57.594Z",
"dateReserved": "2026-07-19T15:36:31.786Z",
"dateUpdated": "2026-08-17T04:55:17.788Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97902 (GCVE-0-2026-97902)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-19 09:10
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fs: don't return -EINVAL for successful nested thaw
Commit 7366f8b6fc6a ("fs: handle freezing from multiple devices")
replaced the freeze_holders bitmask with per-holder counters to allow
nested freezes. In the bitmask version, a thaw that released a shared
hold while another holder remained returned 0. Since the rework,
thaw_super_locked() drops the freeze reference via freeze_dec() but
then returns -EINVAL when other freezers remain, misinforming the
caller: the thaw did succeed, the superblock just stays frozen for the
remaining holders.
This breaks bdev-initiated freezing. When a filesystem is frozen with
FIFREEZE and additionally frozen via bdev_freeze() -- which nests by
design, see fs_bdev_freeze() -- the subsequent bdev_thaw() receives
-EINVAL from the holder op although its freeze reference was dropped,
and therefore keeps bd_fsfreeze_count elevated. Then device-mapper's
unlock_fs() ignores bdev_thaw()'s return value, so nothing rebalances
the count. After the user's FITHAW and umount, the block device can
never be mounted again:
dm-1: Can't mount, blockdev is frozen
There is no way for userspace to drop the leaked count; only
destroying the block device (or a reboot) recovers the device.
Reproducer (any kernel since v6.8):
dmsetup create dut --table "0 $(blockdev --getsz "$DEV") linear $DEV 0"
mkfs.ext4 /dev/mapper/dut
mount /dev/mapper/dut /mnt
fsfreeze --freeze /mnt # freeze_ucount == 1
dmsetup suspend dut # bd_fsfreeze_count == 1, ucount == 2
dmsetup resume dut # ucount 2 -> 1, but thaw_super()
# returns -EINVAL, so bdev_thaw()
# keeps bd_fsfreeze_count at 1
fsfreeze --unfreeze /mnt # filesystem thaws fine
umount /mnt
mount /dev/mapper/dut /mnt # EBUSY, forever
The same happens with fsfreeze held across an LVM snapshot of the
origin volume.
fs_bdev_thaw()'s documentation already describes the intended
semantics: "If this function returns zero it doesn't mean that the
filesystem is unfrozen as it may have been frozen multiple times".
Restore them by returning 0 when a nested thaw drops its hold while
other freezers remain. Thawing without holding a freeze still fails
with -EINVAL as may_unfreeze() rejects that case before the reference
count is touched.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/super.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "111339816138f042a59778322f941edc26903484",
"status": "affected",
"version": "7366f8b6fc6aa21c4199cb5d337b023df69745b0",
"versionType": "git"
},
{
"lessThan": "76e478499913dc1f368aebe85b28b7d1265985ff",
"status": "affected",
"version": "7366f8b6fc6aa21c4199cb5d337b023df69745b0",
"versionType": "git"
},
{
"lessThan": "ff2a694f6613d54ebd77ba72583d4d94446f55bd",
"status": "affected",
"version": "7366f8b6fc6aa21c4199cb5d337b023df69745b0",
"versionType": "git"
},
{
"lessThan": "fe967191e5851ea79818c5fe4e781c3882139218",
"status": "affected",
"version": "7366f8b6fc6aa21c4199cb5d337b023df69745b0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/super.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"lessThan": "6.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs: don\u0027t return -EINVAL for successful nested thaw\n\nCommit 7366f8b6fc6a (\"fs: handle freezing from multiple devices\")\nreplaced the freeze_holders bitmask with per-holder counters to allow\nnested freezes. In the bitmask version, a thaw that released a shared\nhold while another holder remained returned 0. Since the rework,\nthaw_super_locked() drops the freeze reference via freeze_dec() but\nthen returns -EINVAL when other freezers remain, misinforming the\ncaller: the thaw did succeed, the superblock just stays frozen for the\nremaining holders.\n\nThis breaks bdev-initiated freezing. When a filesystem is frozen with\nFIFREEZE and additionally frozen via bdev_freeze() -- which nests by\ndesign, see fs_bdev_freeze() -- the subsequent bdev_thaw() receives\n-EINVAL from the holder op although its freeze reference was dropped,\nand therefore keeps bd_fsfreeze_count elevated. Then device-mapper\u0027s\nunlock_fs() ignores bdev_thaw()\u0027s return value, so nothing rebalances\nthe count. After the user\u0027s FITHAW and umount, the block device can\nnever be mounted again:\n\n dm-1: Can\u0027t mount, blockdev is frozen\n\nThere is no way for userspace to drop the leaked count; only\ndestroying the block device (or a reboot) recovers the device.\n\nReproducer (any kernel since v6.8):\n\n dmsetup create dut --table \"0 $(blockdev --getsz \"$DEV\") linear $DEV 0\"\n mkfs.ext4 /dev/mapper/dut\n mount /dev/mapper/dut /mnt\n fsfreeze --freeze /mnt # freeze_ucount == 1\n dmsetup suspend dut # bd_fsfreeze_count == 1, ucount == 2\n dmsetup resume dut # ucount 2 -\u003e 1, but thaw_super()\n # returns -EINVAL, so bdev_thaw()\n # keeps bd_fsfreeze_count at 1\n fsfreeze --unfreeze /mnt # filesystem thaws fine\n umount /mnt\n mount /dev/mapper/dut /mnt # EBUSY, forever\n\nThe same happens with fsfreeze held across an LVM snapshot of the\norigin volume.\n\nfs_bdev_thaw()\u0027s documentation already describes the intended\nsemantics: \"If this function returns zero it doesn\u0027t mean that the\nfilesystem is unfrozen as it may have been frozen multiple times\".\nRestore them by returning 0 when a nested thaw drops its hold while\nother freezers remain. Thawing without holding a freeze still fails\nwith -EINVAL as may_unfreeze() rejects that case before the reference\ncount is touched."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:10:28.572Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/111339816138f042a59778322f941edc26903484"
},
{
"url": "https://git.kernel.org/stable/c/76e478499913dc1f368aebe85b28b7d1265985ff"
},
{
"url": "https://git.kernel.org/stable/c/ff2a694f6613d54ebd77ba72583d4d94446f55bd"
},
{
"url": "https://git.kernel.org/stable/c/fe967191e5851ea79818c5fe4e781c3882139218"
}
],
"title": "fs: don\u0027t return -EINVAL for successful nested thaw",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97902",
"datePublished": "2026-09-25T10:22:29.259Z",
"dateReserved": "2026-09-25T10:18:58.200Z",
"dateUpdated": "2026-10-19T09:10:28.572Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72012 (GCVE-0-2026-72012)
Vulnerability from cvelistv5
Published
2026-08-15 05:51
Modified
2026-10-19 21:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tracing/osnoise: Call synchronize_rcu() when unregistering
This ensures that any RCU readers traversing the instance list
have finished, before releasing the reference on the tracer that
the instance points to.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 Version: a6ed2aee54644cfa2d04ca86308767f5c3a087e8 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72012",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:56.472823Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-667",
"description": "CWE-667 Improper Locking",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:09:12.782Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_osnoise.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "428cedade9b2cc8e48f00742df0cfd770e77a803",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
},
{
"lessThan": "3c693635bb7b3a9b6645831a84fed2af46cdf249",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
},
{
"lessThan": "38366140dc8ee3568c7f0191d517e117963bd580",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
},
{
"lessThan": "fad36954b29592ce463254179c3043697678481f",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
},
{
"lessThan": "dd0160a0842337f12e7694d68b184050afc6d3a4",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
},
{
"lessThan": "fe58f457ad8d0a2bef4e053cfecca4b5cd266b1a",
"status": "affected",
"version": "a6ed2aee54644cfa2d04ca86308767f5c3a087e8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/trace/trace_osnoise.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.17"
},
{
"lessThan": "5.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing/osnoise: Call synchronize_rcu() when unregistering\n\nThis ensures that any RCU readers traversing the instance list\nhave finished, before releasing the reference on the tracer that\nthe instance points to."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires writing tracefs (e.g. enabling osnoise/timerlat via current_tracer and deleting a tracing instance); there is no network, adjacent, or physical entry path to osnoise_unregister_instance().\nAC:L - An attacker who can configure tracing controls both teardown and sampling; deleting a trace instance while osnoise/timerlat is active races RCU readers that still dereference inst-\u003etr, and this race is reliably attacker-driven.\nPR:L - Triggering requires tracefs write access to configure/destroy tracing instances; this is not init-namespace root on every system (tracing group/remounted tracefs or CAP_SYS_ADMIN in a container with tracefs mounted suffices).\nUI:N - No victim interaction is required; exploitation is achieved entirely by the attacker\u0027s tracing configuration and concurrent instance teardown.\nS:U - The use-after-free corrupts kernel memory within the same kernel security domain; it does not cross VM, IOMMU, or sandbox boundaries by itself.\nC:H - Deferred kvfree_rcu_mightsleep() lets __remove_instance() free the trace_array while RCU readers in IRQ/NMI/timerlat paths still dereference inst-\u003etr, a classic UAF enabling arbitrary kernel memory disclosure.\nI:H - The dangling trace_array pointer can be leveraged for heap corruption and control-flow hijack; UAF of kernel heap objects is scored as high integrity impact even when the immediate failure mode is a crash.\nA:H - Concurrent access to a freed trace_array causes kernel oops/panic from RCU list walkers and buffer operations; UAF in interrupt context can crash or hang the system even without full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:24.402Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/428cedade9b2cc8e48f00742df0cfd770e77a803"
},
{
"url": "https://git.kernel.org/stable/c/3c693635bb7b3a9b6645831a84fed2af46cdf249"
},
{
"url": "https://git.kernel.org/stable/c/38366140dc8ee3568c7f0191d517e117963bd580"
},
{
"url": "https://git.kernel.org/stable/c/fad36954b29592ce463254179c3043697678481f"
},
{
"url": "https://git.kernel.org/stable/c/dd0160a0842337f12e7694d68b184050afc6d3a4"
},
{
"url": "https://git.kernel.org/stable/c/fe58f457ad8d0a2bef4e053cfecca4b5cd266b1a"
}
],
"title": "tracing/osnoise: Call synchronize_rcu() when unregistering",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72012",
"datePublished": "2026-08-15T05:51:41.222Z",
"dateReserved": "2026-08-09T03:40:39.899Z",
"dateUpdated": "2026-10-19T21:09:12.782Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80846 (GCVE-0-2026-80846)
Vulnerability from cvelistv5
Published
2026-09-04 15:54
Modified
2026-10-19 08:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: drop ESP-in-TCP packets with no ingress device
ESP-in-TCP receives records through the TCP strparser. handle_esp()
restores skb->dev from the saved skb_iif before passing the packet into
the XFRM input path.
Queued TCP data can be processed after the original ingress device has
been removed, for example during veth or net namespace teardown. In that
case dev_get_by_index_rcu() returns NULL. The XFRM IPv4 and IPv6 input
paths both expect skb->dev to be valid while building the route lookup,
so queued ESP-in-TCP data can dereference a NULL device.
Drop the packet if the saved ingress device can no longer be resolved.
Such a packet can no longer be routed through the normal XFRM receive
path, and this preserves the existing behaviour for packets whose ingress
device still exists.
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 Version: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/espintcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "239d0f71af09dc2029fd4d730cb24b8c83aaa43a",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "f00235f9d12301183d61f75fbe4105506f3e5140",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "6af5cdb03819a5ce6e945992635c6c5e91045367",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "2dd1609cadff46c4b20ce53b91ab9cce1380456a",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "c296d25efbc840be24de83f56d43bc47e714ace9",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "328e40aa774b446969c69b654c52a051a95af8a1",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "7911e0236616487b89db6bd3ba3f408abd10eb23",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "943d95233b8b4a88994e244fcf466f8c403d63f1",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "e1d7c5ac1c246ce5775f604515de0a59fbf2116e",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/espintcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.6"
},
{
"lessThan": "5.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.269",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.220",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.187",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.156",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.108",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.49",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.269",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.220",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.187",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.156",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.108",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.49",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.13",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: drop ESP-in-TCP packets with no ingress device\n\nESP-in-TCP receives records through the TCP strparser. handle_esp()\nrestores skb-\u003edev from the saved skb_iif before passing the packet into\nthe XFRM input path.\n\nQueued TCP data can be processed after the original ingress device has\nbeen removed, for example during veth or net namespace teardown. In that\ncase dev_get_by_index_rcu() returns NULL. The XFRM IPv4 and IPv6 input\npaths both expect skb-\u003edev to be valid while building the route lookup,\nso queued ESP-in-TCP data can dereference a NULL device.\n\nDrop the packet if the saved ingress device can no longer be resolved.\nSuch a packet can no longer be routed through the normal XFRM receive\npath, and this preserves the existing behaviour for packets whose ingress\ndevice still exists."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:44:40.508Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/239d0f71af09dc2029fd4d730cb24b8c83aaa43a"
},
{
"url": "https://git.kernel.org/stable/c/f00235f9d12301183d61f75fbe4105506f3e5140"
},
{
"url": "https://git.kernel.org/stable/c/6af5cdb03819a5ce6e945992635c6c5e91045367"
},
{
"url": "https://git.kernel.org/stable/c/2dd1609cadff46c4b20ce53b91ab9cce1380456a"
},
{
"url": "https://git.kernel.org/stable/c/c296d25efbc840be24de83f56d43bc47e714ace9"
},
{
"url": "https://git.kernel.org/stable/c/328e40aa774b446969c69b654c52a051a95af8a1"
},
{
"url": "https://git.kernel.org/stable/c/7911e0236616487b89db6bd3ba3f408abd10eb23"
},
{
"url": "https://git.kernel.org/stable/c/943d95233b8b4a88994e244fcf466f8c403d63f1"
},
{
"url": "https://git.kernel.org/stable/c/e1d7c5ac1c246ce5775f604515de0a59fbf2116e"
}
],
"title": "xfrm: drop ESP-in-TCP packets with no ingress device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80846",
"datePublished": "2026-09-04T15:54:56.492Z",
"dateReserved": "2026-08-26T14:34:25.797Z",
"dateUpdated": "2026-10-19T08:44:40.508Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63983 (GCVE-0-2026-63983)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-10-15 10:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: fix packet loop on netem when duplicate is on
When netem duplicates a packet it re-enqueues the copy at the root qdisc.
If another netem sits in the tree the copy can be duplicated
again, recursing until the stack or memory is exhausted.
The original duplication guard temporarily zeroed q->duplicate around
the re-enqueue, but that does not cover all cases because it is
per-qdisc state shared across all concurrent enqueue paths
and is not safe without additional locking.
Use the skb tc_depth field introduced in an earlier patch:
- increment it on the duplicate before re-enqueue
- skip duplication for any skb whose tc_depth is already non-zero.
This marks the packet itself rather than mutating qdisc state,
therefore it is safe regardless of tree topology or concurrency.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_netem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1a298a514ce766c6d0c232991a390fec67af81ad",
"status": "affected",
"version": "0afb51e72855971dba83b3c6b70c547c2d1161fd",
"versionType": "git"
},
{
"lessThan": "4ec3a8ca97394f17e73a4d8d4c79c1c78b322772",
"status": "affected",
"version": "0afb51e72855971dba83b3c6b70c547c2d1161fd",
"versionType": "git"
},
{
"lessThan": "cfb2616042767ab31260d4f39190c381bec8b12e",
"status": "affected",
"version": "0afb51e72855971dba83b3c6b70c547c2d1161fd",
"versionType": "git"
},
{
"lessThan": "9552b11e3edabc97cfcd9f29103d5afbce7ae183",
"status": "affected",
"version": "0afb51e72855971dba83b3c6b70c547c2d1161fd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_netem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: fix packet loop on netem when duplicate is on\n\nWhen netem duplicates a packet it re-enqueues the copy at the root qdisc.\nIf another netem sits in the tree the copy can be duplicated\nagain, recursing until the stack or memory is exhausted.\n\nThe original duplication guard temporarily zeroed q-\u003eduplicate around\nthe re-enqueue, but that does not cover all cases because it is\nper-qdisc state shared across all concurrent enqueue paths\nand is not safe without additional locking.\n\nUse the skb tc_depth field introduced in an earlier patch:\n - increment it on the duplicate before re-enqueue\n - skip duplication for any skb whose tc_depth is already non-zero.\n\nThis marks the packet itself rather than mutating qdisc state,\ntherefore it is safe regardless of tree topology or concurrency."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T10:07:53.892Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1a298a514ce766c6d0c232991a390fec67af81ad"
},
{
"url": "https://git.kernel.org/stable/c/4ec3a8ca97394f17e73a4d8d4c79c1c78b322772"
},
{
"url": "https://git.kernel.org/stable/c/cfb2616042767ab31260d4f39190c381bec8b12e"
},
{
"url": "https://git.kernel.org/stable/c/9552b11e3edabc97cfcd9f29103d5afbce7ae183"
}
],
"title": "net/sched: fix packet loop on netem when duplicate is on",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63983",
"datePublished": "2026-07-19T14:56:06.047Z",
"dateReserved": "2026-07-19T07:54:57.025Z",
"dateUpdated": "2026-10-15T10:07:53.892Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89481 (GCVE-0-2026-89481)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvme-tcp: fix host memory disclosure on R2T for a read command
nvme_tcp_handle_r2t() does not check the direction of the request the
R2T refers to. A malicious controller can send an R2T for a READ and
the host will answer it: nvme_tcp_setup_h2c_data_pdu() builds the
H2CData header and nvme_tcp_try_send_data() sends the request's data
buffer. That buffer is the READ destination, so its contents go to the
controller.
The command then completes normally and nothing is logged.
Against a test controller that answers every READ with an R2T, a 4096
byte buffered read returned all 4096 bytes, split over two R2Ts. The
pages contained stale kernel data, including an array of struct page
pointers.
Reject an R2T for a request that is not a write.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 Version: 3f2304f8c6d6ed97849057bd16fee99e434ca796 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89481",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:35.614121Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:39.687Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "49a4dcf57608ebf6432dbcb203ed25e7ed581445",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "bc4013c7cce58d46f792c8c87bc8c8318a70190e",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "a4c3c7310156493797c920b10d8648c07aa05403",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "3b3d27670c0c890ba7cf1bc3614cab61bde6d25c",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "3a0b05145053a5fad1a2ddb4e4d87b07385e63e5",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
},
{
"lessThan": "6efbc52237facda35d2d874fe1765bb4839275d8",
"status": "affected",
"version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/host/tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-tcp: fix host memory disclosure on R2T for a read command\n\nnvme_tcp_handle_r2t() does not check the direction of the request the\nR2T refers to. A malicious controller can send an R2T for a READ and\nthe host will answer it: nvme_tcp_setup_h2c_data_pdu() builds the\nH2CData header and nvme_tcp_try_send_data() sends the request\u0027s data\nbuffer. That buffer is the READ destination, so its contents go to the\ncontroller.\n\nThe command then completes normally and nothing is logged.\n\nAgainst a test controller that answers every READ with an R2T, a 4096\nbyte buffered read returned all 4096 bytes, split over two R2Ts. The\npages contained stale kernel data, including an array of struct page\npointers.\n\nReject an R2T for a request that is not a write."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the NVMe-over-TCP host PDU receive path (nvme_tcp_recv_skb \u2192 nvme_tcp_handle_r2t). A remote NVMe-oF target or on-path attacker sends an R2T PDU over TCP (port 4420) and the host splices the READ destination buffer back over that socket.\nAC:L - A malicious controller that replies to an in-flight READ with a well-formed R2T always triggers the leak; the reporter reproduced a full 4096-byte disclosure with a test target. No race, special memory layout, or rare config beyond CONFIG_NVME_TCP is required.\nPR:N - NVMe/TCP requires no authentication by default (TLS and DH-HMAC-CHAP are optional and off in stock configs), so the remote peer needs no privileges or credentials on the victim host; it simply answers I/O the host is already sending.\nUI:N - No victim action is required at exploit time; once the host is connected (including via nvmf-autoconnect at boot), ordinary filesystem or block I/O issues READ commands and the malicious target triggers the leak by replying with R2T PDUs.\nS:U - The disclosure is of the host kernel\u0027s own I/O buffers and page-cache pages to the connected target. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - nvme_tcp_try_send_data() splices the READ destination pages to the attacker. Those pages hold stale kernel memory (reproduced: 4096 bytes including struct page pointers). Every subsequent READ can leak another MDTS-sized buffer of recycled kernel pages.\nI:N - The host only transmits existing buffer contents; the bug does not write attacker-controlled data into kernel memory, corrupt kernel structures, or provide a write or control-flow hijack primitive.\nA:N - The malformed R2T path completes the command successfully with nothing logged; the reporter observed a silent disclosure with no oops, panic, hang, or other availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:30.916Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/49a4dcf57608ebf6432dbcb203ed25e7ed581445"
},
{
"url": "https://git.kernel.org/stable/c/bc4013c7cce58d46f792c8c87bc8c8318a70190e"
},
{
"url": "https://git.kernel.org/stable/c/a4c3c7310156493797c920b10d8648c07aa05403"
},
{
"url": "https://git.kernel.org/stable/c/3b3d27670c0c890ba7cf1bc3614cab61bde6d25c"
},
{
"url": "https://git.kernel.org/stable/c/3a0b05145053a5fad1a2ddb4e4d87b07385e63e5"
},
{
"url": "https://git.kernel.org/stable/c/6efbc52237facda35d2d874fe1765bb4839275d8"
}
],
"title": "nvme-tcp: fix host memory disclosure on R2T for a read command",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89481",
"datePublished": "2026-09-11T19:43:36.589Z",
"dateReserved": "2026-09-11T19:38:34.711Z",
"dateUpdated": "2026-10-19T08:47:30.916Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72404 (GCVE-0-2026-72404)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-21 12:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: fix UAF in cleanup_bearer() due to premature dst_cache_destroy()
TIPC UDP media bearer teardown calls dst_cache_destroy() on its
replicast caches before calling synchronize_net() to wait for
concurrent RCU readers (transmitters) to finish:
static void cleanup_bearer(struct work_struct *work)
{
...
list_for_each_entry_safe(rcast, tmp, &ub->rcast.list, list) {
dst_cache_destroy(&rcast->dst_cache);
list_del_rcu(&rcast->list);
kfree_rcu(rcast, rcu);
}
...
dst_cache_destroy(&ub->rcast.dst_cache);
udp_tunnel_sock_release(ub->sk);
synchronize_net();
...
}
This is highly buggy because dst_cache_destroy() immediately frees the
per-CPU cache memory (free_percpu()) and releases the cached dst
entries without any synchronization.
If a concurrent transmitter (e.g., tipc_udp_xmit()) is running on another
CPU under RCU protection, it can call dst_cache_get() concurrently,
leading to:
1. Use-After-Free on the per-CPU cache pointer itself (crash).
2. "rcuref - imbalanced put()" warning if it attempts to release a
dst that was concurrently released by dst_cache_destroy().
Furthermore, calling kfree(ub) immediately after synchronize_net() without
closing the socket first (or waiting after closing it) leaves a window
where a concurrent receiver (tipc_udp_recv()) could start after
synchronize_net(), access ub, and suffer a UAF when kfree(ub) runs.
To fix this, we must defer dst_cache_destroy() and kfree(ub) until after
we have ensured that no more readers can see the bearer/socket and all
existing readers have finished:
1. Defer rcast entry destruction (both dst_cache_destroy() and kfree())
to an RCU callback using call_rcu_hurry().
Using call_rcu_hurry() ensures the dst entries are released quickly.
2. Release the bearer socket using udp_tunnel_sock_release() (stops
new receive readers).
3. Call synchronize_net() to wait for all outstanding RCU readers
(both transmit and receive) to finish.
4. Now that it is safe, call dst_cache_destroy() on the main bearer
cache, and free ub.
Note: 3) and 4) can be changed later in net-next to also use
call_rcu_hurry() and get rid of the synchronize_net() latency.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72404",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:02.601623Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:21.804Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/udp_media.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6aeb4ba4fb098199e13723cfd04d9a749741f731",
"status": "affected",
"version": "e9c1a793210f29f32ee4cf048e04d7d9bb3221cc",
"versionType": "git"
},
{
"lessThan": "6b0e29f7662c237e717f35dad746efe94715d0da",
"status": "affected",
"version": "e9c1a793210f29f32ee4cf048e04d7d9bb3221cc",
"versionType": "git"
},
{
"lessThan": "3827ff67f9fbecd1086e33d23693ef6a1a9c6c38",
"status": "affected",
"version": "e9c1a793210f29f32ee4cf048e04d7d9bb3221cc",
"versionType": "git"
},
{
"lessThan": "1c8393eefa3cadf4ca0b61119ad1321aa32d3c8c",
"status": "affected",
"version": "e9c1a793210f29f32ee4cf048e04d7d9bb3221cc",
"versionType": "git"
},
{
"lessThan": "7116764ca53ff529335d7ab7c364a69f094b23a5",
"status": "affected",
"version": "e9c1a793210f29f32ee4cf048e04d7d9bb3221cc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/udp_media.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.3"
},
{
"lessThan": "5.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: fix UAF in cleanup_bearer() due to premature dst_cache_destroy()\n\nTIPC UDP media bearer teardown calls dst_cache_destroy() on its\nreplicast caches before calling synchronize_net() to wait for\nconcurrent RCU readers (transmitters) to finish:\n\nstatic void cleanup_bearer(struct work_struct *work)\n{\n...\n\tlist_for_each_entry_safe(rcast, tmp, \u0026ub-\u003ercast.list, list) {\n\t\tdst_cache_destroy(\u0026rcast-\u003edst_cache);\n\t\tlist_del_rcu(\u0026rcast-\u003elist);\n\t\tkfree_rcu(rcast, rcu);\n\t}\n...\n\tdst_cache_destroy(\u0026ub-\u003ercast.dst_cache);\n\tudp_tunnel_sock_release(ub-\u003esk);\n\tsynchronize_net();\n...\n}\n\nThis is highly buggy because dst_cache_destroy() immediately frees the\nper-CPU cache memory (free_percpu()) and releases the cached dst\nentries without any synchronization.\n\nIf a concurrent transmitter (e.g., tipc_udp_xmit()) is running on another\nCPU under RCU protection, it can call dst_cache_get() concurrently,\nleading to:\n1. Use-After-Free on the per-CPU cache pointer itself (crash).\n2. \"rcuref - imbalanced put()\" warning if it attempts to release a\n dst that was concurrently released by dst_cache_destroy().\n\nFurthermore, calling kfree(ub) immediately after synchronize_net() without\nclosing the socket first (or waiting after closing it) leaves a window\nwhere a concurrent receiver (tipc_udp_recv()) could start after\nsynchronize_net(), access ub, and suffer a UAF when kfree(ub) runs.\n\nTo fix this, we must defer dst_cache_destroy() and kfree(ub) until after\nwe have ensured that no more readers can see the bearer/socket and all\nexisting readers have finished:\n\n1. Defer rcast entry destruction (both dst_cache_destroy() and kfree())\n to an RCU callback using call_rcu_hurry().\n Using call_rcu_hurry() ensures the dst entries are released quickly.\n\n2. Release the bearer socket using udp_tunnel_sock_release() (stops\n new receive readers).\n\n3. Call synchronize_net() to wait for all outstanding RCU readers\n (both transmit and receive) to finish.\n\n4. Now that it is safe, call dst_cache_destroy() on the main bearer\n cache, and free ub.\n\nNote: 3) and 4) can be changed later in net-next to also use\ncall_rcu_hurry() and get rid of the synchronize_net() latency."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is in cleanup_bearer() during UDP bearer teardown, reached only via TIPC genetlink bearer disable (TIPC_NL_BEARER_DISABLE) or network-namespace exit; remote UDP/TIPC peers cannot initiate teardown, so exploitation requires local netlink/netns access even though concurrent xmit/recv may involve network I/O.\nAC:L - An attacker with namespace CAP_NET_ADMIN can script both teardown and concurrent traffic (enable/disable bearer or destroy netns while sending/receiving TIPC UDP on port 6118), controlling both sides of the RCU race; dst_cache_destroy()\u0027s free_percpu() widens the window and syzbot triggered it reliably.\nPR:L - Bearer disable/enable and netns teardown require CAP_NET_ADMIN; TIPC genetlink ops use GENL_UNS_ADMIN_PERM and tipc_genl_family.netnsok=true, so unprivileged users obtain effective net-admin capability via user/network namespaces (unshare -Urn).\nUI:N - Exploitation needs no victim interaction beyond the attacker\u0027s own namespace/netlink operations and packet generation; no mount, file open, or other user-directed action is required.\nS:U - The use-after-free corrupts kernel heap memory within the same kernel security domain; impacts are kernel crash or local privilege escalation, not VM escape or cross-security-authority boundary crossing.\nC:H - Premature dst_cache_destroy() frees per-CPU cache memory while concurrent tipc_udp_xmit() may call dst_cache_get() on the freed object, and the post-synchronize_net() recv path dereferences freed udp_bearer, enabling kernel memory disclosure.\nI:H - UAF on dst_cache structures and udp_bearer allows heap shaping and control of freed-object contents, providing primitives for arbitrary kernel writes and potential control-flow hijacking/local privilege escalation.\nA:H - Concurrent use-after-free reliably causes kernel oops/panic (per commit: UAF on per-CPU cache pointer crashes) and can be triggered repeatedly during scripted bearer teardown loops."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:44:50.626Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6aeb4ba4fb098199e13723cfd04d9a749741f731"
},
{
"url": "https://git.kernel.org/stable/c/6b0e29f7662c237e717f35dad746efe94715d0da"
},
{
"url": "https://git.kernel.org/stable/c/3827ff67f9fbecd1086e33d23693ef6a1a9c6c38"
},
{
"url": "https://git.kernel.org/stable/c/1c8393eefa3cadf4ca0b61119ad1321aa32d3c8c"
},
{
"url": "https://git.kernel.org/stable/c/7116764ca53ff529335d7ab7c364a69f094b23a5"
}
],
"title": "tipc: fix UAF in cleanup_bearer() due to premature dst_cache_destroy()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72404",
"datePublished": "2026-08-15T05:56:28.124Z",
"dateReserved": "2026-08-09T03:40:39.925Z",
"dateUpdated": "2026-10-21T12:44:50.626Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89970 (GCVE-0-2026-89970)
Vulnerability from cvelistv5
Published
2026-09-16 10:32
Modified
2026-10-19 08:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nvmet-auth: Synchronize timeout work during SQ teardown
nvmet_auth_sq_free() cancels auth_expired_work with
cancel_delayed_work(). If the work has already started, cancellation does
not wait for the callback. Transport teardown can consequently free or
reuse the queue containing struct nvmet_sq while
nvmet_auth_expired_work() still accesses that SQ.
Add a teardown-specific helper that synchronously drains the delayed work
before freeing authentication state, and use it from nvmet_sq_destroy().
Keep the non-synchronous helper for in-band authentication state cleanup,
where the SQ owner remains alive.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 Version: 1a70200f404ae210b4f0334e3936e84f8edb6bc8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/auth.c",
"drivers/nvme/target/core.c",
"drivers/nvme/target/nvmet.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "664022fa1c93f4eba09ef5ee02411b9709dd7a93",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
},
{
"lessThan": "c3c126a6142a1335bc8c34a5607c39cf01daf295",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
},
{
"lessThan": "c17c87bde6d6f5252a6a6f0a94b2430164aa28d5",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
},
{
"lessThan": "7555ddd60af72df2862dd8f9b730a9848577edda",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
},
{
"lessThan": "eb4f9127a2b8a152743f1ee597627e2f69cb54fe",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
},
{
"lessThan": "eaa948c0e19b1bb2d93262207bca0c3d19cc3406",
"status": "affected",
"version": "1a70200f404ae210b4f0334e3936e84f8edb6bc8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/nvme/target/auth.c",
"drivers/nvme/target/core.c",
"drivers/nvme/target/nvmet.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-auth: Synchronize timeout work during SQ teardown\n\nnvmet_auth_sq_free() cancels auth_expired_work with\ncancel_delayed_work(). If the work has already started, cancellation does\nnot wait for the callback. Transport teardown can consequently free or\nreuse the queue containing struct nvmet_sq while\nnvmet_auth_expired_work() still accesses that SQ.\n\nAdd a teardown-specific helper that synchronously drains the delayed work\nbefore freeing authentication state, and use it from nvmet_sq_destroy().\nKeep the non-synchronous helper for in-band authentication state cleanup,\nwhere the SQ owner remains alive."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is in nvmet-auth timeout work reached via AUTH_SEND on NVMe-oF targets; nvmet-tcp (and nvmet-rdma) accept remote connections, so a network initiator can arm the timer and tear down the queue over TCP/RDMA.\nAC:L - The attacker controls both sides of the race: AUTH_SEND schedules auth_expired_work with an attacker-chosen KATO delay, and closing the connection runs nvmet_sq_destroy(); cancel_delayed_work() does not wait, so the race is repeatable.\nPR:N - AUTH_SEND is dispatched as a Fabrics command before nvmet_check_auth_status() and before DH-HMAC-CHAP credentials are verified; discovery accepts any host NQN, so no Linux privileges or verified secrets are required.\nUI:N - No victim user action is required; the attacker connects to an already-deployed NVMe-oF target, sends AUTH_SEND to arm the timeout, and disconnects when the work is due.\nS:U - The use-after-free corrupts the in-kernel nvmet_sq/queue object on the target host and does not cross a VM, hypervisor, or IOMMU security boundary.\nC:H - Transport teardown can free or reuse the queue containing struct nvmet_sq while nvmet_auth_expired_work() still accesses it; that UAF can be leveraged for kernel information disclosure via heap reuse.\nI:H - The delayed work writes dhchap_step and dhchap_tid into a potentially freed or reused queue object, giving a kernel UAF write primitive exploitable for memory corruption and control-flow hijacking.\nA:H - Racing the timeout callback against SQ teardown is a kernel UAF of the queue and can oops or panic; the work may also dereference sq-\u003ectrl after teardown has already cleared it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:55:43.826Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/664022fa1c93f4eba09ef5ee02411b9709dd7a93"
},
{
"url": "https://git.kernel.org/stable/c/c3c126a6142a1335bc8c34a5607c39cf01daf295"
},
{
"url": "https://git.kernel.org/stable/c/c17c87bde6d6f5252a6a6f0a94b2430164aa28d5"
},
{
"url": "https://git.kernel.org/stable/c/7555ddd60af72df2862dd8f9b730a9848577edda"
},
{
"url": "https://git.kernel.org/stable/c/eb4f9127a2b8a152743f1ee597627e2f69cb54fe"
},
{
"url": "https://git.kernel.org/stable/c/eaa948c0e19b1bb2d93262207bca0c3d19cc3406"
}
],
"title": "nvmet-auth: Synchronize timeout work during SQ teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89970",
"datePublished": "2026-09-16T10:32:50.306Z",
"dateReserved": "2026-09-11T19:38:34.778Z",
"dateUpdated": "2026-10-19T08:55:43.826Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89569 (GCVE-0-2026-89569)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-19 08:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: RFCOMM: serialize security confirmation handling
rfcomm_security_cfm() looks up a session on session_list and then walks
its DLC list without holding rfcomm_mutex. Since RFCOMM session teardown
uses rfcomm_mutex, krfcommd can close and free the same session and DLCs
concurrently:
hci_rx_work krfcommd
----------- ---------
rfcomm_session_get()
rfcomm_lock()
rfcomm_session_close()
rfcomm_dlc_unlink()
rfcomm_session_del()
kfree(s)
rfcomm_unlock()
walk s->dlcs
The callback can then read a freed session list head and touch freed DLCs
while updating their flags or timers.
Serialize the session lookup and DLC traversal in rfcomm_security_cfm()
with rfcomm_mutex. This matches the existing RFCOMM session lifetime
rules and prevents concurrent rfcomm_session_del() / rfcomm_dlc_unlink()
from tearing the objects down while the callback is using them.
KASAN reported:
BUG: KASAN: slab-use-after-free in rfcomm_security_cfm+0x41c/0x440
Read of size 8 at addr ffff888111fb3960 by task kworker/u17:1/89
Workqueue: hci0 hci_rx_work
Call Trace:
rfcomm_security_cfm+0x41c/0x440
hci_encrypt_cfm+0x139/0x590
hci_encrypt_change_evt+0x37b/0xc40
hci_event_packet+0x71b/0xb20
hci_rx_work+0x293/0x730
Allocated by task 69:
rfcomm_session_add+0x9e/0x2f0
rfcomm_run+0x44b/0x41e0
Freed by task 69:
kfree+0x131/0x3c0
rfcomm_session_del+0x188/0x220
rfcomm_run+0x1985/0x41e0
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 Version: 08c30aca9e698faddebd34f81e1196295f9dc063 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89569",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:18.874687Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:44.485Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/rfcomm/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "62ce8b33eb238cf18c15207332fbdc26d858f592",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "3873f3449701b3dc98cba577923be6493598e7a1",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "7ded3264106418c6456ccceaafd9fda596ce12c3",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "82425b14f0fb22e46cfddc56d6465570f5ed0ce6",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "1b7841ffad08e911e8c4b9470f3fa08423568940",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "946d76db77ee5f922968ce558629ae47b381e3fc",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "fbf7961964a6e93360179f64712320ae9a1e9577",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
},
{
"lessThan": "759c185d0bbdb131357408f50b8735e04ed3caff",
"status": "affected",
"version": "08c30aca9e698faddebd34f81e1196295f9dc063",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/rfcomm/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.10"
},
{
"lessThan": "3.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: RFCOMM: serialize security confirmation handling\n\nrfcomm_security_cfm() looks up a session on session_list and then walks\nits DLC list without holding rfcomm_mutex. Since RFCOMM session teardown\nuses rfcomm_mutex, krfcommd can close and free the same session and DLCs\nconcurrently:\n\n hci_rx_work krfcommd\n ----------- ---------\n rfcomm_session_get()\n rfcomm_lock()\n rfcomm_session_close()\n rfcomm_dlc_unlink()\n rfcomm_session_del()\n kfree(s)\n rfcomm_unlock()\n walk s-\u003edlcs\n\nThe callback can then read a freed session list head and touch freed DLCs\nwhile updating their flags or timers.\n\nSerialize the session lookup and DLC traversal in rfcomm_security_cfm()\nwith rfcomm_mutex. This matches the existing RFCOMM session lifetime\nrules and prevents concurrent rfcomm_session_del() / rfcomm_dlc_unlink()\nfrom tearing the objects down while the callback is using them.\n\nKASAN reported:\n\n BUG: KASAN: slab-use-after-free in rfcomm_security_cfm+0x41c/0x440\n Read of size 8 at addr ffff888111fb3960 by task kworker/u17:1/89\n Workqueue: hci0 hci_rx_work\n Call Trace:\n rfcomm_security_cfm+0x41c/0x440\n hci_encrypt_cfm+0x139/0x590\n hci_encrypt_change_evt+0x37b/0xc40\n hci_event_packet+0x71b/0xb20\n hci_rx_work+0x293/0x730\n Allocated by task 69:\n rfcomm_session_add+0x9e/0x2f0\n rfcomm_run+0x44b/0x41e0\n Freed by task 69:\n kfree+0x131/0x3c0\n rfcomm_session_del+0x188/0x220\n rfcomm_run+0x1985/0x41e0"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - rfcomm_security_cfm() runs from hci_encrypt_cfm()/hci_auth_cfm() on hci_rx_work when the controller reports encryption or authentication complete. An in-range Bluetooth peer that opens an RFCOMM/L2CAP session can drive those HCI events; kernel CNA guidance scores Bluetooth as Adjacent.\nAC:L - The UAF is a race between hci_rx_work walking the session and krfcommd freeing it. A peer controls both sides by triggering encrypt/auth complete while disconnecting RFCOMM/L2CAP or the ACL link so krfcommd runs rfcomm_session_close(), and can retry until the window is hit.\nPR:N - A nearby Bluetooth device needs no Linux account or capability. krfcommd listens on L2CAP PSM RFCOMM at default BT_SECURITY_LOW, and HCI encrypt/auth complete (including failures) call rfcomm_security_cfm() with no local credential check.\nUI:N - Phones, cars, and IoT devices with Bluetooth enabled accept RFCOMM/L2CAP and emit encrypt-change events during ordinary link setup or teardown. No extra victim action such as pairing confirmation, mounting, or opening a file is required at exploit time.\nS:U - The UAF corrupts kernel RFCOMM session and DLC objects in the host Bluetooth stack. It does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - After rfcomm_session_del() frees the session, the callback reads the slab-freed list head and DLC flags, state, and sec_level. Kernel UAF of these objects enables heap reuse and arbitrary kernel read primitives.\nI:H - The callback writes DLC flag bits and arms or cancels DLC timers on objects krfcommd may already have unlinked and freed, so a reused slab object can be corrupted or have its timer hijacked for control-flow takeover.\nA:H - KASAN reported slab-use-after-free in rfcomm_security_cfm() on hci_rx_work; triggering the race oopses or panics the kernel even without a full exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:49:02.628Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/62ce8b33eb238cf18c15207332fbdc26d858f592"
},
{
"url": "https://git.kernel.org/stable/c/3873f3449701b3dc98cba577923be6493598e7a1"
},
{
"url": "https://git.kernel.org/stable/c/7ded3264106418c6456ccceaafd9fda596ce12c3"
},
{
"url": "https://git.kernel.org/stable/c/82425b14f0fb22e46cfddc56d6465570f5ed0ce6"
},
{
"url": "https://git.kernel.org/stable/c/1b7841ffad08e911e8c4b9470f3fa08423568940"
},
{
"url": "https://git.kernel.org/stable/c/946d76db77ee5f922968ce558629ae47b381e3fc"
},
{
"url": "https://git.kernel.org/stable/c/fbf7961964a6e93360179f64712320ae9a1e9577"
},
{
"url": "https://git.kernel.org/stable/c/759c185d0bbdb131357408f50b8735e04ed3caff"
}
],
"title": "Bluetooth: RFCOMM: serialize security confirmation handling",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89569",
"datePublished": "2026-09-11T19:44:38.838Z",
"dateReserved": "2026-09-11T19:38:34.726Z",
"dateUpdated": "2026-10-19T08:49:02.628Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72379 (GCVE-0-2026-72379)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:13
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fs: refuse O_TMPFILE creation with an unmapped fsuid or fsgid
vfs_tmpfile() never checked that the caller's fsuid and fsgid map into
the filesystem. On an idmapped mount whose idmapping does not cover the
caller's fs{u,g}id, the ->tmpfile() instance initializes the new inode
through inode_init_owner(), where mapped_fsuid()/mapped_fsgid() return
INVALID_UID/INVALID_GID, and the tmpfile ends up owned by (uid_t)-1.
Every other creation path already refuses this: may_o_create() (O_CREAT)
and may_create_dentry() (mkdir, mknod, symlink, link) bail out with
-EOVERFLOW via fsuidgid_has_mapping() precisely so that an object cannot
be created with an owner the filesystem cannot represent. An O_TMPFILE
is no exception: it is created I_LINKABLE and linkat(2) can splice it
into the namespace afterwards, so the same guarantee must hold.
Add the missing fsuidgid_has_mapping() check to vfs_tmpfile(). On a
non-idmapped mount the caller's fs{u,g}id always map in the superblock's
user namespace, so this is a no-op there and only takes effect on an
idmapped mount that does not map the caller. It applies to every
filesystem that sets FS_ALLOW_IDMAP and implements ->tmpfile() (tmpfs,
ext4, btrfs, xfs, f2fs, ...), and to overlayfs, whose upper-layer
tmpfile creation funnels through vfs_tmpfile() via backing_tmpfile_open().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/namei.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bac8fb0d60254846f3b56957435dcd870ae12948",
"status": "affected",
"version": "8e5389132ab429604c1a2459b52f0c849a71cc61",
"versionType": "git"
},
{
"lessThan": "503d0568a525b168d9aa5ca046ec72fc5477df84",
"status": "affected",
"version": "8e5389132ab429604c1a2459b52f0c849a71cc61",
"versionType": "git"
},
{
"lessThan": "a2038514e69371eb493083a6a897ed20fcbb8acb",
"status": "affected",
"version": "8e5389132ab429604c1a2459b52f0c849a71cc61",
"versionType": "git"
},
{
"lessThan": "47e434da476b5a8bcd1e6e52ab03c5ee7764ee78",
"status": "affected",
"version": "8e5389132ab429604c1a2459b52f0c849a71cc61",
"versionType": "git"
},
{
"lessThan": "539dce1144651f7976fa418e618b0b574bf15eeb",
"status": "affected",
"version": "8e5389132ab429604c1a2459b52f0c849a71cc61",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/namei.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs: refuse O_TMPFILE creation with an unmapped fsuid or fsgid\n\nvfs_tmpfile() never checked that the caller\u0027s fsuid and fsgid map into\nthe filesystem. On an idmapped mount whose idmapping does not cover the\ncaller\u0027s fs{u,g}id, the -\u003etmpfile() instance initializes the new inode\nthrough inode_init_owner(), where mapped_fsuid()/mapped_fsgid() return\nINVALID_UID/INVALID_GID, and the tmpfile ends up owned by (uid_t)-1.\n\nEvery other creation path already refuses this: may_o_create() (O_CREAT)\nand may_create_dentry() (mkdir, mknod, symlink, link) bail out with\n-EOVERFLOW via fsuidgid_has_mapping() precisely so that an object cannot\nbe created with an owner the filesystem cannot represent. An O_TMPFILE\nis no exception: it is created I_LINKABLE and linkat(2) can splice it\ninto the namespace afterwards, so the same guarantee must hold.\n\nAdd the missing fsuidgid_has_mapping() check to vfs_tmpfile(). On a\nnon-idmapped mount the caller\u0027s fs{u,g}id always map in the superblock\u0027s\nuser namespace, so this is a no-op there and only takes effect on an\nidmapped mount that does not map the caller. It applies to every\nfilesystem that sets FS_ALLOW_IDMAP and implements -\u003etmpfile() (tmpfs,\next4, btrfs, xfs, f2fs, ...), and to overlayfs, whose upper-layer\ntmpfile creation funnels through vfs_tmpfile() via backing_tmpfile_open()."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:13:31.893Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bac8fb0d60254846f3b56957435dcd870ae12948"
},
{
"url": "https://git.kernel.org/stable/c/503d0568a525b168d9aa5ca046ec72fc5477df84"
},
{
"url": "https://git.kernel.org/stable/c/a2038514e69371eb493083a6a897ed20fcbb8acb"
},
{
"url": "https://git.kernel.org/stable/c/47e434da476b5a8bcd1e6e52ab03c5ee7764ee78"
},
{
"url": "https://git.kernel.org/stable/c/539dce1144651f7976fa418e618b0b574bf15eeb"
}
],
"title": "fs: refuse O_TMPFILE creation with an unmapped fsuid or fsgid",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72379",
"datePublished": "2026-08-15T05:56:12.251Z",
"dateReserved": "2026-08-09T03:40:39.922Z",
"dateUpdated": "2026-08-17T05:13:31.893Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89479 (GCVE-0-2026-89479)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: stop processing a packet once its association is deleted
sctp_endpoint_bh_rcv() looks the association up only when chunk->asoc is
NULL, and caches the result in chunk->asoc and chunk->transport without
taking a reference.
A packet that matches no association is handed to the endpoint, so a peer
can bundle COOKIE ECHO, SHUTDOWN and SHUTDOWN ACK in one packet. The
COOKIE ECHO creates the association, the SHUTDOWN chunk caches it, and
with the outqueue empty the SHUTDOWN ACK reaches sctp_sf_do_9_2_final(),
so the association and its transports are freed.
The endpoint loop has no counterpart to the asoc->base.dead check in
sctp_assoc_bh_rcv(). The next chunk writes to last_time_heard in the freed
transport and is then passed to sctp_do_sm() with the freed association.
The transport is freed through RCU, so this needs the packet to come off
the socket backlog, where the loop runs in task context.
The endpoint loop cannot do the same check: it holds no reference on the
association, so reading asoc->base.dead would itself be a use-after-free.
Mark the packet for discard in the command interpreter, just before it
deletes the association. That is also before sctp_inq_free() releases the
chunk on the association receive path.
sctp_sf_do_5_2_4_dupcook() issues SCTP_CMD_DELETE_TCB for the temporary
association, while the one the packet belongs to stays alive. A restarting
peer can bundle DATA behind its COOKIE ECHO, so compare against
chunk->asoc and leave that case alone.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89479",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:22:28.838638Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:39.390Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_sideeffect.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7d970353eeb98f46a3b9dc602850e4f6336a9889",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "09c3b193a3e8fe53e1f416e2f8e3283d2a785405",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ed85fe91a61bc0e0da6b585c07102b20f4cc65a0",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5c0b2dbbdafc9eeeb11fffe1e46551fc3b55d8ee",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ee3f04cf566f6041aa9a0360494fd8db5ade383a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fa306a40e716c5abcd967475459ce1ebd56e5115",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a713e1b3a265f180ad25a08e17be15d67a2f7149",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "47e15a8d12e366d0d261bcbc394394f44418938d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_sideeffect.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: stop processing a packet once its association is deleted\n\nsctp_endpoint_bh_rcv() looks the association up only when chunk-\u003easoc is\nNULL, and caches the result in chunk-\u003easoc and chunk-\u003etransport without\ntaking a reference.\n\nA packet that matches no association is handed to the endpoint, so a peer\ncan bundle COOKIE ECHO, SHUTDOWN and SHUTDOWN ACK in one packet. The\nCOOKIE ECHO creates the association, the SHUTDOWN chunk caches it, and\nwith the outqueue empty the SHUTDOWN ACK reaches sctp_sf_do_9_2_final(),\nso the association and its transports are freed.\n\nThe endpoint loop has no counterpart to the asoc-\u003ebase.dead check in\nsctp_assoc_bh_rcv(). The next chunk writes to last_time_heard in the freed\ntransport and is then passed to sctp_do_sm() with the freed association.\nThe transport is freed through RCU, so this needs the packet to come off\nthe socket backlog, where the loop runs in task context.\n\nThe endpoint loop cannot do the same check: it holds no reference on the\nassociation, so reading asoc-\u003ebase.dead would itself be a use-after-free.\nMark the packet for discard in the command interpreter, just before it\ndeletes the association. That is also before sctp_inq_free() releases the\nchunk on the association receive path.\n\nsctp_sf_do_5_2_4_dupcook() issues SCTP_CMD_DELETE_TCB for the temporary\nassociation, while the one the packet belongs to stays alive. A restarting\npeer can bundle DATA behind its COOKIE ECHO, so compare against\nchunk-\u003easoc and leave that case alone."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is reached from sctp_rcv() when a remote peer sends a bundled SCTP packet (COOKIE-ECHO, SHUTDOWN, SHUTDOWN-ACK, then another chunk) to a listening internet-facing SCTP endpoint; no local syscall or link-local medium is required.\nAC:L - The attacker fully controls the four-way handshake and the bundled chunk order that creates, caches, then deletes the association in one packet; forcing that packet onto the socket backlog is done with concurrent associations or recv/accept load the attacker generates, with no victim-only race.\nPR:N - COOKIE-ECHO is the unauthenticated SCTP handshake completion using only the INIT-ACK cookie as anti-spoofing; a network peer needs no Linux account, capability, or namespace privilege on the victim host.\nUI:N - The kernel automatically processes inbound SCTP chunks in sctp_endpoint_bh_rcv()/sctp_do_sm(); no victim mount, file open, or other interactive action is required.\nS:U - Impact is kernel heap use-after-free of sctp_association/sctp_transport on the host; it does not cross a VM, container, or IOMMU boundary.\nC:H - After DELETE_TCB the next bundled chunk reads freed asoc-\u003estate and other association fields and is passed into sctp_do_sm(); UAF of these slab objects enables heap grooming for arbitrary kernel disclosure.\nI:H - The same loop writes last_time_heard on the RCU-freed transport and mutates freed asoc fields (stats, last_data_from) before sctp_do_sm() runs with the dangling pointer, yielding a standard UAF write/control-flow primitive.\nA:H - Dereferencing the freed association and transport in the endpoint receive loop can oops or panic the kernel, and a remote peer can repeat the bundled packet against any listening SCTP service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:47:28.375Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7d970353eeb98f46a3b9dc602850e4f6336a9889"
},
{
"url": "https://git.kernel.org/stable/c/09c3b193a3e8fe53e1f416e2f8e3283d2a785405"
},
{
"url": "https://git.kernel.org/stable/c/ed85fe91a61bc0e0da6b585c07102b20f4cc65a0"
},
{
"url": "https://git.kernel.org/stable/c/5c0b2dbbdafc9eeeb11fffe1e46551fc3b55d8ee"
},
{
"url": "https://git.kernel.org/stable/c/ee3f04cf566f6041aa9a0360494fd8db5ade383a"
},
{
"url": "https://git.kernel.org/stable/c/fa306a40e716c5abcd967475459ce1ebd56e5115"
},
{
"url": "https://git.kernel.org/stable/c/a713e1b3a265f180ad25a08e17be15d67a2f7149"
},
{
"url": "https://git.kernel.org/stable/c/47e15a8d12e366d0d261bcbc394394f44418938d"
}
],
"title": "sctp: stop processing a packet once its association is deleted",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89479",
"datePublished": "2026-09-11T19:43:35.263Z",
"dateReserved": "2026-09-11T19:38:34.711Z",
"dateUpdated": "2026-10-19T08:47:28.375Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72299 (GCVE-0-2026-72299)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-10-16 18:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: restrict socket queue dumps in enqueue tracepoints
tipc_sk_enqueue() runs with sk->sk_lock.slock held while the socket is
owned by user context. The spinlock protects the backlog queue in this
path, but it does not serialize against the socket owner consuming or
purging sk_receive_queue.
KASAN reported:
CPU: 14 UID: 0 PID: 1050 Comm: tipc3 Not tainted 7.1.0-rc6+ #126 PREEMPT(lazy)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0x76/0xa0 lib/dump_stack.c:123
print_report+0xce/0x5b0 mm/kasan/report.c:482
kasan_report+0xc6/0x100 mm/kasan/report.c:597
__asan_report_load4_noabort+0x14/0x30 mm/kasan/report_generic.c:380
tipc_skb_dump+0x1327/0x16f0 net/tipc/trace.c:73
tipc_list_dump+0x208/0x2e0 net/tipc/trace.c:187
tipc_sk_dump+0xaf6/0xd60 net/tipc/socket.c:3996
trace_event_raw_event_tipc_sk_class+0x312/0x5a0 net/tipc/trace.h:188
tipc_sk_rcv+0xb1d/0x1d50 net/tipc/socket.c:2497
tipc_node_xmit+0x1c3/0x1440 net/tipc/node.c:1689
__tipc_sendmsg+0x97a/0x1440 net/tipc/socket.c:1512
tipc_sendmsg+0x52/0x80 net/tipc/socket.c:1400
sock_sendmsg+0x2f6/0x3e0 net/socket.c:825
splice_to_socket+0x7f9/0x1010 fs/splice.c:884
do_splice+0xe21/0x2330 fs/splice.c:936
__do_splice+0x153/0x260 fs/splice.c:1431
__x64_sys_splice+0x150/0x230 fs/splice.c:1616
x64_sys_call+0xeb5/0x2790 arch/x86/entry/syscall_64.c:41
do_syscall_64+0xf3/0x620 arch/x86/entry/syscall_64.c:63
entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:130
RIP: 0033:0x71624e8aafe2
Code: 08 0f 85 71 3a ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66
RSP: 002b:0000716157ffed68 EFLAGS: 00000246 ORIG_RAX: 0000000000000113
RAX: ffffffffffffffda RBX: 0000716157fff6c0 RCX: 000071624e8aafe2
RDX: 000000000000005f RSI: 0000000000000000 RDI: 0000000000000066
RBP: 0000716157ffed90 R08: 0000000000008000 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffff00
R13: 0000000000000021 R14: 0000000000000000 R15: 00007fff89799c40
</TASK>
The TIPC_DUMP_ALL tracepoints in tipc_sk_enqueue() also dump
sk_receive_queue and can therefore dereference skbs that the socket
owner has already dequeued or freed. Restrict these dumps to
TIPC_DUMP_SK_BKLGQ, which matches the queue protected by the held
spinlock.
Keep the change limited to the enqueue path, where the unsafe queue dump
is reachable while the socket is owned by user context.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 Version: 01e661ebfbad40e6280fb8ec25f2861d39ba4387 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72299",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:46:06.662834Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:15.859Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ae5d0d9ce767b20a5580bb6dc5e06f3e1b8a0fb0",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "273ff83c49b82e4267373adbe629e6ee8aeaa16c",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "258fb15b30db4f3941ab335d5e02f744baf1da54",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "12876864f9de5fa6f611a30c6c17e405a773bf0a",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "b9e100815f4b55e9ccaf6af9a3aba173eb13d381",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "61a55fa24a5d737436018764a647fe5b6cb36371",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "6acbbe54215d5f4251593000cff2bf51d6748713",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
},
{
"lessThan": "acd7df8d955480a6f6e5bb809da67b1500cc3cf4",
"status": "affected",
"version": "01e661ebfbad40e6280fb8ec25f2861d39ba4387",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: restrict socket queue dumps in enqueue tracepoints\n\ntipc_sk_enqueue() runs with sk-\u003esk_lock.slock held while the socket is\nowned by user context. The spinlock protects the backlog queue in this\npath, but it does not serialize against the socket owner consuming or\npurging sk_receive_queue.\n\nKASAN reported:\n\n CPU: 14 UID: 0 PID: 1050 Comm: tipc3 Not tainted 7.1.0-rc6+ #126 PREEMPT(lazy)\n Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x76/0xa0 lib/dump_stack.c:123\n print_report+0xce/0x5b0 mm/kasan/report.c:482\n kasan_report+0xc6/0x100 mm/kasan/report.c:597\n __asan_report_load4_noabort+0x14/0x30 mm/kasan/report_generic.c:380\n tipc_skb_dump+0x1327/0x16f0 net/tipc/trace.c:73\n tipc_list_dump+0x208/0x2e0 net/tipc/trace.c:187\n tipc_sk_dump+0xaf6/0xd60 net/tipc/socket.c:3996\n trace_event_raw_event_tipc_sk_class+0x312/0x5a0 net/tipc/trace.h:188\n tipc_sk_rcv+0xb1d/0x1d50 net/tipc/socket.c:2497\n tipc_node_xmit+0x1c3/0x1440 net/tipc/node.c:1689\n __tipc_sendmsg+0x97a/0x1440 net/tipc/socket.c:1512\n tipc_sendmsg+0x52/0x80 net/tipc/socket.c:1400\n sock_sendmsg+0x2f6/0x3e0 net/socket.c:825\n splice_to_socket+0x7f9/0x1010 fs/splice.c:884\n do_splice+0xe21/0x2330 fs/splice.c:936\n __do_splice+0x153/0x260 fs/splice.c:1431\n __x64_sys_splice+0x150/0x230 fs/splice.c:1616\n x64_sys_call+0xeb5/0x2790 arch/x86/entry/syscall_64.c:41\n do_syscall_64+0xf3/0x620 arch/x86/entry/syscall_64.c:63\n entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:130\n RIP: 0033:0x71624e8aafe2\n Code: 08 0f 85 71 3a ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 \u003cc3\u003e 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66\n RSP: 002b:0000716157ffed68 EFLAGS: 00000246 ORIG_RAX: 0000000000000113\n RAX: ffffffffffffffda RBX: 0000716157fff6c0 RCX: 000071624e8aafe2\n RDX: 000000000000005f RSI: 0000000000000000 RDI: 0000000000000066\n RBP: 0000716157ffed90 R08: 0000000000008000 R09: 0000000000000001\n R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffff00\n R13: 0000000000000021 R14: 0000000000000000 R15: 00007fff89799c40\n \u003c/TASK\u003e\n\nThe TIPC_DUMP_ALL tracepoints in tipc_sk_enqueue() also dump\nsk_receive_queue and can therefore dereference skbs that the socket\nowner has already dequeued or freed. Restrict these dumps to\nTIPC_DUMP_SK_BKLGQ, which matches the queue protected by the held\nspinlock.\n\nKeep the change limited to the enqueue path, where the unsafe queue dump\nis reachable while the socket is owned by user context."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - tipc_sk_enqueue() is invoked from tipc_sk_rcv() on inbound TIPC traffic (tipc_rcv()/tipc_link_rcv() from UDP/Ethernet bearers) and on loopback xmit; a remote cluster peer can deliver packets that hit the enqueue trace path while the destination socket is user-owned.\nAC:L - This is a controllable race between enqueue-time TIPC_DUMP_ALL trace dumps of sk_receive_queue and the socket owner dequeuing/freeing those skbs; the attacker drives both sides via concurrent recvmsg/splice/sendmsg threads or by flooding TIPC messages while a receiver holds lock_sock().\nPR:N - TIPC data-plane delivery to an existing socket/port needs no authentication or victim credentials; any local user may open AF_TIPC sockets (including via user namespaces with CAP_NET_ADMIN), and default sk_filter sysctl matches all sockets once trace events are enabled.\nUI:N - Exploitation needs no victim interaction beyond normal socket/cluster I/O; the attacker controls message injection and thread timing without requiring mounts, prompts, or other deliberate user actions.\nS:U - The flaw is a kernel sk_buff use-after-free in the TIPC socket path and its impact stays within the kernel security authority; it does not by itself cross VM, IOMMU, or hypervisor isolation boundaries.\nC:H - KASAN reported __asan_report_load4 in tipc_skb_dump() reading freed skb/message fields from sk_receive_queue; this UAF read of attacker-influenced heap objects can disclose kernel memory and supports further info-leak exploitation.\nI:H - Concurrent enqueue tracing walks queue pointers while skbs are freed by the socket owner, creating a classic UAF on sk_buff slabs that can be groomed for arbitrary kernel memory corruption and privilege escalation.\nA:H - Dereferencing freed skbs during tipc_list_dump()/tipc_skb_dump() can oops or panic the kernel; UAF in the TIPC receive/enqueue path is a high-availability risk even when not fully weaponized for code execution."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:12.393Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ae5d0d9ce767b20a5580bb6dc5e06f3e1b8a0fb0"
},
{
"url": "https://git.kernel.org/stable/c/273ff83c49b82e4267373adbe629e6ee8aeaa16c"
},
{
"url": "https://git.kernel.org/stable/c/258fb15b30db4f3941ab335d5e02f744baf1da54"
},
{
"url": "https://git.kernel.org/stable/c/12876864f9de5fa6f611a30c6c17e405a773bf0a"
},
{
"url": "https://git.kernel.org/stable/c/b9e100815f4b55e9ccaf6af9a3aba173eb13d381"
},
{
"url": "https://git.kernel.org/stable/c/61a55fa24a5d737436018764a647fe5b6cb36371"
},
{
"url": "https://git.kernel.org/stable/c/6acbbe54215d5f4251593000cff2bf51d6748713"
},
{
"url": "https://git.kernel.org/stable/c/acd7df8d955480a6f6e5bb809da67b1500cc3cf4"
}
],
"title": "tipc: restrict socket queue dumps in enqueue tracepoints",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72299",
"datePublished": "2026-08-15T05:55:19.147Z",
"dateReserved": "2026-08-09T03:40:39.918Z",
"dateUpdated": "2026-10-16T18:55:15.859Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63956 (GCVE-0-2026-63956)
Vulnerability from cvelistv5
Published
2026-07-19 14:55
Modified
2026-07-19 14:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
USB: serial: cypress_m8: fix memory corruption with small endpoint
Make sure that the interrupt-out endpoint max packet size is at least
eight bytes to avoid user-controlled slab corruption or NULL-pointer
dereference should a malicious device report a smaller size.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb Version: 3416eaa1f8f8d516b77de514e14cf8da256d28fb |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/usb/serial/cypress_m8.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4fcb22218f0a7229b7ce3b3952fb644def293fa5",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "ad3d1628a46134276546d7a12fedf04be9979158",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "52e18ae0c47c5c89e18fcd8022f287f7cc8802ec",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "4bcaa59f403dbde6328604a500d65ee8d40975d9",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "1ef25704bd3b625fd151c09feee459479f71ee64",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "284105c40fc31fff90cdab8a0377aaeb92f87f0e",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "6c13f3bb652bc8665e709ba07122612586aea648",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
},
{
"lessThan": "e1a9d791fd66ab2431b9e6f6f835823809869047",
"status": "affected",
"version": "3416eaa1f8f8d516b77de514e14cf8da256d28fb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/usb/serial/cypress_m8.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.26"
},
{
"lessThan": "2.6.26",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.259",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.210",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.176",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.143",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.93",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.35",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.259",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "2.6.26",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nUSB: serial: cypress_m8: fix memory corruption with small endpoint\n\nMake sure that the interrupt-out endpoint max packet size is at least\neight bytes to avoid user-controlled slab corruption or NULL-pointer\ndereference should a malicious device report a smaller size."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T14:55:47.597Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4fcb22218f0a7229b7ce3b3952fb644def293fa5"
},
{
"url": "https://git.kernel.org/stable/c/ad3d1628a46134276546d7a12fedf04be9979158"
},
{
"url": "https://git.kernel.org/stable/c/52e18ae0c47c5c89e18fcd8022f287f7cc8802ec"
},
{
"url": "https://git.kernel.org/stable/c/4bcaa59f403dbde6328604a500d65ee8d40975d9"
},
{
"url": "https://git.kernel.org/stable/c/1ef25704bd3b625fd151c09feee459479f71ee64"
},
{
"url": "https://git.kernel.org/stable/c/284105c40fc31fff90cdab8a0377aaeb92f87f0e"
},
{
"url": "https://git.kernel.org/stable/c/6c13f3bb652bc8665e709ba07122612586aea648"
},
{
"url": "https://git.kernel.org/stable/c/e1a9d791fd66ab2431b9e6f6f835823809869047"
}
],
"title": "USB: serial: cypress_m8: fix memory corruption with small endpoint",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63956",
"datePublished": "2026-07-19T14:55:47.597Z",
"dateReserved": "2026-07-19T07:54:57.023Z",
"dateUpdated": "2026-07-19T14:55:47.597Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…